来自Cloudwatch Event的AWS Batch输入参数

时间:2018-03-19 16:26:22

标签: amazon-cloudwatch aws-batch

我正在尝试将从S3 PutObject上的Cloudwatch事件触发的AWS Batch作业设置到存储桶中。我在添加新文件时正在运行该作业,但我不确定如何将文件名传递给作业。在我的Cloudwatch事件规则中,我为批处理作业队列设置了Configure inputMatched event,但我不确定如何访问作业正在运行的docker容器中的事件。

1 个答案:

答案 0 :(得分:0)

如此处所述:https://docs.aws.amazon.com/batch/latest/userguide/batch-cwe-target.html,在标题为“使用CloudWatch Events Input Transformer将事件信息传递到AWS Batch目标的部分”的底部,

像这样设置您的工作定义:

{
  "jobDefinitionName": "echo-parameters",
  "containerProperties": {
    "image": "busybox",
    "vcpus": 2,
    "memory": 2000,
    "command": [
      "echo",
      "Ref::S3bucket",
      "Ref::S3key"
    ]
  }
}

这假定您的docker映像包含命令echo,该命令带有2个参数-S3存储桶和S3键。

在CloudWatch Event规则中,使用InputTransformer将事件详细信息转换为所需的内容:

"InputTransformer": {
  "InputPathsMap" : {
    "S3BucketValue": "$.detail.requestParameters.bucketName",
    "S3KeyValue": "$.detail.requestParameters.key"
  },
  "InputTemplate" : "{\"S3bucket\": <S3BucketValue>, \"S3key\": <S3KeyValue>}"
}