在ASW Lambda上将相同的功能部署到不同的端点

时间:2019-10-22 07:26:13

标签: aws-lambda serverless-framework

我具有使用无服务器框架成功部署到AWS Lambda的功能。

此功能依赖于我在serverless.yml文件中设置的一些环境变量,像这样

    provider:
        name: aws
        runtime: nodejs8.10
        stage: ${opt:stage,'dev'}
        region: ${opt:region,'eu-west-1'}
        deploymentBucket:
            name: my-bucket
        environment:
            MY_ENV_VAR: 'the value of my var'

functions:
    myFunction:
        handler: handler.myHandler
        events:
            - http:
                  path: executeFunction
                  method: post

现在,我想使用相同的逻辑,只是将MY_ENV_VAR的不同值部署到不同的端点。如果仅更改MY_ENV_VAR的值然后进行部署,则端点不会更改。但是,即使我更改了deploymentBucket和函数名称(即myFunction),部署也会始终生成相同的端点。

是否可以将相同的功能部署到不同的端点?

2 个答案:

答案 0 :(得分:1)

更改服务名称不是一个可扩展的解决方案。您应保留相同的服务名称,并使用不同的--stage进行部署,以根据部署到的阶段获得不同的终结点。您可以使用该阶段来管理环境变量,以便可以在一个阶段将其设置为一个值,而在另一阶段将其设置为另一个值。请参见this SO Question中的示例。另外,nodejs8.10在AWS上也是EOL。请改用nodejs10.x。

答案 1 :(得分:0)

好吧,过一会儿我便找到了解决方案。

serverless.yml文件的第一个参数是service: myService

更改该参数实际上会生成一个部署,该部署会创建不同的端点。