问题标签 [ecs-taskdefinition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
37 浏览

amazon-web-services - 是否可以将 xpath 或数组与 AWS ECS 环境变量一起使用?

使用 .NET Core 3.1 并导入 nuget 包https://github.com/huorswords/Microsoft.Extensions.Logging.Log4Net.AspNetCore产生了一个非常规定的 appSettings.json。例如

在 AWS ECS 容器中,我们在需要时覆盖 appsettings,但这是通过与 json 中的路径对应的名称完成的:

如您所见,现在的难点在于获取 Log4NetCore 设置的正确路径:

有没有办法使用 name + valueFrom 中的数组甚至使用 xpath 来处理这个问题?

0 投票
0 回答
187 浏览

amazon-web-services - 在任务定义中使用 aws ssm 参数进行私有存储库身份验证的问题

所以我使用 ghcr 作为我的容器注册表并在那里有一些图像。尝试使用 aws ecs 和任务定义通过 terraform 部署这些图像。在任务定义中,我指定了图像 url 和存储库凭据。要访问我的图像,我需要提供我的 ghcr 用户名和令牌。我已将我的 ghcr 用户名和令牌作为 json 对象存储在 aws secret manager 和 aws ssm paraters 中。

如果我使用 aws 密钥管理器密钥 arn 作为凭据参数,它可以工作。如果我在那里使用 aws ssm 参数 arn,则会出错。如何在 credentialsParameter 中使用 ssm 参数,其文本如上 json 对象?无论如何或解决方法可以做到这一点?或者我应该只使用秘密管理器密钥 arn。

0 投票
0 回答
162 浏览

amazon-web-services - 如何通过 AWS CLI 命令在 AWS ECS 中创建取消注册/非活动任务定义的修订?

我需要通过创建非活动任务定义的修订版来恢复 ECS 中取消注册/非活动的任务定义。我可以通过 AWS ECS 控制台手动执行此操作。这如何通过使用 AWS CLI 命令行来完成?

0 投票
1 回答
748 浏览

amazon-web-services - 无法在 ECS Fargate 中使用 ephemeralStorage 参数注册任务定义

我想在 Fargate 上使用大于默认 21GB 的存储空间在 ECS 中旋转任务。首先,我从门户创建了一个任务定义,没有ephemeralStorage

验证任务运行后,我尝试从 cli 注册一个新版本,并添加ephemeralStorage来自https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html的参数

我的任务定义如下所示

运行 aws cli

如果我通过该Configure via JSON选项从门户尝试,我会遇到同样的 问题

语法错了吗?该参数不允许操作吗?

0 投票
2 回答
191 浏览

amazon-web-services - 将文件功能与 Terraform 工作区一起使用

我有一个正在 Terraform 中创建的资源。在资源中有一个使用 JSON 文件读取值的属性。我正在从一个单独的 JSON 文件中读取这些值,并希望与我的 Terraform 工作区一起声明该属性。以下是我的资源和错误消息。如果可以在文件功能中集成 terraform 工作空间,那么任何有关如何实现这一点的见解都会有所帮助。

地形资源

地形错误

我希望以这种方式处理它,因为我设置了多个 Terraform 工作区,并且希望尽可能保持我的 TF 脚本相同。

容器定义

0 投票
1 回答
359 浏览

docker - 启动容器进程导致: exec: "[\"/bin/sh -c\"": stat ["/bin/sh -c": no such file or directory

我正在通过 Docker 和 ECS Fargate 构建和部署应用程序。我在 ECS 任务定义中定义了我的入口点命令。将映像推送到私有 ECR 存储库后,当 ECS Fargate 尝试部署 docker 映像时出现此错误。任何意见将是有益的。下面是 dockerfile、任务定义和错误。

Dockerfile

任务定义

错误

我尝试使用以下命令在本地运行容器:`docker run -it $docker_image /bin/sh

我什至无法执行到容器中。我相信我可能需要在图像中额外安装才能使其正常工作。任何意见将是有益的。

更新 我已经更新了 dockerfile 以使用以下命令更新 init 脚本的权限:chmod +x /tmp/init.sh

我还将任务定义入口点属性更新为["/bin/sh", "-c", "/tmp/init.sh"]

进行这些更改后,我现在看到以下内容:

0 投票
1 回答
155 浏览

docker - ECS Fargate 中的 Docker 容器在运行脚本时以代码 0 退出。无法运行容器以访问 /bin/sh

我有一个使用 AWS ECR 中托管的映像的 ECS 集群。dockerfile 正在其入口点属性中执行脚本。我的集群能够启动实例,但随后进入停止状态。它给我的唯一错误如下:

给我的唯一信息是容器停止的原因:

有关如何解决此问题的任何建议都会有所帮助。

我尝试使用以下命令在本地运行容器:docker run -it application /bin/sh

由于某种原因运行容器,我无法使用 /bin/sh。

任何意见,将不胜感激。

0 投票
1 回答
64 浏览

amazon-web-services - 如何修复 ECS 上的此错误消息“已停止(VolumeError:代理无法创建任务的卷资源)”

我正在尝试通过启动新任务来更新我的 ECS 集群,但我一直收到此消息

已停止(VolumeError:代理无法创建任务的卷资源)。

有人知道这是什么意思吗?或者我该如何调试?

0 投票
0 回答
44 浏览

logging - ECS Fargate - 与日志驱动程序的容器任务通信

我有个问题。我将 AWS ECS Fargate 容器与 awsfirelense 日志驱动程序一起使用。按照这个例子:https ://github.com/aws-samples/amazon-ecs-firelens-examples/blob/mainline/examples/fluent-bit/s3/task-definition.json

这是我的用例,我有大约 150 个实例从不同来源收集事件。我每个实例每秒大约有 500-1000 个事件。我希望每个实例都使用 firelens/fluentbit 将此事件记录到 S3。

  1. 在延迟方面,我希望 firelens 容器以最有效的方式从应用程序接收日志。
  2. 我还想知道在将日志转发到其他来源(例如 s3)时应该考虑什么。我应该选择哪种网络模式,为什么?
  3. 应用程序容器如何将日志发送到 Firelens 容器?它是api请求打开套接字,它使用的是哪个协议?

感谢所有的帮助

0 投票
1 回答
188 浏览

amazon-ecs - 不同ecs任务之间的依赖关系

我使用 Spring Cloud 开发了一个使用多个微服务的后端服务器。我有发现服务、配置服务和其他不同的服务。现在出于测试目的,我使用 docker-compose 以正确的顺序运行它们。现在我决定在 AWS 上部署我的应用程序。

我想过使用使用 Fargare 的 ECS 运行它们,但我无法理解如何定义我的任务之间的依赖关系。

我发现这篇文章https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_dependson 它定义了同一任务中容器之间的依赖关系。

但是我不认为我可以只用一项任务来运行我的所有服务,因为分配 vCPU 会很复杂,即使我使用 4vCPU 和巨大的内存,我也不确定我的容器运行得有多好。之后缩放它们将是另一个问题。总体而言,拥有如此巨大的 vCPU 和内存也会产生大量成本。

有没有办法定义 ECS 任务之间的依赖关系?