amazon-web-services - aws fargate 为环境变量添加参数
问题描述
我正在尝试自动化我们的 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"
}
]
如果我通过 gui 在参数字段中输入以下内容
"-Djdbc.url=jdbc:dbdriver://xxxx.eu-west-1.rds.amazonaws.com:xxxx/xxxxxxxxx -Djdbc.user=xxxxx -Djdbc.password=xxxxx"
它抱怨它不是一个字符串。
我如何编辑它以被接受为参数?
解决方案
使用任务定义(门户或 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",
...
}
注意:任务中定义的执行角色需要附加策略,例如SecretsManagerReadWrite
推荐阅读
- arrays - Bigquery - 重复记录中的重复字段
- ionic-framework - Ionic 5 Web App Chrome CSS 问题(添加了 sc-ion 类)
- javascript - Websockets 使用带有 Javascript 的 python 发送和接收
- python - Python Microsoft 打印到 PDF
- excel - VBA 在最后填充行的工作簿之间粘贴单元格数组(粘贴不起作用?)
- javascript - 如何从输入标签中删除自动建议
- sql - 识别历史表中的值变化
- flutter - 在android studio中运行模拟器时如何修复“无法启动avd”的错误
- php - 在 Laravel 8 中,如何将数据插入到 config/database.php 中配置的数据库中?
- javascript - 如何在vue js表单的v-model属性中获取json过滤后的数据?更新