首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行附加的AWS ECS任务(未分离)

运行附加的AWS ECS任务(未分离)
EN

Stack Overflow用户
提问于 2021-02-13 01:09:18
回答 1查看 222关注 0票数 2

是否有简单的方法可以运行附加的ECS任务,或者只在容器运行时跟踪日志(即。在显示所有相关的日志后分离)?

使用AWS CLI (1.17.0)和ecs (1.21.0),我已经很好地使用了以下两个命令:

代码语言:javascript
复制
aws ecs run-task --cluster "mycluster" --task-definition testhelloworldjob --launch-type FARGATE --network-configuration etc.etc.etc.
        
ecs-cli logs --task-id {TASK_ID_HERE_FROM_OUTPUT_OF_PREVIOUS_COMMAND} --follow 

我目前对上述方法有两个问题:

  1. 有一个竞争条件,即当任务处于"正在运行“前状态时,日志不可用。而不是ecs-cli logs等待日志存在,而是立即抛出一个错误。
  2. 即使在等待任务处于运行状态并发出ecs-cli logs之后,即使任务完成并处于Post运行状态,该命令也拒绝分离。

对于第一个问题,我可以在调用日志之前投票,直到出现post激活/挂起状态为止。对于第二个问题,我可以起草某种类型的线程调用,在所讨论的容器不再运行后轮询以停止日志的以下内容.但一定有更简单的方法吗?

为了澄清,我来自许多其他容器编排工具/技术,这些工具/技术似乎无缝地支持了这一点。下面是一些工具及其相关命令的示例,这些命令将给出我的预期结果:

码头CLI:

代码语言:javascript
复制
docker run hello-world

船坞-合成Yaml

代码语言:javascript
复制
docker-compose up

K8 Kubectl Yaml

代码语言:javascript
复制
kubectl apply -f ./hello-k8.yaml && kubectl logs --follow hello-world
EN

回答 1

Stack Overflow用户

发布于 2022-02-04 12:34:42

我认为ecs-cli 是目前可用的最佳选择。

除此之外,您还可以将AWS任务的日志驱动程序更改为syslog,然后在对运行它的EC2容器实例执行SSH之后,从终端查看日志文件。

您可以做的另一件事是将SSH放入之前运行的EC2容器实例中,然后使用docker run在其中自己运行该AWS任务的容器,一旦测试完成,您可以停止并移除该容器,然后通过AWS启动该任务。

注意:您可以使用AWS会话管理器,以避免使用EC2密钥对并为SSH添加入站规则。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66181013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档