在AWS CloudFormation中,您可以使用AWS Systems Manager Parameter Store来引入新的变量。Parameter Store是一种安全的存储服务,用于存储和检索配置数据,例如数据库字符串、API密钥和其他密钥/值对。
以下是一个使用AWS Systems Manager Parameter Store引入新变量的示例:
首先,您需要在Parameter Store中创建一个参数(变量)。您可以使用AWS管理控制台或AWS CLI来完成此操作。
在AWS CLI中,您可以使用以下命令创建一个参数:
aws ssm put-parameter --name "MyParam" --type "String" --value "MyValue" --region "us-west-2"
接下来,在CloudFormation模板中,您可以使用AWS::SSM::Parameter::Value
函数引用Parameter Store中的参数值。以下是一个示例CloudFormation模板:
Resources:
MyInstance:
Type: "AWS::EC2::Instance"
Properties:
ImageId: "ami-12345678"
InstanceType: "t2.micro"
UserData:
Fn::Base64: !Sub |
#!/bin/bash
echo "MyParam is ${MyParam}"
在示例CloudFormation模板中,我们创建了一个EC2实例,并将Parameter Store中的参数值${MyParam}
传递给实例的UserData脚本。
最后,在部署CloudFormation堆栈时,您需要指定Parameter Store参数的名称和值。您可以使用AWS管理控制台、AWS CLI或AWS SDK来完成此操作。
在AWS CLI中,您可以使用以下命令部署CloudFormation堆栈:
aws cloudformation create-stack --stack-name "MyStack" --template-body file://template.yaml --parameters ParameterKey=MyParam,ParameterValue="MyValue" --region "us-west-2"
在部署堆栈时,我们将MyParam参数的值设置为"MyValue"。
这样,当CloudFormation堆栈部署完成后,UserData脚本将会在实例启动时执行,并将${MyParam}
替换为实际的参数值。