我想要完成的是存储从Cloudformation堆栈输入的参数。
例如:想象一下有两个参数param1
和param2
。
我想将输入的值存储在DynamoDB,RDS Db等中。
我虽然在SNS通知中:
很遗憾,通知的有效负载如下所示:
StackId='arn:aws:cloudformation:us-east-1:accountId:stack/rfdsf/b6df0100-fd18-11e7-b3ab-500c2893c0d2'
Timestamp='2018-01-19T13:00:24.774Z'
EventId='b6df9d40-fd18-11e7-b3ab-500c2893c0d2'
LogicalResourceId='rfdsf'
Namespace='accountId'
PhysicalResourceId='arn:aws:cloudformation:us-east-1:accountId:stack/rfdsf/b6df0100-fd18-11e7-b3ab-500c2893c0d2'
PrincipalId='accountId'
ResourceProperties='null'
ResourceStatus='CREATE_IN_PROGRESS'
ResourceStatusReason='User Initiated'
ResourceType='AWS::CloudFormation::Stack'
StackName='rfdsf'
ClientRequestToken='Console-CreateStack-774eec95-c976-434c-b43b-ad3d295a0b9b'
如您所见,没有输入任何值。
是否可以将输入的参数存储到数据库中?
答案 0 :(得分:2)
根据@Rodrigigo M的建议,您可以将参数保存到SSM参数存储中。
Description: "Create SSM Parameter"
Resources:
BasicParameter:
Type: "AWS::SSM::Parameter"
Properties:
Name: "param1"
Type: "String"
Value: "ABCD"
Description: "SSM Parameter for running date command."
AllowedPattern: "^[a-zA-Z]{1,10}$"
此外,如果您想将这些内容保存到数据库中,您可以创建一个Lambda来读取它们并存储到DynamoDb或RDS中。
答案 1 :(得分:1)
在您的cloudformation中有一个Outputs参数。您可以输出任何带入堆栈的值,只要您明确指定要输出的参数即可。
这些值将在cloudformation的Outputs选项卡中显示。如果要将它们移动到数据库(例如DynamoDB),可以使用cloudformation:describeStacks api调用来获取任何堆栈的所有输出值。