Makefile から パラメータストア(SSM) を呼んで docker-compose に渡す

Makefile 内で環境変数を docker-compose に渡そうとしてもうまく環境変数が展開されなかった。

Makefile の冒頭で SSM を呼び出す定義を書き、

make run

実行すると同時に呼び出し処理を呼ばせるような作りをすることによって実現できた。


set-env := export AWSSSMPARAM1=$(shell aws ssm get-parameters --names "AWSSSMPARAM1" --with-decryption --region ap-northeast-1 --query "Parameters[].Value" --output text) ;\
	export AWSSSMPARAM2=$(shell aws ssm get-parameters --names "AWSSSMPARAM2" --with-decryption --region ap-northeast-1 --query "Parameters[].Value" --output text)

run:
	$(set-env) && docker-compose up -d 

セキュアな情報をローカルで持ちたくない場合はあると思うし、使える場面ば多そうだ。