我正在尝试在我的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?
答案 0 :(得分:2)
我需要在事件定义下添加RestApiId
,如下所示:
Events:
GetResource:
Type: Api
Properties:
RestApiId: !Ref MyApi
Path: /resource/{resourceId}
Method: get