具有显式 API 作为事件源的 SAM Lambda 事件
SAM Lambda event with an explicit API as the event source
我正在尝试在我的 SAM 模板中的 lambda 函数上设置一个事件,但我希望事件源是一个明确的 API 端点。
文档显示了一个带有隐式 API 作为事件源的事件:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs6.10
CodeUri: s3://bucket/api_backend.zip
Policies: AmazonDynamoDBReadOnlyAccess
Environment:
Variables:
TABLE_NAME: !Ref Table
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
这将是明确的 API 定义:
Resources:
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
DefinitionUri: swagger.yml
如何将事件源显式设置为 MyApi?
我需要在事件定义下添加 RestApiId
,如下所示:
Events:
GetResource:
Type: Api
Properties:
RestApiId: !Ref MyApi
Path: /resource/{resourceId}
Method: get
我正在尝试在我的 SAM 模板中的 lambda 函数上设置一个事件,但我希望事件源是一个明确的 API 端点。
文档显示了一个带有隐式 API 作为事件源的事件:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs6.10
CodeUri: s3://bucket/api_backend.zip
Policies: AmazonDynamoDBReadOnlyAccess
Environment:
Variables:
TABLE_NAME: !Ref Table
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
这将是明确的 API 定义:
Resources:
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
DefinitionUri: swagger.yml
如何将事件源显式设置为 MyApi?
我需要在事件定义下添加 RestApiId
,如下所示:
Events:
GetResource:
Type: Api
Properties:
RestApiId: !Ref MyApi
Path: /resource/{resourceId}
Method: get