簡體   English   中英

aws cli 命令 output 作為 cloudformation 模板中的值

[英]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

宏示例: https://stackoverflow.com/a/70475459/3390419

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM