您可以使用 Docker 模型将机密传递给您的 ECS 服务,以将敏感数据绑定为/Run/secrets. 如果您的 Compose 文件将机密声明为文件,则将在 ECS 上的应用程序部署过程中创建此类机密。如果您在 Compose 文件中使用现有机密作为参考,请使用 ECS Secrets Manager 完整 ARN 作为机密名称:
services:
webapp:
image: …
secrets:
– foo
secrets:
foo:
name: “arn:aws:secretsmanager:eu-west-3:1234:secret:foo-ABC123”
external: true
秘密将在运行时作为纯文本文件提供给您的服务/Run/secrets/foo。
AWS Secrets Manager 允许您将敏感数据存储为纯文本(如 Docker 密钥)或分层 JSON 文档。您可以将后者与 Docker Compose CLI 结合使用,方法是使用自定义字段x-aws-keys来定义 JSON 文档中的哪些条目要绑定为服务容器中的机密。
services:
webapp:
image: …
secrets:
– foo
secrets:
foo:
name: “arn:aws:secretsmanager:eu-west-3:1234:secret:foo-ABC123”
keys:
– “bar”
通过这样做,bar密钥的秘密将在运行时作为纯文本文件提供给您的服务/Run/secrets/foo/bar。您可以使用特殊值*来获取容器中绑定的所有键。
自动缩放
可以使用正常的 Compose 语法指定缩放服务静态信息(非自动缩放):
services:
foo:
deploy:
Replicas: 3
Compose 文件模型没有定义任何属性来声明自动缩放条件。因此,我们依靠x-aws-autoscaling自定义扩展来定义自动缩放范围,以及使用 CPU 或内存来定义目标指标,表示为资源使用百分比。
services:
foo:
deploy:
x-aws-autoscaling:
Min: 1
Max: 10 #Required
CPU: 75
# Mem: – Mutualy exclusive with CPU