Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nanofaroque/d977867998dde33a36922e44b788d36d to your computer and use it in GitHub Desktop.
Save nanofaroque/d977867998dde33a36922e44b788d36d to your computer and use it in GitHub Desktop.
Helpful SSM Parameter Store scripts
#!/bin/bash
# To use just set a variable with SSM_<target_env_var>=<ssm_parameter_store_path>
# e.g. SSM_database_password=prod/myservice/database-password
function get_parameter {
SSM_ENV_VAR_NAME=$1
ENV_VAR_NAME=`echo "$SSM_ENV_VAR_NAME" | cut -c5-`
SSM_PARAM_NAME="${!SSM_ENV_VAR_NAME}"
echo "Getting parameter $SSM_PARAM_NAME from SSM parameter store if it exists and setting into the variable $ENV_VAR_NAME"
SSM_VALUE=`aws ssm get-parameters --with-decryption --names "${SSM_PARAM_NAME}" --query 'Parameters[*].Value' --output text`
#echo "SSM_VALUE = $SSM_VALUE"
COMMAND="export $ENV_VAR_NAME=$SSM_VALUE"
#echo $COMMAND
eval ${COMMAND}
#echo "$ENV_VAR_NAME = ${!ENV_VAR_NAME}"
}
while read name ; do
get_parameter $name
done <<EOT
$(printenv | grep -o '^SSM_[^=]*')
EOT
exec "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment