将特定的AWS API Gateway阶段连接到CloudFormation模板中的特定Lambda别名

时间:2018-05-18 14:46:19

标签: amazon-web-services aws-lambda aws-api-gateway amazon-cloudformation

我为AWS API Gateway和Lambda函数创建CloudFormation模板,我需要将特定的API Gateway阶段连接到特定的Lambda别名。我有两个别名--QA和Prod,以及两个API阶段(QA和也是Prod),在CloudFormation模板中看起来像:

row_number()

如何在模板中描述QA API阶段应该调用Lambda函数的QA别名,以及Prod阶段 - Prod别名?

1 个答案:

答案 0 :(得分:3)

首先了解如何使用GUI进行操作。有一些关于你想在这里做什么的文件。如果这是您第一次设置此权限,还需要添加一些额外的权限 -

https://docs.aws.amazon.com/apigateway/latest/developerguide/stage-variables.html

但是为了快速回答你所寻找的是$:{stageVariables.stage}它的作用是链接你要触发的lambda的别名。在GUI中,它看起来像这样: enter image description here

这样做会让你的lambda触发某个别名。输入后,您将能够在API网关中使用“测试”功能时看到新选项。所以在这里你指定QA。 Enter the lambda Alias here

因此,要在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您希望看到的内容位于页面的最底部。 希望这有帮助!