CloudFormation在AWS::SQS::Queue与RedriveAllowPolicy属性结合使用时出现问题

0

【以下的问题经过翻译处理】 我们在CloudFormation中为AWS::SQS::Queue指定了RedriveAllowPolicy,并且再次在CloudFormation中收到错误,尽管我们没有对模板进行任何更改。

这种情况在几周前也发生过,所以这是我们看到的此属性的第二次变化。

因此,我们修改了我们的模板定义为:

TestQueue:
    Type: AWS::SQS::Queue
    Properties:
      VisibilityTimeout: 450
      RedriveAllowPolicy: '{"redrivePermission":"denyAll"}'
      RedrivePolicy:
        deadLetterTargetArn: !GetAtt TestDeadLetterQueue.Arn
        maxReceiveCount: 5

  TestDeadLetterQueue:
    Type: AWS::SQS::Queue
    Properties:
      MessageRetentionPeriod: 1209600

这个方法运行了几周,但现在 CloudFormation 在使用该模板时出现了以下错误:

2021-12-14 10:33:14 UTC+0100 TestQueue CREATE_FAILED

Properties validation failed for resource TestQueue with message: #: extraneous key [RedriveAllowPolicy] is not permitted

从模板中移除RedriveAllowPolicy: '{"redrivePermission":"denyAll"}'可以解决这个问题,但我们希望设置这个策略。

我希望我们准确地遵循 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-redriverallowpolicy 中的文档。

重现错误的完整模板文件:

AWSTemplateFormatVersion: '2010-09-09'
Description: A prototype stack to test out CloudFormation definitions.
Metadata: {}
Transform: AWS::Serverless-2016-10-31

Resources:

  TestQueue:
    Type: AWS::SQS::Queue
    Properties:
      VisibilityTimeout: 450
      RedriveAllowPolicy: '{"redrivePermission":"denyAll"}'
      RedrivePolicy:
        deadLetterTargetArn: !GetAtt TestDeadLetterQueue.Arn
        maxReceiveCount: 5

  TestDeadLetterQueue:
    Type: AWS::SQS::Queue
    Properties:
      MessageRetentionPeriod: 1209600
1 réponse
0

【以下的回答经过翻译处理】 我已将提供的示例模板部署到 eu-central-1(欧洲-法兰克福)区域,栈和资源已成功部署到我的账户中。我为资源 AWS::SQS::Queue 使用了 RedriveAllowPolicy: '{"redrivePermission": "denyAll"}' 属性。

也许您可以再试一次,确认一下您的行为。否则,我建议打开一个支持案例,以便工程师排除故障并验证问题。

profile picture
EXPERT
répondu il y a 10 mois

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions