-
Notifications
You must be signed in to change notification settings - Fork 0
/
serverless.yml
51 lines (50 loc) · 2.78 KB
/
serverless.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
service: slackbot-with-chatgpt-api
frameworkVersion: "3"
provider:
name: aws
runtime: nodejs18.x
stage: ${opt:stage, 'stg'}
region: ${opt:region, "ap-northeast-1"}
environment: ${self:custom.environment.${self:provider.stage}}
timeout: 30
iam:
role:
statements:
- Effect: "Allow"
Action:
- ssm:GetParameter
Resource: arn:aws:ssm:${self:provider.region}:${aws:accountId}:parameter/${self:service}/${self:provider.stage}/*
- Effect: "Allow"
Action:
- lambda:InvokeFunction
Resource: arn:aws:lambda:${self:provider.region}:${aws:accountId}:function:${self:service}-${self:provider.stage}-*
functions:
webhookHandler:
handler: dist/webhookHandler.handler
name: ${self:service}-${self:provider.stage}-webhookHandler
events:
- http:
path: slack/events
method: post
messageHandler:
handler: dist/messageHandler.handler
name: ${self:service}-${self:provider.stage}-messageHandler
timeout: 120
custom:
environment:
prod:
SLACK_SIGNING_SECRET: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/SLACK_SIGNING_SECRET, env:SLACK_SIGNING_SECRET}
SLACK_BOT_TOKEN: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/SLACK_BOT_TOKEN, env:SLACK_BOT_TOKEN}
SLACK_BOT_ID: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/SLACK_BOT_ID, env:SLACK_BOT_ID}
OPENAI_API_KEY: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/OPENAI_API_KEY, env:OPENAI_API_KEY}
OPENAI_MODEL_NAME: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/OPENAI_MODEL_NAME, env:OPENAI_MODEL_NAME}
OPENAI_SYSTEM_PROMPT: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/OPENAI_SYSTEM_PROMPT, env:OPENAI_SYSTEM_PROMPT}
MESSAGE_HANDLER_NAME: ${self:functions.messageHandler.name}
stg:
SLACK_SIGNING_SECRET: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/SLACK_SIGNING_SECRET, env:SLACK_SIGNING_SECRET}
SLACK_BOT_TOKEN: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/SLACK_BOT_TOKEN, env:SLACK_BOT_TOKEN}
SLACK_BOT_ID: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/SLACK_BOT_ID, env:SLACK_BOT_ID}
OPENAI_API_KEY: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/OPENAI_API_KEY, env:OPENAI_API_KEY}
OPENAI_MODEL_NAME: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/OPENAI_MODEL_NAME, env:OPENAI_MODEL_NAME}
OPENAI_SYSTEM_PROMPT: ${ssm(${self:provider.region}):/${self:service}/${self:provider.stage}/OPENAI_SYSTEM_PROMPT, env:OPENAI_SYSTEM_PROMPT}
MESSAGE_HANDLER_NAME: ${self:functions.messageHandler.name}