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

Posted

技术标签:

【中文标题】如果已经存在于无服务器中,我如何忽略资源创建【英文标题】:How do I ignore resource creation if already present in serverless 【发布时间】:2021-08-18 11:55:05 【问题描述】:

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

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

错误: 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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于如果已经存在于无服务器中,我如何忽略资源创建的主要内容,如果未能解决你的问题,请参考以下文章

如果已经创建,则忽略 pubsub 主题

如何在 nodejs 中调试或运行本地 GCP 无服务器应用程序?

仅在不存在时如何创建 terraform 资源

创建应用程序实例(在服务结构集群资源管理器中)忽略本地计算机上的实例数

CloudFormation 资源创建(如果不存在)

如果资源服务器应该是无状态的,如何使用 websocket 将消息发送到队列