【问题标题】:AWS Amplify: How to recreate manually deleted CloudFormation stacksAWS Amplify:如何重新创建手动删除的 CloudFormation 堆栈
【发布时间】:2019-08-06 11:27:59
【问题描述】:

我在this 研讨会之后构建了一个 Amplify 示例应用程序。 之后,我手动删除了 CloudFormation 堆栈(从 AWS 控制台 - 选择根堆栈并执行删除堆栈操作),希望我可以使用 amplify push 重建它们。不幸的是,放大报告没有变化并且不重建堆栈。有没有办法强制放大提供资源?

【问题讨论】:

  • 您是删除了资源(例如数据库表等)还是更改了堆栈文件上的内容?您可以详细说明删除 CloudFormation 堆栈
  • 感谢您的建议,我编辑了我的问题。我从控制台中删除了根堆栈。据我所知,所有资源(DynamoDB 表、ElasticSearch 等)都在 S3 存储桶之外,这些存储桶仍然存在。
  • 您的案例与此处的问题类似:github.com/aws-amplify/amplify-cli/issues/549。如果您同意,您可能需要amplify init,并将之前的amplify/#current-cloud-backend 复制到新创建的backend 文件中。
  • 感谢您在 github 上指出我的问题。确实看起来像同样的问题。不幸的是,建议的解决方案不起作用。我应该在哪个项目中尝试amplify push 也有点不清楚。无论如何,它都会在旧项目中引发错误并且检测到新项目中没有任何更改。我将尝试进一步澄清您建议的主题。再次感谢!

标签: amazon-cloudformation aws-amplify


【解决方案1】:

放大 cli 检查项目中 amplify/#current-cloud-backendamplify/backend 文件夹之间的差异。它不会检查当前部署在云中的内容。

由于您已经删除了根堆栈,即使有任何要推送的更改,它也会因为堆栈丢失而失败。要从此错误中恢复,您可以运行amplify init,当询问Do you want to use an existing environment? 时选择No。这将重新创建根堆栈并允许您推送更改。

PS:在 amplify cli 版本 1 及更高版本中提供了多环境支持。如果它的前v1 init 命令不起作用

【讨论】:

  • 感谢您的帖子。我知道我需要在 app 文件夹中运行 amplify init。当被问及我应该提供相同的环境名称还是不同的名称时?我正在运行 1.1.7 版,所以应该没问题。
  • 如果需要,您可以提供相同的名称。环境名称需要仅在项目amplify/team-provider-info.json 文件中使用。确保在运行 init 之前删除 <proj-root>/amplify 文件夹
  • 再次感谢亚西。我删除了包含#current-cloud-backendbackend 文件夹的/amplify 文件夹。然后在我的应用程序目录的根目录中,我运行了amplify init,并且成功地重新创建了我之前删除的/amplify 文件夹。它还创建了根堆栈。不幸的是,在运行amplify init 之后,我收到了No changes detected 消息。我想我会放弃进一步挽救这个项目的尝试。再次非常感谢您的意见!
【解决方案2】:

如果你删除了其他资源依赖的函数或API,可能会导致推送失败。所以我通常做的是重新创建相同的函数或 API 并再次推送。这是我使用的临时 hack,但我认为可能会有更好的。

【讨论】:

    【解决方案3】:

    Amplify 似乎将有关 AWS 中托管内容的信息保存在 amplify/team-provider-info.json 中。在这个文件中应该是 JSON 对象,其键与您的环境名称匹配。如果您将环境名称的条目保留在此文件中并运行 amplify init,如果您使用相同的环境名称,您很可能会看到失败。

    通过删除与您在 AWS 中删除的环境匹配的环境,amplify 将忘记该环境的 CloudFormation 堆栈。现在您可以再次运行amplify init,并使用相同的环境名称,成功。

    【讨论】:

      猜你喜欢
      • 2020-03-10
      • 2021-04-22
      • 2023-01-12
      • 2020-05-16
      • 1970-01-01
      • 2015-12-12
      • 2018-03-24
      • 2018-10-01
      • 2021-12-07
      相关资源
      最近更新 更多