如何给AWS事件桥接规则添加sharedIdentifier以便为AWS Batch作业的定时执行进行调度。

3
我配置了AWS桥接事件规则(通过Web GUI)以运行AWS批处理作业-规则已被触发,但是在调用后我收到以下错误:
shareIdentifier must be specified. (Service: AWSBatch; Status Code: 400; Error Code: ClientException; Request ID: 07da124b-bf1d-4103-892c-2af2af4e5496; Proxy: null)

我的工作涉及调度策略,需要设置shareIdentifier,但我不知道如何设置。以下是规则配置的截图:

enter image description here

作业的后续参数/参数没有其他设置,我能够配置的唯一东西是重试次数。我还检查了用于放置规则的aws-cli命令(https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/put-rule.html),但它似乎没有任何其他设置。有什么建议吗?或者有可行的示例吗?
编辑:
最终我使用了AWS Batch的Java SDK:https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-batch。我有一个定期生成作业的计划方法,代码如下:
AWSBatch client = AWSBatchClientBuilder.standard().withRegion("eu-central-1").build();

SubmitJobRequest request = new SubmitJobRequest()
    .withJobName("example-test-job-java-sdk")
    .withJobQueue("job-queue")
    .withShareIdentifier("default")
    .withJobDefinition("job-type");

SubmitJobResult response = client.submitJob(request);

log.info("job spawn response: {}", response);
2个回答

1

我没有尝试过-最终我使用了aws批处理的java sdk: https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-batch。我有一个定时方法,定期生成作业。 - Patrik
最终做了同样的事情。部署了一个Lambda函数,通过boto3触发作业,并使用事件桥计划来触发Lambda函数。 - Yass

0

我曾经遇到过类似的问题,无论是从CLI还是GUI,我都找不到一种方法来传递Eventbridge规则中的ShareIdentifier。最终,我只能使用状态机(步骤函数)代替:

"States": {
    "Batch SubmitJob": {
      "Type": "Task",
      "Resource": "arn:aws:states:::batch:submitJob.sync",
      "Parameters": {
        "JobName": <name>,
        "JobDefinition": <Arn>,
        "JobQueue": <QueueName>,
        "ShareIdentifier": <Share>
      },
...

你可以看到它可以很好地处理ShareIdentifier。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接