如标题所示,我在设置从 eventbridge 到 AWS BATCH 的容器覆盖时遇到问题。
对于上下文,我使用 AWS Batch 来保存 ecs 容器的容器配置。
我设置的 Eventbridge 规则在启动批处理作业时没有问题,它只是没有传递我使用 输入变压器设置的容器覆盖参数
我在 s3 的 Eventbridge 中设置了一个触发器,可以检测文件夹中的任何文件上传,如下所示:
事件模式
{
"detail": {
"bucket": {
"name": ["meter-alarms-ls1-ls2-download-test-app-bucket"]
},
"object": {
"key": [{
"prefix": "input/"
}]
}
},
"detail-type": ["Object Created"],
"source": ["aws.s3"]
}
然后我将目标设置为我的批量配置(作业和队列)。
但是我有一个小输入变压器来实现这样的目标设置
输入路径
{
"object_key": "$.detail.object.key"
}
输入模板
{
"containerOverrides": {
"environment": [
{
"name": "FILE_NAME",
"value": "<object_key>"
}
]
}
}
我已经测试了权限,并测试了批处理是否可以使用此命令处理覆盖
aws batch submit-job
--job-name "TestJob"
--job-queue "queueName"
--job-definition "jobDef"
--container-overrides '{
"environment": [
{
"name": "FILE_NAME",
"value": "example-file-name"
}
]
}'
批处理作业运行良好。
当我输入此内容并查看文档时,答案实际上非常愚蠢。
{
"ContainerOverrides": {
"Environment": [
{
"Name": "FILE_NAME",
"Value": "<object_key>"
}
]
}
}
它只需要每个单词大写