![](/img/trans.png)
[英]How to use StringList value of AWS SSM in cloudformation template
[英]How can I use a value from an SSM StringList in a CloudFormation template?
假設我在 SSM ParameterStore 中有一個參數。 該參數有一個 StringList 作為值並描述一個服務,例如 (bucket_name, request_url)
"serviceA" = "bucket_name_A, https://www.request.com/A"
現在,在 CloudFormation 中,我想從這個字符串列表中定義我的存儲桶的名稱。
"S3FTSE100Intraday1min": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": {
"Fn::GetAtt": [
"My_SSM_ParameterStore_Logical_ID",
"Value"
]
},
...
但顯然這將返回完整的bucket_name_A
,而不僅僅是bucket_name_A
如何訪問要在 CloudFormation 模板中使用的字符串列表中的參數之一?
在起草這個問題時,我開始研究 Fn:: 方法
(來源: https : //docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-split.html )
我有一個想法:
"bucket_name_A, https://www.request.com/A"
是: "bucket_name_A, https://www.request.com/A"
: "bucket_name_A, https://www.request.com/A"
Fn::GetAtt
=> "bucket_name_A, https://www.request.com/A"
檢索Fn::GetAtt
列表值Fn::Split
=> ["bucket_name_A", "https://www.request.com/A"]
將其拆分為一個列表Fn::Select
=> "bucket_name_A"
選擇第一個值它有效! 下面是cloudformation模板:
SSM Parameter Store
:
"SSMTestBucketName": {
"Type": "AWS::SSM::Parameter",
"Properties": {
"Name": "StringList_Test_Bucket_Name",
"Type": "StringList",
"Value": "test-ssm-stringlist-bucket, https://www.requesturl.com"
}
}
S3 Bucket
:
"S3TestBucket": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": {
"Fn::Select": [
"0",
{
"Fn::Split": [
",",
{
"Fn::GetAtt": [
"SSMTestBucketName",
"Value"
]
}
]
}
]
},
"BucketEncryption": {
"ServerSideEncryptionConfiguration": [
{
"ServerSideEncryptionByDefault": {
"SSEAlgorithm": "AES256"
}
}
]
},
"PublicAccessBlockConfiguration": {
"BlockPublicAcls": true,
"BlockPublicPolicy": true,
"IgnorePublicAcls": true,
"RestrictPublicBuckets": true
},
"LifecycleConfiguration": {
"Rules": [
{
"Status": "Enabled",
"Transitions": [
{
"TransitionInDays": "30",
"StorageClass": "STANDARD_IA"
}
]
}
]
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.