如何查找 SQS 队列是手动创建的还是使用 CF 模板创建的?

How to find if SQS queue was created manually or using CF template?

我尝试了以下方法,但它没有给我任何 CF 模板 ID 或任何允许我找到的描述。

示例:

aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --attribute-names All*

输出:

{
  "Attributes": {
    "ApproximateNumberOfMessagesNotVisible": "0",
    "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyDeadLetterQueue\",\"maxReceiveCount\":1000}",
    "MessageRetentionPeriod": "345600",
    "ApproximateNumberOfMessagesDelayed": "0",

 "MaximumMessageSize": "262144",
    "CreatedTimestamp": "1442426968",
    "ApproximateNumberOfMessages": "0",
    "ReceiveMessageWaitTimeSeconds": "0",
    "DelaySeconds": "0",
    "VisibilityTimeout": "30",
    "LastModifiedTimestamp": "1442426968",
    "QueueArn": "arn:aws:sqs:us-east-1:80398EXAMPLE:MyNewQueue"
  }
}

可以通过传递 Queue URL(即 Physical ID of an AWS::SQS::Queue Resource) as the PhysicalResourceId parameter to DescribeStackResources.

来确定 SQS 队列是否是 CloudFormation 堆栈的一部分

使用 AWS CLI describe-stack-resources 命令,您将需要使用 --cli-input-json [json_file] 传递参数,因为 --physical-resource-id 参数将尝试解析 Queue URL 时直接提供。

示例:

aws cloudformation describe-stack-resources --cli-input-json '{"PhysicalResourceId": "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue"}'

如果队列是堆栈的一部分,则会返回堆栈资源的列表。如果不是,则返回 ValidationError