我将所有秘密数据保存到 AWS Parameter Store 中,我的应用程序使用 docker-compose 运行,我尝试在aws ssm get-parameters
内部进行评估docker-compose.yaml
:
version: "3.7"
services:
db:
image: postgres
restart: always
volumes:
- /home/ec2-user/dbdata:/var/lib/postgresql/data
environment:
POSTGRES_USER: $$(aws ssm get-parameters --name DB_USERNAME --region eu-north-1 --output text --query Parameters[].Value)
POSTGRES_PASSWORD: $$(aws ssm get-parameters --name DB_PASSWORD --region eu-north-1 --output text --with-decryption --query Parameters[].Value)
POSTGRES_DB: $$(aws ssm get-parameters --name DB_NAME --region eu-north-1 --output text --query Parameters[].Value)
ports:
- 5432:5432
auth:
build: .
restart: always
environment:
DB_ENDPOINT: $$(aws ssm get-parameters --name DB_ENDPOINT --region eu-north-1 --output text --query Parameters[].Value)
DB_USERNAME: $$(aws ssm get-parameters --name DB_USERNAME --region eu-north-1 --output text --query Parameters[].Value)
DB_PASSWORD: $$(aws ssm get-parameters --name DB_PASSWORD --region eu-north-1 --output text --with-decryption --query Parameters[].Value)
JWT_KEY: $$(aws ssm get-parameters --name JWT_KEY --region eu-north-1 --output text --query Parameters[].Value)
JWT_EXPIRED: $$(aws ssm get-parameters --name JWT_EXPIRED --region eu-north-1 --output text --query Parameters[].Value)
depends_on:
- db
links:
- db
ports:
- 80:80
但是施工$$(<command>)
不行。
我得到的不是来自参数存储的预期值
$(get-parameters --name DB_ENDPOINT --region eu-north-1 --output text --query Parameters[].Value)
我知道如何通过准备一个export MY_VAR="$(get-parameters ...)"
可以理解的脚本来做到这一点。
但问题是docker-compose.yaml
如果可以,我可以获取 Parameter Store 值吗?