gpt4 book ai didi

amazon-web-services - Cloudformation 等待同一堆栈中的另一个资源创建

转载 作者:行者123 更新时间:2023-12-03 07:18:00 25 4
gpt4 key购买 nike

我正在创建一个 AppSync 云信息和一个仪表板,我注意到 ApiId 导出很久之后才完成创建。

我在 appsync 文件中像这样创建输出:

    Outputs:
GraphQlApiIdOutput:
Description: Main GraphQl Api ID.
Value:
Fn::GetAtt:
- GraphQlApi
- ApiId
Export:
Name: GraphQlApiIdOutput

在另一个仪表板文件中:

CloudwatchDashboard:
Type: AWS::CloudWatch::Dashboard
Properties:
DashboardBody:
{
'Fn::Sub': ['{
...
,{
ApiId:
!ImportValue GraphQlApiIdOutput}]

但是,我收到错误:No export named GraphQlApiIdOutput found. Rollback requested by user.我可以解决此问题的唯一方法是首先删除导入值,以便堆栈创建成功,然后添加导入值。我注意到有一个等待条件,但没有任何资源是外部的。我还注意到创建策略仅支持 AWS::AutoScaling::AutoScalingGroup, AWS::EC2::Instance, and AWS::CloudFormation::WaitCondition 。有没有办法等待 Cloudformation 中的资源创建,以便模板在同一堆栈中创建之前不会尝试使用输出值?

最佳答案

当你的代码中有这个时:

!ImportValue GraphQlApiIdOutput

这意味着模板 1 中的堆栈必须事先创建

所以通常你会做以下事情:

  1. 部署模板 1
  2. 成功后,即可部署另一个模板文件

DependsOn 适用于同一堆栈内的资源,不适用于不同堆栈的资源WaitCondition 也是如此,因为您无法在 Template 1 之前从 Template 1 引用另一个模板文件中的条件code> 堆栈已成功创建。

关于amazon-web-services - Cloudformation 等待同一堆栈中的另一个资源创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62273012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com