![](/img/trans.png)
[英]How can I use a value from an SSM StringList in a CloudFormation template?
[英]How to use StringList value of AWS SSM in cloudformation template
我在 aws ssm 中存儲了兩個子網,其數據類型為 StringList ,如 s1,s2 和 lambda function 我想使用 cloudformation 模板附加這兩個子網。 Lambda function 會將數據放入 postgres 數據庫,因此我需要附加這些子網。
AWSTemplateFormatVersion: "2010-09-09"
Transform: "AWS::Serverless-2016-10-31"
Resources:
ExportToS3Function:
Type: AWS::Serverless::Function
Properties:
FunctionName: testing-ssm
CodeUri: testing-ssm/
Environment:
Variables:
RDS_SECRET: XXXXXXX
REGION: !Sub "${AWS::Region}"
Handler: lambda_function.lambda_handler
Runtime: python3.8
Timeout: 600
MemorySize: 1750
VpcConfig:
SecurityGroupIds:
- '{{resolve:ssm:/testing/vpc/sg:1}}'
SubnetIds: !Split [',','{{resolve:ssm:/testing/vpc/subnets:1}}']
Role: !GetAtt testing-ssm.Arn
但是上面的線,Split [',':'{{resolve:ssm:/testing/vpc/subnets:1}}'] 在部署時給了我一個錯誤
資源處理程序返回消息:“檢測到 1 個驗證錯誤:‘vpcConfig.subnetIds’處的值‘[subnet-XXXXX,subnet-XXXXXX]’未能滿足約束
無論指定的類型如何,SSM 都必須是字符串類型。 類型只是客戶端的元數據。 所以如果你有一個數組,你需要在改造這個 SSM 時執行ssm_list -> value = join(", ", subnet_ips_list)
。 在模板中,您可以將其引用為Type: 'AWS::SSM::Parameter::Value<CommaDelimitedList>'
並且您可以在SubnetIds: ssm_list
之后直接傳遞一個數組
或一一
SubnetIds:
- !Select [0, !Split [ ", ", ssm_list ]]
也許這些也會有所幫助: 如何使用 Terraform 在 AWS SSM 參數中存儲三元素元組?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.