serverless.yml
service: ${file(./package.json):name}
frameworkVersion: '3'
useDotenv: true
provider:
name: aws
runtime: nodejs18.x
region: ${env:AWS_REGION}
stage: ${env:ENVIRONMENT}
timeout: 180 # 3 minutes
memorySize: 128 # MB
iamRoleStatements:
- Effect: 'Allow'
Action:
- 'secretsmanager:GetSecretValue'
Resource: 'arn:aws:secretsmanager:${self:provider.region}:${aws:accountId}:*'
environment:
BAMBOOHR_SUBDOMAIN: ${env:BAMBOOHR_SUBDOMAIN}
EMPLOYEE_COUNTRY_FILTER: ${env:EMPLOYEE_COUNTRY_FILTER}
BAMBOOHR_TIME_OFF_OFFICE_CODE: ${env:BAMBOOHR_TIME_OFF_OFFICE_CODE}
SLACK_CELEBRATIONS_CHANNEL_IDS: ${env:SLACK_CELEBRATIONS_CHANNEL_IDS}
SLACK_BANK_HOLIDAYS_CHANNEL_IDS: ${env:SLACK_BANK_HOLIDAYS_CHANNEL_IDS}
SLACK_OFFICE_CHANNEL_IDS: ${env:SLACK_OFFICE_CHANNEL_IDS}
plugins:
- serverless-esbuild
functions:
main:
handler: src/handler.main
events:
- schedule: cron(0 7 ? * MON-FRI *)