如何从cloudformation堆栈存储输入的参数?

时间:2018-01-19 13:16:55

标签: amazon-web-services persistence amazon-cloudformation

我想要完成的是存储从Cloudformation堆栈输入的参数。

例如:想象一下有两个参数param1param2

我想将输入的值存储在DynamoDB,RDS Db等中。

我虽然在SNS通知中:

enter image description here

很遗憾,通知的有效负载如下所示:

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'

如您所见,没有输入任何值。

是否可以将输入的参数存储到数据库中?

2 个答案:

答案 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调用来获取任何堆栈的所有输出值。