在我的 CI 上,我已经通过 bash 脚本在 AWS ECS 环境中配置了部署
**deploy.sh**
[...]
aws ecs register-task-definition --cli-input-json file://./deploy/skeleton.json
TASK_DEFINITION_ARN=$(aws ecs --output text list-task-definitions --family-prefix "${PROJECT_NAME}" --sort DESC --query "taskDefinitionArns[0]")
aws ecs update-service \
--cluster "${PROJECT_NAME}" \
--service "${PROJECT_NAME}" \
--task-definition "${TASK_DEFINITION_ARN}" \
--force-new-deployment \
--deployment-configuration "maximumPercent=200,minimumHealthyPercent=100" \
--desired-count ${DESIRED_COUNT}
[...]
Run Code Online (Sandbox Code Playgroud)
和
**skeleton.json**
{
"family": "backend",
"executionRoleArn": "arn:aws:iam::000000000000:role/XXXX",
"taskRoleArn": "arn:aws:iam::0000000:role/XXXX",
"networkMode": "awsvpc",
"containerDefinitions":
[{
"name": "csharp",
"essential": true,
"environment":[{
"name" : "CONNECTIONSTRINGS__Redis",
"value" : "XXXX"
},
{
"name" : "CONNECTIONSTRINGS__Database",
"value" : "XXX"
}, …Run Code Online (Sandbox Code Playgroud) 我的个人项目需要在 ecs(使用 fargate)上运行一次性任务,例如迁移、应用命令等。
构建和部署管道在 gitlab 上(没有作业运行程序)。
在 ecs fargate 上执行命令后,是否有可能运行容器并死亡?