簡體   English   中英

AWS Cloudformation - 將 CommaDelimitedList 參數轉換為字符串以將其作為環境變量傳遞給 Lamda Function

[英]AWS Cloudformation - Convert CommaDelimitedList Parameter to String for passing it as environment variable to Lamda Function

如何將 CommaDelimitedList 參數轉換為字符串以將其作為環境變量傳遞給 Lamda Function?

下面是包含 AWS 區域列表的示例 CommaDelimitedList 參數,我需要將其作為環境變量傳遞給雲形成模板中的 AWS Lambda function。 原因是當我嘗試按原樣傳遞它時!Ref ExternalRegions在創建/更新堆棧時會出錯:

Properties validation failed for resource LambdaFunction with message: #/Environment/Variables/EXTERNAL_REGIONS: expected type: String, found: JSONArray

Parameters:
  ExternalRegions:
    Description: CSV delimited account regions 
    Type: CommaDelimitedList

Resources:
    LambdaFunction:
        Type: AWS::Lambda::Function
        Properties:
          Environment:
            Variables:
              EXTERNAL_REGIONS: !Ref ExternalRegions

參數模板:

[{
    "ParameterKey": "ExternalRegions",
    "ParameterValue": "us-east-1,us-west-2,ap-southeast-1"
}]

你能幫忙嗎,我正在尋找一種將 csv 列表轉換為字符串的方法,這樣我就不必創建另一個具有相同值的 String 變量,並且在以后的更改中總是費心讓它們保持同步。

在此先感謝。

擦洗

Lambda環境變量值不能用逗號?

逗號分隔符在 Lambda function 環境設置中使用 Serverless Framework

如果是這種情況,我想知道一種方法,我可以將逗號分隔的列表參數轉換為字符串,並用 ex 的替代分隔符替換逗號。 分號 (;) 並將其作為 lambda function 變量傳遞。 這可能嗎?

我想通了:)

Resources:
  LambdaFunction:
    Type: AWS::Lambda::Function
      Properties:
        Environment:
          Variables:
            EXTERNAL_REGIONS: !Join [";", !Ref ExternalRegions]

我不認為您鏈接的問題仍然准確,因為我能夠在 web 控制台中創建包含,的環境變量環境變量

我的建議是將參數更改為類型:字符串,因為看起來您的 lambda function 必須處理; 無論如何定界符。

此外,我會謹慎使用分號作為環境變量中的分隔符,因為它可能會產生意想不到的/意外的副作用...... (特別是在外殼中)

暫無
暫無

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

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