AWS::Greengrass::SubscriptionDefinition - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::Greengrass::SubscriptionDefinition

AWS::Greengrass::SubscriptionDefinition 资源表示 AWS IoT Greengrass 的订阅定义。订阅定义用于组织订阅定义版本。

订阅定义可引用多个订阅定义版本。所有订阅定义版本都必须与订阅定义关联。每个订阅定义版本均可包含一个或多个订阅。

注意

在创建订阅定义时,您可以选择包含初始订阅定义版本。要稍后关联订阅定义版本,请创建 AWS::Greengrass::SubscriptionDefinitionVersion 资源并指定该订阅定义的 ID。

在创建包含要部署的订阅的订阅定义版本后,您必须将其添加到组版本。有关更多信息,请参阅 AWS::Greengrass::Group

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::Greengrass::SubscriptionDefinition", "Properties" : { "InitialVersion" : SubscriptionDefinitionVersion, "Name" : String, "Tags" : Json } }

YAML

Type: AWS::Greengrass::SubscriptionDefinition Properties: InitialVersion: SubscriptionDefinitionVersion Name: String Tags: Json

属性

InitialVersion

在创建订阅定义时要包含的订阅定义版本。订阅定义版本包含 subscription 属性类型的列表。

注意

要在创建订阅定义后关联订阅定义版本,请创建 AWS::Greengrass::SubscriptionDefinitionVersion 资源并指定此订阅定义的 ID。

必需:否

类型SubscriptionDefinitionVersion

Update requires: Replacement

Name

订阅定义的名称。

必需:是

类型:字符串

Update requires: No interruption

Tags

要附加到订阅定义的特定于应用程序的元数据。您可以在 IAM 策略中使用标签来控制对 AWS IoT Greengrass 资源的访问。您还可以使用标签对资源进行分类。有关更多信息,请参阅AWS IoT Greengrass 开发人员指南中的标记您的 AWS IoT Greengrass 资源

Json 属性类型作为键值对的映射处理。它使用以下格式,这不同于 AWS CloudFormation 模板中的大部分 Tags 实施。

"Tags": { "KeyName0": "value", "KeyName1": "value", "KeyName2": "value" }

必需:否

类型:Json

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回订阅定义版本的 ID,例如 1234a5b6-78cd-901e-2fgh-3i45j6k178l9

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt 内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 内部函数的更多信息,请参阅 Fn::GetAtt

Arn

SubscriptionDefinition 的 Amazon 资源名称 (ARN),例如 arn:aws:greengrass:us-east-1:123456789012:/greengrass/definition/subscriptions/1234a5b6-78cd-901e-2fgh-3i45j6k178l9

Id

SubscriptionDefinition 的 ID,例如 1234a5b6-78cd-901e-2fgh-3i45j6k178l9

LatestVersionArn

已添加到 SubscriptionDefinition 的最新 SubscriptionDefinitionVersion 的 ARN,例如 arn:aws:greengrass:us-east-1:123456789012:/greengrass/definition/subscriptions/1234a5b6-78cd-901e-2fgh-3i45j6k178l9/versions/9876ac30-4bdb-4f9d-95af-b5fdb66be1a2

Name

SubscriptionDefinition 的名称,例如 MySubscriptionDefinition

示例

订阅定义代码段

以下代码段使用包含订阅的初始版本定义订阅定义资源。在此示例中,订阅源是组中的现有设备。目标是组中的一个函数,在另一个堆栈中创建此函数,并通过 ImportValue 函数引用它。

有关完整模板的示例,请参阅 AWS::Greengrass::Group 订阅。

JSON

"TestSubscriptionDefinition": { "Type": "AWS::Greengrass::SubscriptionDefinition", "Properties": { "Name": "DemoTestSubscriptionDefinition", "InitialVersion": { "Subscriptions": [ { "Id": "TestSubscription1", "Source": { "Fn::Join": [ ":", [ "arn:aws:iot", { "Ref": "AWS::Region" }, { "Ref": "AWS::AccountId" }, "thing/TestDevice1" ] ] }, "Subject": "some/topic", "Target": { "Fn::ImportValue": "TestCanaryLambdaVersionArn" } } ] } } }

YAML

TestSubscriptionDefinition: Type: 'AWS::Greengrass::SubscriptionDefinition' Properties: Name: DemoTestSubscriptionDefinition InitialVersion: Subscriptions: - Id: TestSubscription1 Source: !Join - ':' - - 'arn:aws:iot' - !Ref 'AWS::Region' - !Ref 'AWS::AccountId' - thing/TestDevice1 Subject: some/topic Target: !ImportValue TestCanaryLambdaVersionArn

另请参阅