4

我将所有秘密数据保存到 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_EN​​DPOINT --region eu-north-1 --output text --query Parameters[].Value)

我知道如何通过准备一个export MY_VAR="$(get-parameters ...)"可以理解的脚本来做到这一点。

但问题是docker-compose.yaml如果可以,我可以获取 Parameter Store 值吗?

4

0 回答 0