[英]aws cli command output as value in cloudformation template
我有一個獨立的 lambda 層,使用以下 CLI 命令檢索 arn。
aws lambda list-layer-versions --layer-name my-custom-lambda-layer --region us-east-1 --query 'LayerVersions[0].LayerVersionArn'
我如何將這個 output 引用到我的雲形成模板中,如下所示,
Resources:
Parameters:
MYLAYERARN: $(aws lambda list-layer-versions --layer-name my-custom-lambda-layer --region us-east-1 --query 'LayerVersions[0].LayerVersionArn')
或直接在我的 lambda function 中的任何一個使用,如下所示,
Resources:
MyLambdaFuntion:
handler: Hello.lambda_handler
timeout: 60
memorySize: 256
layers:
- $(aws lambda list-layer-versions --layer-name my-custom-lambda-layer --region us-east-1 --query 'LayerVersions[0].LayerVersionArn')
目前不是在執行AWS CLI命令,而是以CLI命令為值
這是不可能的,因為您無法在 CloudFormation 模板中評估此類表達式。
最簡單的解決方案是將已計算的表達式作為參數傳遞。
或者,如果您必須使用 CloudFormation 解決方案,則可以利用 CloudFormation 宏來調用執行自定義代碼的 lambda function(在這種情況下,代碼將具有 AWS CLI 命令的 SDK 等價物)。
有關 CloudFormation 宏的更多信息: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.