Есть ли способ прочитать безопасные переменные хранилища параметров в разделах среды ECS JSON на основе FARGATE?
Я настраиваю ECS Services для запуска моего приложения, которое обращается к серверу RDS Database. Мне нужно передать свойства доступа к базе данных, такие как имя пользователя, пароль, имя базы данных и т. Д., К кодам приложения, запущенным в экземплярах FARGATE. Поэтому, чтобы передать их, я создал эти параметры в хранилище параметров, но мне нужно найти способ получить их из хранилища параметров и передать их в свойства задачи env?
В определениях Задачи ECS я попытался изменить свойство среды файла JSON с помощью таких параметров, как "name:" и "valueFrom", но кажется, что "valueFrom:" не принимается в файле JSON, он выскакивает ошибка "Не удается прочитать свойство" заменить "неопределенного"
"environment": [
{
"name": "POSTGRES_DB",
"valueFrom": "PROD_POSTGRES_DB"
}
],
Я ожидаю, что параметр POSTGRES_DB считывает значения из PROD_POSTGRES_DB, определенные в хранилище параметров AWS
1 ответ
При использовании хранилища параметров SSM в определении задач ECS для valueFrom
переменные среды, он создает отдельные secrets
раздел под контейнером Определения. Итак, это будет выглядеть ниже.
"containerDefinitions": [
{
"secrets": [
{
"name": "POSTGRES_DB",
"valueFrom": "PROD_POSTGRES_DB"
}
],
"environment": [
{
"valueFrom": "myKey",
"name": "myValue"
}
],
}
]
Для нормального value
переменные среды, это будет обычно environment
массив JSON.
Заметка -
- При использовании хранилища параметров SSM необходимо убедиться, что у роли выполнения задач есть необходимые разрешения SSM, связанные с ролью. Ссылка - https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html
- Кроме того, попробуйте предоставить полный параметр ARN SSM, если ваш регион ECS отличается от региона SSM.