Skip to content

Commit 539e258

Browse files
authored
Merge pull request #31 from SumoLogic/arnfindingfix
SUMO-278456 | Changes to fix arn fidings with ESC AWS region. Changes…
2 parents e3eeffb + 03cc084 commit 539e258

4 files changed

Lines changed: 125 additions & 3 deletions

File tree

scripts/delete_old_layer_versions.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ for arch in "${ARCHITECTURES[@]}"; do
3939

4040
for region in "${AWS_REGIONS[@]}"; do
4141
echo "Layer Arn: arn:aws:lambda:${region}:<accountId>:layer:${layer_name}:${layer_version} deleted from Region ${region}"
42-
aws lambda delete-layer-version --layer-name ${layer_name} --version-number ${layer_version} --region ${region}
42+
aws lambda delete-layer-version --layer-name ${layer_name} --version-number ${layer_version} --region ${region} --profile ${AWS_PROFILE}
4343
done
44-
done
44+
done
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
AWS_REGIONS=(
2+
eusc-de-east-1
3+
)
4+
5+
# Set AWS_PROFILE_EUSC for European Sovereign Cloud regions (can be overridden via environment)
6+
if [[ -z "${AWS_PROFILE_EUSC}" ]]; then
7+
export AWS_PROFILE_EUSC="esc_personal"
8+
fi
9+
10+
echo "Using AWS_PROFILE_EUSC: ${AWS_PROFILE_EUSC}"
11+
12+
binary_name="sumologic-extension"
13+
14+
ARCHITECTURES=(
15+
amd64
16+
arm64
17+
)
18+
layer_version=1
19+
for arch in "${ARCHITECTURES[@]}"; do
20+
21+
layer_name="${binary_name}-${arch}"
22+
23+
for region in "${AWS_REGIONS[@]}"; do
24+
25+
echo "Deleting from region ${region} using profile ${AWS_PROFILE_EUSC}"
26+
27+
# Dynamically get the partition for the region from AWS
28+
caller_arn=$(aws sts get-caller-identity --region ${region} --profile ${AWS_PROFILE_EUSC} --query 'Arn' --output text)
29+
partition=$(echo ${caller_arn} | cut -d':' -f2)
30+
31+
echo "Layer Arn: arn:${partition}:lambda:${region}:<accountId>:layer:${layer_name}:${layer_version} deleted from Region ${region}"
32+
aws lambda delete-layer-version --layer-name ${layer_name} --version-number ${layer_version} --region ${region} --profile ${AWS_PROFILE_EUSC}
33+
done
34+
done

scripts/zip.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,4 @@ for arch in "${ARCHITECTURES[@]}"; do
9595
# aws lambda add-layer-version-permission --layer-name ${layer_name} --statement-id ${layer_name}-dev --version-number ${layer_version} --principal '956882708938' --action lambda:GetLayerVersion --region ${region}
9696
done
9797

98-
done
98+
done

scripts/zip_special_partitions.sh

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
#!/bin/bash -x
2+
# Assuming the zip.sh script is run from inside the scripts folder
3+
4+
# clean up of old target directories
5+
cd ..
6+
TARGET_DIR=target
7+
if [ -d "$TARGET_DIR" ]; then
8+
echo "removing old ${TARGET_DIR}"
9+
rm -r ${TARGET_DIR};
10+
fi
11+
12+
# Add GO packages to GOPATH. Not needed if you are using Go modules
13+
# export GOPATH=${HOME}/GO:${PATH}:$(pwd)
14+
15+
echo "Creating an binary executable using the go build command for Linux Systems."
16+
binary_name="sumologic-extension"
17+
18+
19+
ARCHITECTURES=(
20+
amd64
21+
arm64
22+
)
23+
24+
for arch in "${ARCHITECTURES[@]}"; do
25+
26+
echo "Creating an binary executable for $arch"
27+
extension_bin_dir="${TARGET_DIR}/${arch}/extensions"
28+
extension_zip_dir="${TARGET_DIR}/${arch}/zip"
29+
mkdir -p "${extension_bin_dir}"
30+
mkdir -p "${extension_zip_dir}"
31+
32+
env GOOS="linux" GOARCH="$arch" go build -o "${extension_bin_dir}/${binary_name}" "lambda-extensions/${binary_name}.go"
33+
34+
status=$?
35+
if [ $status -ne 0 ]; then
36+
echo "Binary Generation Failed"
37+
exit 1
38+
fi
39+
chmod +x "${extension_bin_dir}/${binary_name}"
40+
41+
echo "Creating the Zip file binary in extension folder."
42+
cd "${TARGET_DIR}/${arch}"
43+
zip -r "zip/${binary_name}.zip" "extensions/${binary_name}"
44+
tar -czvf "zip/${binary_name}-${arch}.tar.gz" -C extensions "${binary_name}"
45+
status=$?
46+
if [ $status -ne 0 ]; then
47+
echo "Zip Generation Failed"
48+
exit 1
49+
fi
50+
cd -
51+
52+
echo "Create lambda Layer from the new ZIP file in the provided AWS_PROFILE aws account."
53+
# Set AWS_PROFILE_EUSC for European Sovereign Cloud regions (can be overridden via environment)
54+
if [[ -z "${AWS_PROFILE_EUSC}" ]]; then
55+
export AWS_PROFILE_EUSC="esc_personal"
56+
fi
57+
58+
AWS_REGIONS=(
59+
eusc-de-east-1
60+
)
61+
62+
63+
echo "Using AWS_PROFILE_EUSC: ${AWS_PROFILE_EUSC}"
64+
65+
# We have layer name as sumologic-extension. Please change name for local testing.
66+
layer_name="${binary_name}-${arch}"
67+
68+
for region in "${AWS_REGIONS[@]}"; do
69+
70+
echo "Deploying to region ${region} using profile ${AWS_PROFILE_EUSC}"
71+
72+
layer_version=$(aws lambda publish-layer-version --layer-name ${layer_name} \
73+
--description "The SumoLogic Extension collects lambda logs and send it to Sumo Logic." \
74+
--license-info "Apache-2.0" --zip-file fileb://$(pwd)/${extension_zip_dir}/${binary_name}.zip \
75+
--profile ${AWS_PROFILE_EUSC} --region ${region} --output text --query Version )
76+
77+
# Dynamically get the partition for the region from AWS
78+
caller_arn=$(aws sts get-caller-identity --region ${region} --profile ${AWS_PROFILE_EUSC} --query 'Arn' --output text)
79+
partition=$(echo ${caller_arn} | cut -d':' -f2)
80+
81+
echo "Layer Arn: arn:${partition}:lambda:${region}:<accountId>:layer:${layer_name}:${layer_version} deployed to Region ${region}"
82+
83+
echo "Setting public permissions for layer version: ${layer_version}"
84+
aws lambda add-layer-version-permission --layer-name ${layer_name} --statement-id ${layer_name}-prod --version-number $layer_version --principal '*' --action lambda:GetLayerVersion --region ${region} --profile ${AWS_PROFILE_EUSC}
85+
# aws lambda add-layer-version-permission --layer-name ${layer_name} --statement-id ${layer_name}-dev --version-number ${layer_version} --principal '956882708938' --action lambda:GetLayerVersion --region ${region}
86+
done
87+
88+
done

0 commit comments

Comments
 (0)