【问题标题】:AWS Lambda / SAM: How to get invocation URI from CLI?AWS Lambda / SAM:如何从 CLI 获取调用 URI?
【发布时间】:2020-04-22 21:50:06
【问题描述】:

作为 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
     ...

我目前正在使用sam CLI 进行部署,我认为它的语法与aws cloudformtion 非常相似。

【问题讨论】:

    标签: aws-lambda amazon-cloudformation aws-cli aws-sam aws-sam-cli


    【解决方案1】:

    根据documentationthis previous question,你可以通过:

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

    其中${Stage} 是您自己的包含已部署阶段的参数。

    【讨论】:

    • 你也可以从AWS::URLSuffix得到amazonaws.com,这样就可以了,!Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/${Stage}"
    猜你喜欢
    • 2016-02-04
    • 2020-05-27
    • 1970-01-01
    • 2019-11-19
    • 2021-01-30
    • 2021-04-01
    • 1970-01-01
    • 2021-07-02
    • 2019-08-11
    相关资源
    最近更新 更多