如果已存在于无服务器中,如何忽略资源创建

问题描述

在配置资源配置时,有什么我可以使用的方法,如果资源已经存在,无服务器就不会创建抛出任何错误

例如。如果以下资源已经存在,则不要抛出此错误

错误 An error occurred: PaymentQueue - dev_payment_cron_queue already exists in stack

resources:
  Resources:
    PaymentQueue:
      Type: "AWS::SQS::Queue"
      Properties:
        QueueName: ${self:provider.stage}_payment_cron_queue
        VisibilityTimeout: 40

解决方法

遗憾的是,纯 CloudFormation (CFN) 没有这种方式,因为这不是 CFN(或实际上的 Terraform)设计的工作方式。从 CFN 的角度来看,给定的资源存在并由 CFN 管理,或者根本不存在。没有中间立场。

如果您的资源已经存在,您必须import 将其发送给 CFN,以便由 CFN 管理。或者,您必须以 lambda 函数的形式创建 custom resource。该函数将根据现有资源执行您想要的任何操作,包括检查它是否存在。