我为AWS API Gateway和Lambda函数创建CloudFormation模板,我需要将特定的API Gateway阶段连接到特定的Lambda别名。我有两个别名--QA和Prod,以及两个API阶段(QA和也是Prod),在CloudFormation模板中看起来像:
row_number()
如何在模板中描述QA API阶段应该调用Lambda函数的QA别名,以及Prod阶段 - Prod别名?
答案 0 :(得分:3)
首先了解如何使用GUI进行操作。有一些关于你想在这里做什么的文件。如果这是您第一次设置此权限,还需要添加一些额外的权限 -
https://docs.aws.amazon.com/apigateway/latest/developerguide/stage-variables.html
但是为了快速回答你所寻找的是$:{stageVariables.stage}它的作用是链接你要触发的lambda的别名。在GUI中,它看起来像这样:
这样做会让你的lambda触发某个别名。输入后,您将能够在API网关中使用“测试”功能时看到新选项。所以在这里你指定QA。
因此,要在Cloudformation中反映这一点,我们需要做类似的事情 -
RestApi:
Type: "AWS::ApiGateway::RestApi"
Properties:
Name: "test-rest-api"
Description: "Test REST API"
paths:
/ExamplePath:
put:
#Here will go all the configuration setting you want
#Such as security, httpMethod, amd passthroughBehavior
#But what you need is
uri: 'arn:aws:apigateway:${AWS:Region}:lambda:path/2-15/03/31/functions/${LambdaARN}:${!stageVariables.stage}/invocations'
有关这方面的更多信息,请访问: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html您希望看到的内容位于页面的最底部。 希望这有帮助!