首页 文章

如何从AWS SAM获得堆栈输出?

提问于
浏览
0

我想对我的无服务器项目执行自动集成测试 . 要做到这一点,我需要以某种方式得到api endpoints . 已经有the plugin serverless-stack-output用于无服务器框架的目的 . 但我想知道在部署应用程序后如何通过AWS SAM实现类似的功能?

同时,如果我能以某种方式得到我的api的基本URL以及各个 endpoints ,那么我就能够连接它们并对它们进行测试 .

1 回答

  • 1

    AWS AWS构建于AWS CloudFormation之后,您可以使用CloudFormation's Outputs-feature .

    如何定义这样的输出非常简单 . 你可以,例如请参阅SAM-repository中的api_backend example . 相关部分是产出的定义:

    Outputs:
        ApiURL:
          Description: "API endpoint URL for Prod environment"
    Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/resource/"
    

    在部署CloudFormation堆栈之后,您仍然需要一种方法来获取输出 . 为此你可以例如使用AWS CLI:

    aws cloudformation describe-stacks --stack-name mystack \
        --query 'Stacks[0].Outputs[?OutputKey==`ApiURL`].OutputValue' \
        --output text
    

相关问题