AWS::SNS::Topic
AWS::SNS::Topic
资源创建可将通知发布到的主题。
一个用户最多可以创建 100000 个主题。
语法
要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:
JSON
{ "Type" : "AWS::SNS::Topic", "Properties" : { "ContentBasedDeduplication" :
Boolean
, "DisplayName" :String
, "KmsMasterKeyId" :String
, "Subscription" :[ Subscription, ... ]
, "Tags" :[ Tag, ... ]
, "TopicName" :String
} }
YAML
Type: AWS::SNS::Topic Properties: ContentBasedDeduplication:
Boolean
DisplayName:String
KmsMasterKeyId:String
Subscription:- Subscription
Tags:- Tag
TopicName:String
属性
ContentBasedDeduplication
-
当前不受 AWS CloudFormation 支持。
必需:否
类型:布尔值
Update requires: No interruption
DisplayName
-
要用于具有 SMS 订阅的 Amazon SNS 主题的显示名称。
必需:否
类型:字符串
Update requires: No interruption
KmsMasterKeyId
-
Amazon SNS 的 AWS 托管客户主密钥 (CMK) 或自定义 CMK 的 ID。有关更多信息,请参阅关键术语。有关更多示例,请参阅 AWS Key Management Service API 参考中的
KeyId
。此属性仅适用于 server-side-encryption。
必需:否
类型:字符串
Update requires: No interruption
Subscription
-
此主题的 SNS 订阅(终端节点)。
必需:否
Update requires: No interruption
Tags
-
要添加到新主题的标签列表。
注意 要能够在创建时标记主题,您必须具有
sns:CreateTopic
和sns:TagResource
权限。必需:否
类型:Tag 的列表
Update requires: No interruption
TopicName
-
要创建的主题的名称。主题名称只能包含大写和小写 ASCII 字母、数字、下划线和连字符,并且长度必须为 1 到 256 个字符。
如果不指定名称,则 AWS CloudFormation 会生成一个唯一的物理 ID 并将该 ID 用于主题名称。有关更多信息,请参阅名称类型。
重要 如果指定一个名称,则您将无法执行需要替换此资源的更新。您可以执行不需要或者只需要部分中断的更新。如果必须替换资源,请指定新名称。
必需:否
类型:字符串
Update requires: Replacement
返回值
Ref
在将此资源的逻辑 ID 传递给内部 Ref
函数时,Ref
返回 主题 ARN,例如:arn:aws:sns:us-east-1:123456789012:mystack-mytopic-NZJ5JSMVGFIE
。
For more information about using the Ref
function, see Ref.
Fn::GetAtt
Fn::GetAtt
内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。
有关使用 Fn::GetAtt
内部函数的更多信息,请参阅 Fn::GetAtt。
示例
具有两个 Amazon SQS 队列订阅的 Amazon SNS 主题
JSON
"MySNSTopic" : { "Type" : "AWS::SNS::Topic", "Properties" : { "Subscription" : [{ "Endpoint" : { "Fn::GetAtt" : [ "MyQueue1", "Arn" ] }, "Protocol" : "sqs" }, { "Endpoint" : { "Fn::GetAtt" : [ "MyQueue2", "Arn" ] }, "Protocol" : "sqs" }], "TopicName" : "SampleTopic" } }
YAML
MySNSTopic: Type: AWS::SNS::Topic Properties: Subscription: - Endpoint: Fn::GetAtt: - "MyQueue1" - "Arn" Protocol: "sqs" - Endpoint: Fn::GetAtt: - "MyQueue2" - "Arn" Protocol: "sqs" TopicName: "SampleTopic"
另请参阅
-
Amazon Simple Notification Service 开发人员指南中的使用 AWS CloudFormation 模板创建向 Amazon SQS 队列发送消息的主题