Waiter ChangeSetCreateComplete failed: Waiter遇到终端失败状态

问题描述 投票:0回答:3

我正在学习 CloudFormation 教程,这是我的 AWS CloudFormation 模板:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: A starter AWS Lambda function.
Resources:
  helloworldpython3:
    Type: 'AWS::Serverless::Function'
    Properties:
      Handler: app.lambda_handler
      Runtime: python3.6
      CodeUri: src/
      Description: A starter AWS Lambda function.
      MemorySize: 128
      Timeout: 3
      Environment:
        Variables:
          TABLE_NAME: !Ref Table
          REGION_NAME: !Ref AWS::Region
      Events:
        HelloWorldSAMAPI:
          Type: Api
          Properties:
            Path: /hello
            Method: GET
      Policies:
        - DynamoDBCrudPolicy:
            TableName: !Ref Table

Table:
  Type: AWS::Serverless::SimpleTable
  Properties:
    PrimaryKey:
      Name: greeting
      Type: String
    ProvisionedThroughput:
      ReadCapacityUnits: 1
      WriteCapacityUnits: 1

我可以使用

aws cloudformation package
生成最终模板。但是当我尝试使用
sam deploy
部署它时,我从 shell 中得到以下输出:

错误:等待创建变更集.. 错误:无法为堆栈创建变更集:hello-world-sam, 例如:服务员 ChangeSetCreateComplete 失败:服务员遇到了 终端故障状态:对于表达式“Status”,我们匹配 预期路径:“失败”状态:失败。原因:无效 模板属性或属性 [表]

amazon-web-services aws-cloudformation serverless aws-sam
3个回答
7
投票

在我的例子中,cfn linter 可以使用 yaml,错误(使用 cmd 中的 aws CLI)只是

Waiter ChangeSetCreateComplete failed: Waiter遇到终端失败状态:

对于表达式“Status”,我们匹配预期路径:“FAILED”

您应该检查 AWS 控制台 → CloudFormation → {stack_name} → 更改集

我的错误原因在这里

状态原因

不会执行任何更新。

可能对某人有帮助👍


3
投票

您的 YAML 格式不正确:

AWSTemplateFormatVersion: "2010-09-09"
Transform: "AWS::Serverless-2016-10-31"
Description: A starter AWS Lambda function.
Resources:
  helloworldpython3:
    Type: "AWS::Serverless::Function"
    Properties:
      Handler: app.lambda_handler
      Runtime: python3.6
      CodeUri: src/
      Description: A starter AWS Lambda function.
      MemorySize: 128
      Timeout: 3
      Environment:
        Variables:
          TABLE_NAME: !Ref Table
          REGION_NAME: !Ref AWS::Region
      Events:
        HelloWorldSAMAPI:
          Type: Api
          Properties:
            Path: /hello
            Method: GET
      Policies:
        - DynamoDBCrudPolicy:
            TableName: !Ref Table
  Table:
    Type: AWS::Serverless::SimpleTable
    Properties:
      PrimaryKey:
        Name: greeting
        Type: String
      ProvisionedThroughput:
        ReadCapacityUnits: 1
        WriteCapacityUnits: 1

Table
应位于
Resources
下方。使用像 cfn-python-lint

这样的 linter

0
投票

你可以直接使用我的功能

表名称:!参考表 独奏: 表名:表名

© www.soinside.com 2019 - 2024. All rights reserved.