AWS Lambda / SAM: как получить URI вызова из интерфейса командной строки?

В рамках шаблона AWS SAM у меня есть функция с триггером события HttpPost. Поскольку я использую преобразование AWS SAM, я не объявляю явно API-шлюз, который создается для маршрутизации этого сообщения http для запуска функции. Учитывая это, есть ли способ ссылаться на сгенерированную конечную точку 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.


person Andrew Schwartz    schedule 04.01.2020    source источник


Ответы (1)


Согласно документации и предыдущий вопрос, вы можно получить с помощью:

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

Где ${Stage} - ваш собственный параметр, содержащий развернутый этап.

person kichik    schedule 04.01.2020
comment
вы также можете получить amazonaws.com от AWS::URLSuffix, так что !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/${Stage}" - person Arun K; 05.01.2020