首页 > 解决方案 > AWS Lambda / SAM:如何从 CLI 获取调用 URI?

问题描述

作为 AWS SAM 模板的一部分,我有一个带有 HttpPost 事件触发器的函数。因为我使用的是 AWS SAM 转换,所以我没有明确声明为路由此 http 帖子以触发函数而创建的 API 网关。鉴于此,是否有任何方法可以引用生成的 URL 端点,例如在堆栈输出或describe-stack-resources中,以便我可以以编程方式获取函数的调用 URL?我知道我可以通过导航到控制台中的堆栈、找到 ApiGateway 资源并随机单击直到其中一个页面显示它来获取端点。但我想要一种我的应用程序代码可以重现的方法。

缩短模板供参考:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
  SendJobUpdateFunction:
    Type: AWS::Serverless::Function
    Properties:
      ...
      Runtime: nodejs10.x
      Events:
        HttpPost:
          Type: Api
          Properties:
            Path: '/jobs'
            Method: post
     ...

我目前正在使用samCLI 进行部署,我认为它的语法与aws cloudformtion.

标签: aws-lambdaamazon-cloudformationaws-cliaws-samaws-sam-cli

解决方案


根据文档上一个问题,您可以通过以下方式获得它:

!Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/${Stage}"

${Stage}您自己的包含已部署阶段的参数在哪里。


推荐阅读