Я думаю, что нашел ответ в нескольких местах.
Этот пост переполнения стека показывает, что создана неявная ссылка, которую вы можете использовать следующим образом
!Ref ServerlessRestApi
На практике это поддерживалось приложением SAM Respository
А затем я перечитал, более подробно, документацию SAM API , который показывает RestApiId
Свойство. Там написано
... Как правило, для этого задана ссылка на ресурс AWS :: Serverless :: Api, определенный в этом шаблоне. Если не определено, создается ресурс по умолчанию AWS :: Serverless :: Api ... "
Таким образом, вы можете ссылаться на него как !Ref ServerlessRestApi
без каких-либо изменений в YAML в исходный вопрос, или вы можете добавить следующее свойство RestApiId: MyAPI
и ссылаться на него как !Ref MyAPI
.
Однако, чтобы получить реальный URL, похоже, что вы должны использовать Fn :: Sub склеить пару частей. Pahud Hsieh делает это в своем приложении SAM Repository выше
Outputs:
APIUrlPrefix:
Value:
Fn::Sub:
- https://${ServerlessRestApi}.execute-api.${Region}.amazonaws.com/Prod/incomingwebhooks/'
- Region:
Ref: AWS::Region
ServerlessRestApi:
Ref: ServerlessRestApi
...