如何在将由 AWS SAM 模板中的 API 网关触发的 lambda 资源中添加事件
How to add an event in a lambda resource that will be triggered by an API gateway in an AWS SAM template
我正在尝试创建一个 AWS SAM 模板,它有一个应由 API 网关触发的 lambda。
SAM 模板仅适用于 API 网关,不适用于 API 网关。 API 网关将手动创建,并在部署 SAM 模板之前存在。
我知道这样做的方法是,在我添加的资源下:
Events:
APIName:
Type: Api
Properties:
Method : post
Path : /group/user
RestApiId:
Ref: MyApi
可以查看示例 here。
我不明白的是,我应该如何确切地将它用于我的用例。
我的问题:
- API Name : 这里放什么?我使用了准确的 API 名称,该名称已在 AWS 账户中创建,但出现事件 ID 无效的错误。
- 如何唯一标识我的 API? : 假设我们有两个具有相同路径
/sendMesage
的 API,那么模板如何知道要引用 哪个 API 网关?我认为它与RestApiId有关,但我不确定,因为它不是必填字段。
- 我们不能 link 建立现有的 API 网关吗? :我认为这里可能存在的一个可能问题是,我们实际上无法 link 现有 API 网关作为部署 SAM 堆栈后创建的 lambda 的触发器。但这是有限的,我不确定这是不是真的。
我会一一解答,希望能帮到你
API 姓名:这里要放什么?
这只是您正在创建的 API 活动的标识符。我通常对端点使用某种形式的描述。无论你最终做什么,尽量有一些约定,否则它会变得难以阅读(Http 动词然后是动作,例如,GetAllUsers)
如何唯一标识我的 API? :
有点感觉你实际上有两个不同的职责,因此这里可能有两个不同的路径名。如果 sendMessage 可以向群组或用户发送消息,那么您可以使用 sendMessageToGroup
和 sendMessageToUser
从而使它们更加明确。
我们可以不link现有的API网关吗? :
它似乎不是 judging by the docs 但我可能在那个方面是错误的。
我正在尝试创建一个 AWS SAM 模板,它有一个应由 API 网关触发的 lambda。
SAM 模板仅适用于 API 网关,不适用于 API 网关。 API 网关将手动创建,并在部署 SAM 模板之前存在。
我知道这样做的方法是,在我添加的资源下:
Events:
APIName:
Type: Api
Properties:
Method : post
Path : /group/user
RestApiId:
Ref: MyApi
可以查看示例 here。
我不明白的是,我应该如何确切地将它用于我的用例。
我的问题:
- API Name : 这里放什么?我使用了准确的 API 名称,该名称已在 AWS 账户中创建,但出现事件 ID 无效的错误。
- 如何唯一标识我的 API? : 假设我们有两个具有相同路径
/sendMesage
的 API,那么模板如何知道要引用 哪个 API 网关?我认为它与RestApiId有关,但我不确定,因为它不是必填字段。 - 我们不能 link 建立现有的 API 网关吗? :我认为这里可能存在的一个可能问题是,我们实际上无法 link 现有 API 网关作为部署 SAM 堆栈后创建的 lambda 的触发器。但这是有限的,我不确定这是不是真的。
我会一一解答,希望能帮到你
API 姓名:这里要放什么? 这只是您正在创建的 API 活动的标识符。我通常对端点使用某种形式的描述。无论你最终做什么,尽量有一些约定,否则它会变得难以阅读(Http 动词然后是动作,例如,GetAllUsers)
如何唯一标识我的 API? :
有点感觉你实际上有两个不同的职责,因此这里可能有两个不同的路径名。如果 sendMessage 可以向群组或用户发送消息,那么您可以使用 sendMessageToGroup
和 sendMessageToUser
从而使它们更加明确。
我们可以不link现有的API网关吗? : 它似乎不是 judging by the docs 但我可能在那个方面是错误的。