问题标签 [aws-batch]

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 投票
1 回答
2743 浏览

amazon-web-services - AWS Step 无法正确调用具有复杂参数的 AWS Batch 作业

我有一个现有的 AWS Steps 编排,它通过 lambda 执行 AWS Batch 作业。然而,AWS 最近增加了从一个步骤直接调用其他服务(如 AWS Batch)的能力。我很想使用这个新功能,但无法让它发挥作用。

https://docs.aws.amazon.com/step-functions/latest/dg/connectors-batch.html

所以我想用来调用批处理的新步骤操作。

请注意,我正在尝试使用 $. JSONpath 语法,以便动态地通过步骤传递参数。

当给出以下输入时

我预计环境和命令值将传递给 AWS Batch 中的相应参数 (ContainerOverrides)。相反,AWS Steps 似乎正试图将它们提升为顶级参数 - 然后抱怨它们无效。

如何阻止 AWS Steps 尝试解释我尝试传递给 AWS Batch 的值?


我已经尝试将 JSON 路径排除在外,只静态指定 ContainerProperties(即使这长期不会成为解决方案)。但即便如此,我也会遇到问题。

在这种情况下,步骤本身在加载时拒绝定义文件。

所以看起来 ContainerOverrides 是有问题的句号?我是否误解了它在这种情况下的用途?


上述问题已在 AWS Batch 文档中解决(根据以下答案) - AWS 添加了以下注释:

笔记

Step Functions 中的参数以 CamelCase 表示,即使本机服务 API 是 pascalCase。

0 投票
3 回答
1827 浏览

amazon-web-services - 在提交 AWS 批处理作业时获取最新的作业修订,而无需指定确切的修订号

我正在使用 AWSBatch Java 客户端com.amazonaws.services.batch (AWS SDK for Java - 1.11.483)以编程方式提交作业。

然而,我们的科学家不断更新工作定义。每次有新的作业定义时,我都必须使用修订号更新环境变量以将其传递给客户端。 AWS 文档指出

此值可以是 name:revision 或作业定义的 Amazon 资源名称 (ARN)。

有什么方法可以将其默认为最新版本,并且每次提交 BatchJob 时,都会在不知道最新版本的情况下选择最新版本?

0 投票
1 回答
676 浏览

amazon-web-services - AWS Batch - 容器覆盖 - 如何传递一系列语句

我正在使用 amazon/linux 作为我的图像通过控制台运行我的第一个批处理作业。

Docker 映像的命令集为 CMD "/bin/bash" 如何在作业提交期间通过命令覆盖传递脚本。

当我将命令作为yum -y install unzip aws-cli --aws s3 ls传递时,我收到一个错误,我也尝试使用&&没有运气。如何组合多个语句并通过命令覆盖传递以按顺序运行它?

感谢一些人的帮助。

0 投票
2 回答
1026 浏览

amazon-web-services - AWS Batch - 将 UserData 传递给容器实例

我正在使用 aws batch 在容器实例初始化期间传递用户数据。有没有办法在 aws batch 中做到这一点?

按照此链接 创建 AWS Batch Managed Compute Environment 将 UserData 传递给容器实例

但不确定他们最终是如何解决这个问题的。

0 投票
1 回答
3035 浏览

amazon-ec2 - 使用 AWS Batch 服务部署 Spring 批处理应用程序会是一个好的设计吗?

我正在为预计将部署在 AWS 云中的批处理应用程序做 POC。

这批应用程序预计每月计算 2m-10M 记录的巨大计算量。因此,EC2 实例的数量必须根据负载动态增长。

实际上,我正在考虑创建一个将部署在 AWS ECS 服务中的 spring-batch 应用程序。

但是,我看到新的 AWS-Batch 服务也有助于部署这项工作。

我的问题是我可以使用 AWS-Batch 部署我的 spring-batch 应用程序,假设我的批处理应用程序是使用 docker 容器化的。这是一个好方法还是我应该在 ECS 中部署?请建议。

谢谢,玛尼。

0 投票
1 回答
159 浏览

amazon-web-services - AWS Batch:我们如何知道订购批处理作业正在使用哪个计算环境

我是 AWS 新手。我有两个计算环境。当我提交批处理作业时,我如何知道它使用的是哪个计算环境?我在批处理作业日志上看不到任何内容。

0 投票
1 回答
2878 浏览

amazon-web-services - AWS Batch 作业在计算环境中启动时间过长且 Min vCPUs=0

我正在使用 AWS Batch。提交作业后,我等待 10-15 分钟,直到我的作业获得 RUNNING 状态。接下来是我的计算环境配置:

供应模型:EC2
实例类型:m4.xlarge

最小 vCPU:0
所需 vCPU:0
最大 vCPU:4

ECR 图像大小 ~130 MB。

我理解 Min vCPUs = 0 的问题。启动 ECS 实例需要一些时间。但是为什么这么久??为了加快我的作业运行速度,我运行了一个虚拟作业,它可以长时间保持 ECS 实例处于运行状态。在那之后,我的工作运行得很快。

0 投票
1 回答
2162 浏览

amazon-web-services - 如何检查 AWS Batch 作业的内存和 CPU 使用率

在创建批处理作业时,我们可以在容器属性中提供vCPU内存

在 cloudwatch 中,我们可以在Elastic Container Service per cluster 下查看每个集群的内存和 CPU 使用情况。

有没有办法检查每个作业的内存和 CPU 使用率?

0 投票
3 回答
1503 浏览

amazon-web-services - 如何将 Step Function 输入传递给批处理作业

将 Step Function 的部分输入发送到批处理作业的正确方法是什么?

我尝试使用 Parameters.ContainerOverrides.Environment 设置和环境变量,如下所示:

阶跃函数输入如下所示:

但是批处理作业最终会在 PARAM_1 环境变量中使用文字“$.param_1”来调用。

0 投票
2 回答
4242 浏览

amazon-web-services - 推送到 ECR 时的 Docker 映像大小与本地不同

我的本地机器上有一个 1.46GB 的 docker 映像,但是当它被推送到 AWS ECR(通过我的本地机器或通过 CicleCI 部署)时,它只有 537.05MB。我对 Docker 和 AWS 还很陌生,所以任何帮助弄清楚为什么会这样,我将不胜感激!

我有一种感觉,无论出于何种原因,它都没有完全上传到 ECR,因为我正在尝试将此容器用于批处理作业,但由于某种原因,在本地使用时有效的相同命令在作业定义中使用时不起作用. 该命令很简单python app.py,但我也尝试过使用绝对路径python /usr/local/src/app/app.py,这两者都导致[Errno 2] No such file or directory.

我的 Makefile 部署中使用的命令如下:

编辑 1: 我认为这可能与基本图像的大小有关,在这种情况下为 python:2.7。基础镜像是 914MB,加上我的 ECR 镜像的大小 537.05MB = 1451.05MB,即大约 1.46GB。仍然不确定批处理命令的问题是什么......

编辑2: 我一直在使用卷将代码安装到我的容器中,这就是为什么它一直在本地工作。在构建时我忘记将代码复制到容器中,我认为这是不能批量工作的唯一原因!