aws-lambda - 通过 cloudformation yaml 添加带有错误操作的 IoT 规则

标签 aws-lambda yaml aws-cloudformation aws-iot

我正在尝试使用以下 cloudformation yaml 文件添加带有错误操作的物联网规则

从 yaml 中提取:

 DaIoTRule:
    Type: AWS::IoT::TopicRule
    Properties:
      RuleName: sda
      TopicRulePayload:
        RuleDisabled: false
        Sql: SELECT *, topic(2) AS source FROM 'topic/sensors/+'
        Actions:
          - Lambda:
              FunctionArn: !GetAtt LambdaFunction.Arn
        ErrorAction:
          S3:
            RoleArn: !GetAtt DAIoTRuleErrorActionIamRole.Arn
            Bucket: iot-message-dump
            Key: "errors/${topic()}/${timestamp()}"

但我不断收到此错误:

{
            "StackId": "arn:aws:cloudformation:us-east-1:961234632786:stack/wx-da-lambda/91423s00-4e97-11ea-aedd-0ee829hbc650",
            "EventId": "DAIoTRule-CREATE_FAILED-2020-02-17T06:51:38.299Z",
            "StackName": "da-lambda",
            "LogicalResourceId": "DaIoTRule",
            "PhysicalResourceId": "",
            "ResourceType": "AWS::IoT::TopicRule",
            "Timestamp": "2020-02-17T06:51:38.299Z",
            "ResourceStatus": "CREATE_FAILED",
            "ResourceStatusReason": "Encountered unsupported property bucket"
        }

我使用https://docs.aws.amazon.com/iot/latest/developerguide/rule-error-handling.html创建了这个yaml作为引用。

有人可以指出我做错了什么吗?

最佳答案

CloudFormation 使用 BucketName 属性而不是 Bucket 来执行 S3 操作(包括错误操作)。

参见https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-bucketname

关于aws-lambda - 通过 cloudformation yaml 添加带有错误操作的 IoT 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60257653/

相关文章:

amazon-web-services - 如何通过 lambda 在 aws elastic search 中搜索?

amazon-web-services - AWS 策略限制每个 IAM 用户的 S3 数据大小

amazon-web-services - TaskDefinition 上的 Yaml 验证错误导致 cloudform 无法完成

amazon-web-services - CloudFormation - Transit Gateway 的路由表路由传播

amazon-web-services - 如何创建 Elastic Beanstalk 配置文件?

node.js - 使用无服务器框架时从 AWS Lambda 函数连接 AWS ElasticSearch 实例时出错

amazon-web-services - Dynamodb 更新多个返回值

yaml - windows 7下编译libyaml时编译报错

Java从config.yml中获取Maps的List of maps

amazon-web-services - 从.txt文件/s3存储桶获取cloudform参数