我具有使用无服务器框架成功部署到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
),部署也会始终生成相同的端点。
是否可以将相同的功能部署到不同的端点?
答案 0 :(得分:1)
更改服务名称不是一个可扩展的解决方案。您应保留相同的服务名称,并使用不同的--stage进行部署,以根据部署到的阶段获得不同的终结点。您可以使用该阶段来管理环境变量,以便可以在一个阶段将其设置为一个值,而在另一阶段将其设置为另一个值。请参见this SO Question中的示例。另外,nodejs8.10在AWS上也是EOL。请改用nodejs10.x。
答案 1 :(得分:0)
好吧,过一会儿我便找到了解决方案。
serverless.yml文件的第一个参数是service: myService
。
更改该参数实际上会生成一个部署,该部署会创建不同的端点。