标签: aws-batch

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

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

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

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

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

amazon-web-services aws-sdk aws-batch

5
推荐指数
2
解决办法
1467
查看次数

aws batch:使用lambda提交作业

上下文:AWS,S3,Lambda,Batch.

我有一个在S3 Bucket上传文件时触发的lambda.我希望lambda提交批处理作业.

(编辑:在S3和Lambda之间一切正常.问题出在Lambda和Batch之间.)

:为了能够提交批处理作业,我必须给lambda 什么作用

在以下情况下,我的lambda获得AccessDeniedException并且未能提交作业:

const params = {
  jobDefinition: BATCH_JOB_DEFINITION,
  jobName: BATCH_JOB_NAME,
  jobQueue: BATCH_JOB_QUEUE,
};

Batch.submitJob(params).promise() .then .......
Run Code Online (Sandbox Code Playgroud)

roles amazon-web-services aws-lambda aws-batch

4
推荐指数
1
解决办法
2789
查看次数

如何为 AWS Batch 作业设置正确的 IAM 角色?

我的作业在提交到 Batch 服务后从 RUNNABLE 变为 FAILED 状态,并显示以下作业状态错误消息(来自 AWS 控制台):

ECS was unable to assume the role 'arn:aws:iam::347134692569:role/my-custom-role' that was provided for this task. Please verify that the role being passed has the proper trust relationship and permissions and that your IAM user has permissions to pass this role.
Run Code Online (Sandbox Code Playgroud)

上面引用的角色由 Terraform 管理,具有两个策略附件 (AWSBatchServiceRoleAmazonEC2ContainerServiceforEC2Role),如下所示:

resource "aws_iam_role" "batch" {
  name               = "my-custom-role"
  assume_role_policy = <<EOF
{
    "Version": "2012-10-17",
    "Statement":
    [
      {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": "batch.amazonaws.com" …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform aws-batch terraform-provider-aws

4
推荐指数
1
解决办法
4771
查看次数

AWS Batch 与 AWS CodeBuild

我对 AWS 非常陌生,当我搜索从 GitHub(一个 python 项目)下载代码、运行它并将输出保存在 s3 中的内容时,我找到的第一个服务是 CodeBuild。

所以我使用 CodeBuild 来实现这种工作流程。

但现在我看到 AWS 有一项名为 AWS Batch 的服务,我想知道是否应该将我的架构迁移到 AWS Batch。

您能否解释一下 AWS CodeBuild 或 AWS Batch 哪一个更适合我的案例?何时使用 AWS Batch 而不是 AWS CodeBuild?

非常感谢。

amazon-web-services aws-codebuild aws-batch

4
推荐指数
1
解决办法
1423
查看次数

用于机器学习训练的 AWS Batch 和 Sagemaker 训练作业有什么区别

使用 AWS Batch 和 Sagemaker Training Job 运行 docker 映像进行机器学习训练时,它有什么区别?

machine-learning amazon-web-services aws-batch amazon-sagemaker

4
推荐指数
1
解决办法
1893
查看次数

如何定期提交aws批处理作业

我们正在寻找aws批处理作业,我们希望在某个预定义的时间间隔内提交此批处理作业.例如:我们希望每4小时自动提交一份这份工作.

什么是实现它的首选方式.

amazon-web-services aws-sdk aws-batch

3
推荐指数
1
解决办法
2109
查看次数

如何将 Step Function 输入传递给 Batch Job

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

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

"Parameters": {
    "ContainerOverrides": {
      "Environment": [
        {
          "Name": "PARAM_1",
          "Value": "$.param_1"
        }
Run Code Online (Sandbox Code Playgroud)

步骤函数输入如下所示:

{
  "param_1": "value-goes-here"
}
Run Code Online (Sandbox Code Playgroud)

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

amazon-web-services aws-step-functions aws-batch

3
推荐指数
1
解决办法
2980
查看次数

AWS:Lambda 通过 Python boto3 客户端提交批处理作业,但在收到响应之前超时

我有一个 Lambda 函数,它有一个 Python 处理程序,可通过客户端向 AWS Batch 提交作业boto3

client = boto3.client('batch', 'us-east-1')

def handle_load(event, context):

    hasher = hashlib.sha1()
    hasher.update(str(time.time()).encode())
    job_name = f"job-{hasher.hexdigest()[:10]}"
    job_queue = os.environ.get("job_queue")
    job_definition = os.environ.get("job_definition")

    logger.info(f"Submitting job named '{job_name}' to queue '{job_queue}' "
                f"with definition '{job_definition}'")

    response = client.submit_job(
        jobName=job_name,
        jobQueue=job_queue,
        jobDefinition=job_definition,
    )

    logger.info(f"Submission successful, job ID: {response['jobId']}")
Run Code Online (Sandbox Code Playgroud)

我可以看到此 Lambda 函数在 CloudWatch 日志中提交批处理作业,但在响应返回之前它总是超时。我从来没有看到这些作业出现在队列中,所以我不确定它们提交后会去哪里,似乎 Lambda 总是在响应返回之前超时,我没有什么可继续的。

我已使用 Lambda 的 Python 代码中使用的相同队列和定义 ARN,通过 AWS CLI 成功将作业添加到队列中。该作业可以在可运行选项卡下的队列中看到(大概该作业将在不久的将来的某个时刻启动)。

使用 AWS CLI 提交的作业会立即返回,因此 Lambda 配置中一定存在问题,导致作业无法提交。也许我没有为提交作业的 Lambda 使用正确的角色,或者有一些其他权限错误导致超时?Lambda 有权对batch:SubmitJob所有资源执行允许的操作。

python amazon-web-services aws-lambda aws-batch

3
推荐指数
1
解决办法
3155
查看次数

AWS Batch 上的 Docker 中的 Docker?

是否可以在AWS批处理上运行docker-in-docker?

我尝试过通过容器属性安装docker套接字的方法:

container_properties = <<CONTAINER_PROPERTIES
 {
    "command": ["docker", "run", "my container"],
    "image": "docker/compose",
    "jobRoleArn": "my-role",
    "memory": 2000,
    "vcpus": 1,
    "privileged": true,
    "mountPoints": [
      {
        "sourceVolume": "/var/run/docker.sock",
        "containerPath": "/var/run/docker.sock",
        "readOnly": false
      }
    ]
 }
Run Code Online (Sandbox Code Playgroud)

但是,在具有默认配置的 SPOT 计算环境中运行此批处理作业会产生一个立即转换为 FAILED 状态的作业,状态转换原因如下:

Status reason
Unknown volume '/var/run/docker.sock'.
Run Code Online (Sandbox Code Playgroud)

docker aws-batch

3
推荐指数
1
解决办法
1371
查看次数

AWS Batch 上的 SpringBatch

我可以创建 Spring Batch 并使用 AWS Batch 调用吗?如果是这样,建议采取步骤

根据此分析,我必须致电使用 Spring Batch 或使用 Java 应用程序使用 AWS Batch。

spring-batch aws-batch

3
推荐指数
1
解决办法
1055
查看次数