Skip to content

Instantly share code, notes, and snippets.

@joachifm
Created August 31, 2023 17:52
Show Gist options
  • Save joachifm/b94943e4225931f6780745b630f9a6f4 to your computer and use it in GitHub Desktop.
Save joachifm/b94943e4225931f6780745b630f9a6f4 to your computer and use it in GitHub Desktop.
Export ssm path to shell variables
#! /usr/bin/env bash
awslocal() {
env \
AWS_ACCESS_KEY_ID=test \
AWS_SECRET_ACCESS_KEY=test \
aws --region=us-east-1 --endpoint-url=http://127.0.0.1:4566 ${*}
}
set -u
PROJECT_NAME=foo
APPLICATION_NAME=foo-bar
STAGE=prod
SSM_PATH_PREFIXES="\
/$PROJECT_NAME/$STAGE/global \
/$PROJECT_NAME/$STAGE/apps/$APPLICATION_NAME \
"
awslocal ssm put-parameter \
--name "/$PROJECT_NAME/$STAGE/global/DATABASE_URL" \
--value "jdbc://postgresql:127.0.0.1:5432" \
--type "String"
awslocal ssm put-parameter \
--name "/$PROJECT_NAME/$STAGE/apps/$APPLICATION_NAME/FTP_PASSWORD" \
--value "ftp" \
--type "String"
for path in $SSM_PATH_PREFIXES ; do
awslocal ssm \
get-parameters-by-path \
--path "$path" \
--recursive \
--output text \
--query 'Parameters[].[Name,Value]' | while read -r param_name param_value ; do
variable_name=${param_name##*/}
echo "exporting $param_name => $variable_name" >&2
eval "export $variable_name='$param_value'"
done
done
exec env
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment