aws ssm parameterをドット区切りからスラッシュ区切りへ
code:shell
#!/bin/bash
readonly PROFILE=aaa
readonly KEY=〇〇.staging
aws --profile ${PROFILE} ssm describe-parameters --filters "Key=Name,Values=${KEY}" | jq -rc '.Parameters[] | .Name, .KeyId | @tsv'
list.tsvに格納
code:shell
#!/bin/bash
readonly PROFILE=hoge
while IFS=$'\t' read -r original_name keyid; do
renamed=$(echo ".$original_name" | tr '.' '/')
if "$keyid" = "" ; then
echo "------------ ${original_name} → ${renamed}, String"
echo "v=\$(aws --profile ${PROFILE} ssm get-parameter --name \"${original_name}\" --query 'Parameter.Value' --output text)"
echo "aws --profile ${PROFILE} ssm put-parameter --name \"${renamed}\" --value \"\${v}\" --type 'String' --overwrite"
echo "v2=\$(aws --profile ${PROFILE} ssm get-parameter --name \"${renamed}\" --query 'Parameter.Value' --output text)"
echo " \"\$v\" = \"\$v2\" && echo 'OK' || echo '不一致'"
else
echo "------------ ${original_name} → ${renamed}, SecureString"
echo "v=\$(aws --profile ${PROFILE} ssm get-parameter --name \"${original_name}\" --query 'Parameter.Value' --output text --with-decryption)"
echo "aws --profile ${PROFILE} ssm put-parameter --name \"${renamed}\" --value \"\${v}\" --type 'SecureString' --key-id '${keyid}' --overwrite"
echo "v2=\$(aws --profile ${PROFILE} ssm get-parameter --name \"${renamed}\" --query 'Parameter.Value' --output text --with-decryption)"
echo " \"\$v\" = \"\$v2\" && echo 'OK' || echo '不一致'"
fi
echo ''
done < <(cat list.tsv)