簡體   English   中英

在CloudFormation模板中為不同的AWS Lambda別名配置環境變量

[英]Configuration of environment variables for different AWS Lambda aliases in CloudFormation template

我為我的AWS Lambda函數創建CloudFormation模板,並且需要為不同的lambda別名指定不同的環境變量值。 我的模板如下所示:

AWSTemplateFormatVersion: "2010-09-09"

Transform: "AWS::Serverless-2016-10-31"

Description: Lambda function configuration

Resources:
  EndpointLambda:
    Type: "AWS::Lambda::Function"
    Properties:
      FunctionName: "endpoint-lambda"
      Handler: "com.test.aws.RequestHandler::handleRequest"
      Runtime: java8
      Code:
        S3Bucket: "lambda-functions"
        S3Key: "test-endpoint-lambda-0.0.1.jar"
      Description: Test Lambda function
      MemorySize: 256
      Timeout: 60
      Environment:
        Variables:
          ES_HOST: test-es-host-url
          ES_ON: true
          ES_PORT: 443
          ES_PROTOCOL: https
          REDIS_URL: test-redis-host-url

  QaLambdaAlias:
    Type: "AWS::Lambda::Alias"
    Properties:
      FunctionName: !Ref EndpointLambda
      FunctionVersion: 1
      Name: "QA"
      Description: "QA alias"

  ProdLambdaAlias:
    Type: "AWS::Lambda::Alias"
    Properties:
      FunctionName: !Ref EndpointLambda
      FunctionVersion: 1
      Name: "Prod"
      Description: "Production alias"

如您所見,我有兩個別名-QA和Prod和一堆環境變量。 我在lambda函數聲明中指定了具有公共值的變量。 但是我需要聲明QA別名env。 與質量檢查和Prod別名相關的變量值-Prod環境的值。 有什么想法我該怎么做?

您可以使用CloudFormation參數來執行此操作。 作為一個簡單的例子:

Parameters:
  LambdaRuntime:
    Type: String
    Default: 'java8'
    Description: What Lambda runtime do we use?

Resources:
  QaLambdaAlias:
    Type: "AWS::Lambda::Alias"
    Properties:
      FunctionName:
        Ref: EndpointLambda
      FunctionVersion: 1
      Name: "QA"
      Description: "QA alias"
      Runtime:
        Ref: LambdaRuntime

然后,如果要使用其他參數,則在通過CLI進行部署時,可以使用如下parameter-overrides

aws cloudformation deploy --stack-name MyStack --template-file \
CloudFormation/MyStack.yaml --capabilities CAPABILITY_IAM \
--parameter-overrides LambdaRuntime=nodejs8.10

暫無
暫無

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

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