-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemplate.yaml
132 lines (121 loc) · 3.76 KB
/
template.yaml
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
sam-chatbot-app
Sample SAM Template for sam-chatbot-app
Globals:
Function:
Timeout: 10
Environment:
Variables:
B2BSTORE_URL: "YOUR_B2BSTORE_URL_HERE"
Resources:
# Lambda function to handle the chatbot
BotLambdaFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambda_bot/
Handler: lambda_handler.lambda_handler
Runtime: python3.8
AutoPublishAlias: prod
Policies:
- AWSLambdaBasicExecutionRole
Architectures:
- x86_64
# IAM Role used by the Lex service to make runtime calls
LexServiceRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
Service:
- lexv2.amazonaws.com
Action:
- "sts:AssumeRole"
# Give permission to Lex bot to run the validation Lambda function
lexBotPermission:
Type: AWS::Lambda::Permission
Properties:
Action: lambda:InvokeFunction
FunctionName: !Ref BotLambdaFunction.Alias
Principal: lex.amazonaws.com
#Amazon Lex bot
LexBot:
Type: AWS::Lex::Bot
Properties:
AutoBuildBotLocales: true
BotFileS3Location:
S3Bucket: "bot-lex"
S3ObjectKey: "Prod_B2BStore_Chatbot_LexJson.zip"
S3ObjectVersion: "X.mbOZniMnDtcXtM9rss2yFHtey4R8Ci"
DataPrivacy:
ChildDirected: false
Description: "B2BStore chatbot"
IdleSessionTTLInSeconds: 60
Name: "B2BStoreChatbot"
RoleArn: !GetAtt LexServiceRole.Arn
#Create a Bot Version
LexBotVersion:
DependsOn: LexBot
Type: AWS::Lex::BotVersion
Properties:
BotId: !Ref LexBot
BotVersionLocaleSpecification:
- LocaleId: "en_US"
BotVersionLocaleDetails:
SourceBotVersion: DRAFT
- LocaleId: "es_ES"
BotVersionLocaleDetails:
SourceBotVersion: DRAFT
- LocaleId: "fr_FR"
BotVersionLocaleDetails:
SourceBotVersion: DRAFT
- LocaleId: "pt_PT"
BotVersionLocaleDetails:
SourceBotVersion: DRAFT
Description: "B2BStore chatbot version"
#Create a Bot Alias for the Bot Version
LexBotAlias:
DependsOn: LexBotVersion
Type: AWS::Lex::BotAlias
Properties:
BotId: !Ref LexBot
BotAliasName: "ProdB2BStoreChatbot_v1"
BotVersion: !GetAtt LexBotVersion.BotVersion
Description: "B2BStore chatbot alias"
BotAliasLocaleSettings:
- BotAliasLocaleSetting:
CodeHookSpecification:
LambdaCodeHook:
CodeHookInterfaceVersion: "1.0"
LambdaArn: !Ref BotLambdaFunction.Alias
Enabled: true
LocaleId: "en_US"
- BotAliasLocaleSetting:
CodeHookSpecification:
LambdaCodeHook:
CodeHookInterfaceVersion: "1.0"
LambdaArn: !Ref BotLambdaFunction.Alias
Enabled: true
LocaleId: "es_ES"
- BotAliasLocaleSetting:
CodeHookSpecification:
LambdaCodeHook:
CodeHookInterfaceVersion: "1.0"
LambdaArn: !Ref BotLambdaFunction.Alias
Enabled: true
LocaleId: "fr_FR"
- BotAliasLocaleSetting:
CodeHookSpecification:
LambdaCodeHook:
CodeHookInterfaceVersion: "1.0"
LambdaArn: !Ref BotLambdaFunction.Alias
Enabled: true
LocaleId: "pt_PT"
Outputs:
BotLambdaFunction:
Description: "LexBot Lambda Function ARN"
Value: !GetAtt BotLambdaFunction.Arn