如何在同一任务的多个正在运行的副本中仅查找我的AWS ECS任务?

问题描述 投票:0回答:1

我正在 docker 镜像中运行 bash 脚本。脚本使用 AWS S3 命令从 S3 存储桶复制文件并将其传递到 SQL Loader 以将数据加载到 Oracle 数据库。完成后,如果加载成功,S3 上的文件将被删除,如果加载失败,则移动到 S3/bad 目录。 AWS 触发器在文件到达 S3 存储桶时触发 ECS 集群任务。任务启动一个 docker 容器。如果多个文件同时到达,则会触发多个并行任务。

是否可以在 bash 脚本中使用 AWS CLI 命令或任何其他机制从父任务中获取唯一的内容?任务 ARN 或这组任务中唯一的其他内容,并且仅与 Docker 容器的此副本相关?

我需要它能够标记处理文件,这样就不会执行其他任务。

amazon-web-services containers command-line-interface task amazon-ecs
1个回答
0
投票

您可以通过 ECS 元数据 API 从 ECS 中运行的容器内获取任务 ARN。 API 略有不同,具体取决于您的任务是在 EC2 实例 还是 Fargate 上运行,但无论哪种情况,您都会点击

${ECS_CONTAINER_METADATA_URI_V4}/task
元数据 API 端点,并从返回的 JSON 响应中解析出任务 ARN .

© www.soinside.com 2019 - 2024. All rights reserved.