環境
- Serverless Framework
やりたいこと
CloudWatch Eventの定期実行をステージングでは手動実行、本番では定期実行させたいということがあったので、備忘録として残しておきます。
serverless.yml
至って簡単です。
service: hoge
provider:
name: aws
runtime: nodejs8.10
stage: ${opt:stage, self:custom.defaultStage}
region: ap-northeast-1
custom:
defaultStage: dev
schedule_active:
dev: "false"
prod: "true"
default: "false"
functions:
hello:
handler: handler.hello
events:
- schedule:
rate: rate(30 minutes)
enabled: ${self:custom.schedule_active.${opt:stage, self:custom.defaultStage}, self:custom.schedule_active.default}
上記で通常はscheduleを実行しないで、prod環境の時だけ、定期実行を行うように出来ます。
sls deploy --stage prod
でデプロイすればOK