从 SQS 队列启动 AWS Batch

ash*_*ipj 5 amazon-sqs amazon-web-services aws-batch

我有一个长时间运行的批处理作业,计划迁移到 AWS Batch。由于运行此作业需要几个小时,因此我无法使用 AWS Lambda。

但是,要求之一是从我的 AWS SQS 队列触发此作业。

我找不到任何关于此的参考文档。甚至可行吗?

Aas*_*ain 1

您可以实现以下方法来监听SQS消息:

public void onMessage( Message message ) throws JMSException {

    SQSTextMessage sqsTextMessage = ( SQSTextMessage ) message;
    String text = sqsTextMessage.getText();
  
    AWSBatch awsBatch = AWSBatchClientBuilder.standard()
       .withCredentials(new DefaultAWSCredentialsProviderChain())
       .withRegion("region")
       .build();

    SubmitJobRequest submitRequest = new SubmitJobRequest()
       .withJobDefinition("job-definition-name")
       .withJobName("job-name")
       .withJobQueue("job-queue");
  
    SubmitJobResult submitResult = awsBatch.submitJob(submitRequest);
  }
Run Code Online (Sandbox Code Playgroud)