Sup*_*ini 1 amazon-web-services amazon-ecs aws-cloudformation
我正在尝试自动化 Fargate 实例的 Cloudformation 部署。如果我硬处理环境变量条目,我会成功部署 cloudformation,但是如果我尝试添加为参数,输入字符串,它会抱怨它不是字符串。
这是参数
"EnvVariables": { "Description": "Docker 运行的所有环境变量", "Type": "String" },
在我的任务定义中,我对容器定义进行了以下设置
"Environment": [
{
"Name": "JAVA_OPTS",
"Value": "-Djdbc.url=jdbc:dbdriver://xxxx.eu-west-1.rds.amazonaws.com:xxxx/xxxxxxxxx -Djdbc.user=xxxxx -Djdbc.password=xxxxx"
}
]
Run Code Online (Sandbox Code Playgroud)
如果我通过 gui 在参数字段中输入以下内容
"-Djdbc.url=jdbc:dbdriver://xxxx.eu-west-1.rds.amazonaws.com:xxxx/xxxxxxxxx -Djdbc.user=xxxxx -Djdbc.password=xxxxx"
Run Code Online (Sandbox Code Playgroud)
它抱怨它不是一个字符串。
我如何编辑它以作为参数接受?
使用任务定义(门户或 JSON),您可以定义 "secrets"在"containerDefinitions"将从机密管理器中检索的部分内。
注意:在撰写本文时,Fargate 仅支持单个值的机密,不支持 JSON 或键值机密。所以在创建秘密时选择 OTHER 并在那里放置一个文本值。
{
"ipcMode": null,
"executionRoleArn": "arn:aws:iam::##:role/roleName",
"containerDefinitions": [
{
...
"secrets": [{
"name": "SomeEnvVariable",
"valueFrom": "arn:aws:secretsmanager:region:###:secret:service/secretname"
}],
...
}
],
"requiresCompatibilities": [
"FARGATE"
],
"networkMode": "awsvpc",
...
}
Run Code Online (Sandbox Code Playgroud)
注意:任务中定义的执行角色需要附加策略,例如 SecretsManagerReadWrite
| 归档时间: |
|
| 查看次数: |
3283 次 |
| 最近记录: |