使用 AWS CDK 配置 Lambda 加热器
Configure a Lambda Warmer using AWS CDK
可以使用 AWS SAM 配置 Lambda 预热函数。
Resources:
# ...
Web:
Type: AWS::Serverless::Function # https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
CodeUri: web/
Handler: lambda.handler
Runtime: nodejs10.x
FunctionName: !Sub myproject-${Stage}-web
Events:
Root:
Type: Api # https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
Properties:
Path: /
Method: ANY
RestApiId: !Ref WebRestApi
RootProxy:
Type: Api # https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
Properties:
Path: /{proxy+}
Method: ANY
RestApiId: !Ref WebRestApi
WarmingSchedule:
Type: Schedule
Properties:
Schedule: rate(5 minutes)
Input: '{ "warmer":true,"concurrency":3 }'
MemorySize: 512
Policies:
- AWSLambdaRole
如何使用 AWS CDK 创建一个加热器?是否有 "out of the box" 解决方案或是否需要使用 Schedule.cron
的自定义 lambda 函数?
您需要在 Cloudwatch 中执行 cron 作业来触发您的 lambda 以使其保持温暖
或者您使用无服务器插件:
可以使用 AWS SAM 配置 Lambda 预热函数。
Resources:
# ...
Web:
Type: AWS::Serverless::Function # https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
CodeUri: web/
Handler: lambda.handler
Runtime: nodejs10.x
FunctionName: !Sub myproject-${Stage}-web
Events:
Root:
Type: Api # https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
Properties:
Path: /
Method: ANY
RestApiId: !Ref WebRestApi
RootProxy:
Type: Api # https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
Properties:
Path: /{proxy+}
Method: ANY
RestApiId: !Ref WebRestApi
WarmingSchedule:
Type: Schedule
Properties:
Schedule: rate(5 minutes)
Input: '{ "warmer":true,"concurrency":3 }'
MemorySize: 512
Policies:
- AWSLambdaRole
如何使用 AWS CDK 创建一个加热器?是否有 "out of the box" 解决方案或是否需要使用 Schedule.cron
的自定义 lambda 函数?
您需要在 Cloudwatch 中执行 cron 作业来触发您的 lambda 以使其保持温暖 或者您使用无服务器插件: