AWS::Serverless::Function 是用于 Lambda@Edge 事件处理程序的 Lambda 版本。
下面是一个使用 AWS SAM(Serverless Application Model)的示例:
Resources:
MyLambdaFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: index.handler
Runtime: nodejs14.x
Events:
MyLambdaEdgeEvent:
Type: CloudFront
Properties:
DistributionId: ABCDEFG1234567
EventType: viewer-request
在上面的示例中,我们定义了一个名为 MyLambdaFunction 的 AWS::Serverless::Function 资源。该函数使用 nodejs14.x 运行时,并且代码位于当前目录下的 index 文件中的 handler 函数。
该函数将被触发处理 CloudFront 的 viewer-request 事件。DistributionId 属性指定要触发 Lambda@Edge 的 CloudFront 分发的 ID。
请注意,Lambda@Edge 函数与普通 Lambda 函数的主要区别在于它们在 CloudFront 边缘位置部署,并且可以处理在边缘节点上发生的事件。因此,在定义 Lambda@Edge 函数时,需要使用 AWS::Serverless::Function 类型。