gpt4 book ai didi

amazon-web-services - 获取对在 CloudFormation 中触发 AWS::Serverless::Function 的 Api 的引用

转载 作者:行者123 更新时间:2023-12-03 07:28:53 25 4
gpt4 key购买 nike

在 CloudFormation 模板中,我使用由 API 网关触发的 lambda 函数定义一个无服务器应用程序,如下所示:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
# ...
Events:
GetStuff:
Type: Api
Properties:
Path: /stuff
Method: get

这会生成一个 API 网关资源,该资源被设置为接收 GET 请求并转发到我的 lambda,并且它按照我想要的方式工作。

但是,我不知道如何在模板的 Output 部分引用该 API 实例:

Output:
MyGatewayId:
Description: Id of the auto-generated API Gateway resource
Value: # what do I put here?

我已按照建议尝试了 !GetAtt MyFunction.RootResourceId here ,但是当我尝试部署堆栈时,这导致了失败:

Failed to create the changeset: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state Status: FAILED. Reason: Invalid template resource property 'MyGatewayId'

最佳答案

如果您确实希望能够输出,关键是了解无服务器转换为您做什么,根据您的规范生成一系列资源。

您可以检查您的 CloudFormations 资源以确定,但要根据您的规范

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
# ...
Events:
GetStuff:
Type: Api
Properties:
Path: /stuff
Method: get

它应该会为您生成一些资源。基于您的 Events 属性,以及您未指定 RestApiId 的事实,它会为您生成一个默认的 API Gateway Rest API,并为其指定 ServerlessRestApi 的逻辑 id。因此,回答您关于输出的原始问题

Output:
MyGatewayId:
Description: Id of the auto-generated API Gateway resource
Value: !Ref ServerlessRestApi

关于amazon-web-services - 获取对在 CloudFormation 中触发 AWS::Serverless::Function 的 Api 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46091527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com