首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用AWS SAM部署到多个方面(开发、发布、生产)?

如何使用AWS SAM部署到多个方面(开发、发布、生产)?
EN

Stack Overflow用户
提问于 2022-05-23 18:43:07
回答 1查看 101关注 0票数 0

我有一个AWS SAM模板,其中我有一个带有API的Lambda,并且我希望能够将这个lambda部署到不同的环境中,比如开发、发布和生产,作为任何其他项目,这样在到达最终的最终用户之前,一切都可以很好地进行测试。

到目前为止,我已经尝试在我的模板中创建一个参数,用于在部署时更改环境,第一次使用name-develop部署lambda,但是当我试图发布它时,只是用name-release代替了name-develop,而不是让这两个lambda共存。

这是我的模板:

代码语言:javascript
复制
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  ocr-app

  Sample SAM Template for ocr-app
  
# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
  Function:
    Timeout: 15

Parameters:
  Env:
    Type: String
    AllowedValues:
      - develop
      - release
      - product
    # Default: develop
    Description: Environment in which the application will be deployed. Allowed values [develop, release, product]


Resources:
  OCRFunction:
    Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
    Properties:
      Environment:
          Variables:
            ENV: !Ref Env
      CodeUri: ocr/
      Handler: app.lambdaHandler
      FunctionName: !Sub OCRFunction_${Env}
      Runtime: nodejs14.x
      Policies: 
        - S3ReadPolicy: # Managed Policy
            BucketName: "*"
        - AWSLambdaExecute # Managed Policy
      Architectures:
        - x86_64
      Events:
        OCR:
          Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
          Properties:
            Path: /ocr
            Method: get

Outputs:
  # ServerlessRestApi is an implicit API created out of Events key under Serverless::Function
  # Find out more about other implicit resources you can reference within SAM
  # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api
  OCRApi:
    Description: "API Gateway endpoint URL for Prod stage for Hello World function"
    Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
  OCRFunction:
    Description: "Hello World Lambda Function ARN"
    Value: !GetAtt OCRFunction.Arn
  OCRFunctionIamRole:
    Description: "Implicit IAM Role created for Hello World function"
    Value: !GetAtt OCRFunctionRole.Arn

如何部署到多个环境?

EN

回答 1

Stack Overflow用户

发布于 2022-05-24 12:43:04

到目前为止,我发现的一种方法是创建另一个堆栈--每个环境都创建一个堆栈。我不确定这是否是唯一/最好的方法,所以我愿意听取其他意见。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72353441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档