我正在使用AWS SAM(无服务器应用程序模型)创建一个带有API endpoints 的lambda .
在我的SAM template.yaml中,我有一个带有/ user endpoints 的getUser lambda .
template.yaml
Resources:
GetUser:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./src
Handler: handler.getUser
Timeout: 300
Runtime: nodejs6.10
Events:
GetUser:
Type: Api
Properties:
Path: /user
Method: get
当我使用AWS CLI部署它时,它成功创建了lambda和 endpoints ,但API网关阶段容易混淆地命名为“Stage” . 我想将舞台名称更改为其他内容,例如“Prod” . 如何更改阶段名称?
这是舞台名称在部署后在cloudformation模板中定义的位置 . 我想要“StageName”:“Stage”就像“StageName”:“Prod” .
"ServerlessRestApiDeployment": {
"Type": "AWS::ApiGateway::Deployment",
"Properties": {
"RestApiId": {
"Ref": "ServerlessRestApi"
},
"StageName": "Stage"
}
1 回答
我无法删除
Stage
StageName,但是当我使用SAM进行部署时,我使用以下方法在GatewayAPI部署中设置了动态StageName:Properties: StageName: !Ref "STAGE_VARIABLE"
我为每个环境都有一个不同的堆栈,因此有一个带有
prod
阶段的prod
API和带有dev
阶段的dev
API . 我发现这比同一个GatewayAPI的多阶段部署更容易