forked from aws-samples/eb-java-scorekeep
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlambda-function.config
More file actions
95 lines (89 loc) · 3.2 KB
/
lambda-function.config
File metadata and controls
95 lines (89 loc) · 3.2 KB
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
Resources:
RandomNameFunction:
Type: "AWS::Lambda::Function"
Properties:
Code:
ZipFile: "PLACEHOLDER"
Description: "Generate random names"
Environment:
Variables:
REGION_NAME: {"Ref" : "AWS::Region"}
TOPIC_ARN: {"Ref" : "NotificationTopic"}
FunctionName: random-name-embedded
Handler: index.handler
Role: { "Fn::Join": [ "", [ "arn:aws:iam::",{"Ref" : "AWS::AccountId"},":role/service-role/scorekeep-lambda" ] ] }
Runtime: nodejs4.3
Timeout: 7
commands:
install-npm:
command: sudo -u ec2-user /tmp/install-npm.sh
cwd: /home/ec2-user
test: "[ ! -d /home/ec2-user/.nvm ]"
install-pip3:
command: curl -o- https://bootstrap.pypa.io/get-pip.py | /usr/bin/python3
test: "[ ! -d /usr/local/bin/pip3 ]"
packages:
python:
awscli: 1.11.79
yum:
python35: []
container_commands:
update-random-name:
command: /tmp/update-lambda-randomname.sh
leader_only: true
update-scorekeep-worker:
command: /tmp/update-lambda-scorekeepworker.sh
leader_only: true
files:
"/tmp/install-npm.sh":
mode: "000755"
owner: ec2-user
group: ec2-user
content: |
#!/bin/bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install 4.3.2
mkdir -p /home/ec2-user/bin
ln -fs /home/ec2-user/.nvm/versions/node/v4.3.2/bin/npm /home/ec2-user/bin/npm
ln -fs /home/ec2-user/.nvm/versions/node/v4.3.2/bin/node /home/ec2-user/bin/node
"/tmp/update-lambda-randomname.sh":
mode: "000755"
owner: ec2-user
group: ec2-user
content: |
#!/bin/bash
REGION=$(/opt/elasticbeanstalk/bin/get-config environment -k AWS_REGION)
STAGINGDIR=$(/opt/elasticbeanstalk/bin/get-config container -k container_staging_dir)
cd _lambda/random-name
/home/ec2-user/bin/npm install
zip -r ../random-name.zip *
aws lambda update-function-code --function-name random-name-embedded --zip-file fileb://../random-name.zip --region $REGION
if [ $? -ne 0 ]
then
echo "Lambda function random-name-embedded not found"
fi
exit 0
"/tmp/update-lambda-scorekeepworker.sh":
mode: "000755"
owner: ec2-user
group: ec2-user
content: |
#!/bin/bash
REGION=$(/opt/elasticbeanstalk/bin/get-config environment -k AWS_REGION)
STAGINGDIR=$(/opt/elasticbeanstalk/bin/get-config container -k container_staging_dir)
QUEUE=$(/opt/elasticbeanstalk/bin/get-config environment -k WORKER_QUEUE)
cd _lambda/scorekeep-worker
/usr/local/bin/pip3 install requests -t bundle
cp requirements.txt scorekeep-worker.py bundle
cd bundle
zip -r ../../scorekeep-worker.zip *
cd ../
aws lambda update-function-code --function-name scorekeep-worker --zip-file fileb://../scorekeep-worker.zip --region $REGION
aws lambda update-function-configuration --function-name scorekeep-worker --environment "{\"Variables\": {\"WORKER_QUEUE\": \"$QUEUE\"} }" --region $REGION
if [ $? -ne 0 ]
then
echo "Lambda function scorekeep-worker not found"
fi
exit 0