【以下的问题经过翻译处理】 我正在使用CloudFormation的YAML模板来创建两个队列,其中一个是死信队列(DLQ)。在DLQ队列中,我尝试添加RedriveAllowPolicy,使用以下JSON行之一,但它失败,并显示下面提到的错误消息。我还在此嵌入了完整的模板(YAML),以便进行复现。
另外,我们使用的是us-west-2(俄勒冈)区域。
接下来是JSON示例,以及可能的错误消息
RedriveAllowPolicy: !Sub '{"redrivePermission":"byQueue","sourceQueueArns":"arn:aws:sqs:${AWS::Region}:${AWS::AccountId}:${EnvironmentType}-${MlResultsQueueName}"}'
或者
RedriveAllowPolicy: !Join ['',['{"redrivePermission":"byQueue","sourceQueueArns":"', !GetAtt NevaDscvrMlResultsQueue.Arn, '"}']]
CloudFormation堆栈在队列更新时失败的错误消息
Resource handler returned message: "Invalid value for the parameter RedriveAllowPolicy. Reason: Amazon SQS can't create the redrive allow policy, as it?s in an unsupported format. (Service: Sqs, Status Code: 400, Request ID: edb2977c-9656-5c9b-a7bf-cdde4dd26492, Extended Request ID: null)" (RequestToken: 76823ad0-286b-ff35-ba3e-de300bac4c88, HandlerErrorCode: GeneralServiceException)
完整的模版:
AWSTemplateFormatVersion: '2010-09-09'
Parameters:
EnvironmentType:
Type: String
Default: dev
Description: 'The name of the release environment.'
MlResultsQueueName:
Description: MlResultsQueue name
Type: String
Default: 'nevadscvr-ml-results'
MlResultsQueueDLQName:
Description: MlResultsQueueDLQ name
Type: String
Default: 'nevadscvr-ml-results-DLQ'
Resources:
NevaDscvrMlResultsQueue:
Type: AWS::SQS::Queue
Properties:
QueueName: !Sub '${EnvironmentType}-${MlResultsQueueName}'
VisibilityTimeout: 60
MessageRetentionPeriod: 345600
DelaySeconds: 0
MaximumMessageSize: 262144
ReceiveMessageWaitTimeSeconds: 20
RedrivePolicy:
deadLetterTargetArn: !Sub 'arn:aws:sqs:${AWS::Region}:${AWS::AccountId}:${EnvironmentType}-${MlResultsQueueDLQName}'
maxReceiveCount: 3
NevaDscvrMlResultsQueueDLQ:
Type: AWS::SQS::Queue
Properties:
QueueName: !Sub '${EnvironmentType}-${MlResultsQueueDLQName}'
VisibilityTimeout: 30
MessageRetentionPeriod: 345600
DelaySeconds: 0
MaximumMessageSize: 262144
ReceiveMessageWaitTimeSeconds: 0
RedriveAllowPolicy: !Sub '{"redrivePermission":"byQueue","sourceQueueArns":"arn:aws:sqs:${AWS::Region}:${AWS::AccountId}:${EnvironmentType}-${MlResultsQueueName}"}'