-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild_push_docker.sh
More file actions
66 lines (53 loc) · 1.63 KB
/
build_push_docker.sh
File metadata and controls
66 lines (53 loc) · 1.63 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
#!/bin/bash
source ./common.sh
function check_exit {
EXIT_STATUS=$?
if [ $EXIT_STATUS -ne 0 ]; then
exit $EXIT_STATUS
fi
}
function update_lambda_or_skip_local() {
# $1 ACCOUNT_NUMBER
# $2 PREFIX
# $3 LAMBDA_NAME
echo "Checking Lambda Update Status..."
check_lambda_exist=$(aws lambda get-function --region $AWS_REGION $ADD_PROFILE --function-name $2-$3 2>/dev/null)
if [[ ! -n "${check_lambda_exist}" ]]; then
echo "Lambda ${2}-${3} Does Not Exist SKIPPING UPDATE"
else
echo "Lambda ${2}-${3} Exists"
echo "Updating Lambda ${2}-${3}"
docker_image_name=$1.dkr.ecr.$AWS_REGION.amazonaws.com/$REPO_NAME
AWS_PAGER="" aws lambda update-function-code \
--function-name $2-$3 \
--image-uri ${docker_image_name}:latest \
--region ${AWS_REGION} \
$ADD_PROFILE
echo "Lambda ${2}-${3} Updated"
fi
}
if [[ -z "${AWS_PROFILE}" ]]; then
echo $AWS_PROFILE
read -rp 'AWS_PROFILE: ' AWS_PROFILE
fi
if [[ -z "${STACK_PREFIX}" ]]; then
read -rp 'STACK_PREFIX: ' STACK_PREFIX
fi
AWS_ACCOUNT_ID=$(get_account_id)
if [[ $(uname -m) == arm64* ]]; then
docker_build="docker buildx build --load --platform linux/amd64 -t"
else
docker_build="docker build -t"
fi
${docker_build} ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/$REPO_NAME .
check_exit
create_ecr_repo_or_skip $AWS_ACCOUNT_ID $STACK_PREFIX
check_exit
push_to_ecr $AWS_ACCOUNT_ID $STACK_PREFIX
check_exit
update_lambda_or_skip_local $AWS_ACCOUNT_ID $STACK_PREFIX "mdx_docker_lambda_1g"
check_exit
update_lambda_or_skip_local $AWS_ACCOUNT_ID $STACK_PREFIX "mdx_docker_lambda_3g"
check_exit
stop_mdx_task $STACK_PREFIX
check_exit