#amazon-web-services #amazon-ecs
#amazon-веб-сервисы #amazon-ecs
Вопрос:
Я использую github actions для развертывания определения задачи ecs в моем кластере. Я столкнулся с этой странной проблемой, когда секреты в определении задачи удаляются. Я не уверен, что происходит, или проблема на стороне ecs или github, но я предполагаю, что это на стороне ECS, поскольку, когда я создаю новое определение задачи или ревизию вручную через панель мониторинга и используя опцию JSON, я включаю секреты в определение задачи, и они удаляются. Затем я должен зайти в контейнер через пользовательский интерфейс и вручную добавить все секреты, что, похоже, работает.
При создании определения задачи с помощью опции JSON в пользовательском интерфейсе предусмотрена ли функция удаления секретов из определения? Если да, есть ли какой-либо способ остановить это? Ниже приведен пример определения моей задачи, в котором я использую param store:
{
"ipcMode": null,
"executionRoleArn": "myrole",
"containerDefinitions": [
{
"dnsSearchDomains": null,
"logConfiguration": {
"logDriver": "awslogs",
"secretOptions": null,
"options": {
"awslogs-group": "mylogGroup",
"awslogs-region": "us-east-1",
"awslogs-stream-prefix": "ecs"
}
},
"entryPoint": null,
"portMappings": [
{
"hostPort": 80,
"protocol": "tcp",
"containerPort": 80
},
{
"hostPort": 443,
"protocol": "tcp",
"containerPort": 443
}
],
"secrets": [
{
"name": "myParamName",
"valueFrom": "arn:aws:ssm:us-east-1:<myId>:parameter/pathToMyParam"
},
{
"name": "myOtherParamName",
"valueFrom": "arn:aws:ssm:us-east-1:<myId>:parameter/pathToMyOtherParam"
}
],
"command": null,
"linuxParameters": null,
"cpu": 0,
"resourceRequirements": null,
"ulimits": null,
"dnsServers": null,
"mountPoints": [],
"workingDirectory": null,
"secrets": null,
"dockerSecurityOptions": null,
"memory": null,
"memoryReservation": null,
"volumesFrom": [],
"stopTimeout": null,
"image": "<myImagePath>",
"startTimeout": null,
"firelensConfiguration": null,
"dependsOn": null,
"disableNetworking": null,
"interactive": null,
"healthCheck": null,
"essential": true,
"links": null,
"hostname": null,
"extraHosts": null,
"pseudoTerminal": null,
"user": null,
"readonlyRootFilesystem": null,
"dockerLabels": null,
"systemControls": null,
"privileged": null,
"name": "myContainer"
}
],
"placementConstraints": [],
"memory": "1024",
"taskRoleArn": "<myRolePath>",
"family": "myTask",
"pidMode": null,
"requiresCompatibilities": ["FARGATE"],
"networkMode": "awsvpc",
"cpu": "512",
"inferenceAccelerators": null,
"proxyConfiguration": null,
"volumes": []
}
Комментарии:
1. Что вы подразумеваете под «удаленными»? Вы не можете видеть секреты внутри контейнера как переменные среды?
2. ДА. Если я не добавлю их вручную (имеется в виду переход через панель мониторинга -> Определения задач -> создать новую редакцию -> щелкнуть имя моего контейнера в разделе Определения контейнеров -> вручную ввести мои переменные env), они не появятся.
3. Вы когда-нибудь выясняли, почему это происходит? Я сталкиваюсь с той же проблемой…