AWS CloudFormation 摄取示例:定义资源 - AMS 高级应用程序开发者指南

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS CloudFormation 摄取示例:定义资源

使用 AMS AWS CloudFormation 采集时,您可以自定义 CloudFormation 模板并将其提交给采集更改类型 (ct-36cn2avfrrj9v) 的 CloudFormation RFC 中的 AMS。要创建可以多次重复使用的 CloudFormation 模板,您可以将堆栈配置参数添加到 CloudFormation 采集更改类型执行输入中,而不是在模板中对其进行硬编码。 CloudFormation 最大的好处是你可以重复使用该模板。

AMS CloudFormation 采集更改类型输入架构允许您在 CloudFormation 模板中选择多达 60 个参数并提供自定义值。

此示例说明如何将可用于各种 CloudFormation 模板的资源属性定义为 AMS CloudFormation 采集 CT 中的参数。本节中的示例专门展示了 SNS 主题的用法。

示例 1:对 AWS CloudFormation SNSTopic 资源TopicName属性进行硬编码

在此示例中,您在 CloudFormation 模板中对 AWS CloudFormation SNSTopic 资源TopicName属性进行了硬编码。请注意,该Parameters部分为空。

要拥有一个允许您无需创建新 CloudFormation 模板即可更改新堆栈 SNSTopic 名称值的 CloudFormation 模板,您可以使用载入更改类型的 AMS Parameters 部分进行该配置。 CloudFormation 通过执行此操作,您可以稍后使用相同的 CloudFormation 模板来创建具有不同SNSTopic名称的新堆栈。

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "My SNS Topic", "Parameters" : { }, "Resources" : { "SNSTopic" : { "Type" : "AWS::SNS::Topic", "Properties" : { "TopicName" : "MyTopicName" } } } }

示例 2:使用 SNSTopic 资源引用 AMS 更改类型中的参数

在此示例中,您使用 CloudFormation 模板中定义的SNSTopic资源TopicName属性来引用 AMS 更改类型Parameter中的。

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "My SNS Topic", "Parameters" : { "TopicName" : { "Type" : "String", "Description" : "Topic ID", "Default" : "MyTopicName" } }, "Resources" : { "SNSTopic" : { "Type" : "AWS::SNS::Topic", "Properties" : { "TopicName" : { "Ref" : "TopicName"} } } } }

示例 3:通过提交具有 AMS 采集更改类型的 JSON 执行参数文件来创建 SNS 主题

在此示例中,您提交了一个 JSON 执行参数文件,其中包含创建 SNS 主题的 AMS 收录 CT。TopicName必须按照本示例中显示的可修改方式在 CloudFormation 模板中定义 SNS 主题。

{ "Name": "cfn-ingest", "Description": "CFNIngest Web Application Stack", "CloudFormationTemplateS3Endpoint": "$S3_PRESIGNED_URL", "VpcId": "VPC_ID", "Tags": [ {"Key": "Enviroment Type", "Value": "Dev"} ], "Parameters": [ {"Name": "TopicName", "Value": "MyTopic1"} ], "TimeoutInMinutes": 60 }

示例 4:提交引用相同 CloudFormation 模板的新变更类型

此 JSON 示例在不更改 CloudFormation 模板的情况下更改 SNS TopicName 值。相反,您可以提交引用相同 CFN CloudFormation 模板的新部署 | Ingestion | Stack from Template | Create 更改类型。

{ "Name": "cfn-ingest", "Description": "CFNIngest Web Application Stack", "CloudFormationTemplateS3Endpoint": "$S3_PRESIGNED_URL", "VpcId": "VPC_ID", "Tags": [ {"Key": "Enviroment Type", "Value": "Dev"} ], "Parameters": [ {"Name": "TopicName", "Value": "MyTopic2"} ], "TimeoutInMinutes": 60 }

示例 5:使用 CloudFormation 模板中的默认参数值

在此示例中,之所以创建 SNS TopicName = MyTopicName ',是因为Parameters执行参数中未提供任何TopicName值。如果您不提供Parameters定义,则使用 CloudFormation 模板中的默认参数值。

{ "Name": "cfn-ingest", "Description": "CFNIngest Web Application Stack", "CloudFormationTemplateS3Endpoint": "$S3_PRESIGNED_URL", "VpcId": "VPC_ID", "Tags": [ {"Key": "Enviroment Type", "Value": "Dev"} ], "TimeoutInMinutes": 60 }