如何通过API Gateway集成请求配置创建指向指定Job Definition的AWS Batch作业
API Gateway集成AWS Batch提交指定Job Definition作业的配置步骤
配置界面参考:
首先确认:目标Batch Job Definition支持直接通过ARN指定,也可使用作业定义名:版本号格式指定,使用ARN可以避免跨版本/跨权限调用的错误,优先级更高。
步骤1:配置基础AWS服务集成参数
进入Batch服务集成配置页面后,依次填写以下基础项:
- AWS区域:选择你的Batch资源(作业定义、作业队列)所在的对应区域,必须和目标资源同区域
- AWS服务:保持默认选中的
Batch即可 - HTTP方法:必须选择
POST,Batch提交作业的官方SubmitJob接口仅支持POST请求 - 操作类型:选择
使用操作名称 - 操作名称:固定填写
SubmitJob - 执行角色:填写拥有
batch:SubmitJob调用权限的IAM角色ARN,该角色的信任策略必须允许apigateway.amazonaws.com服务担任该角色
步骤2:配置请求映射模板,绑定目标Job Definition
向下滚动找到正文传递模板模块,添加映射规则:
- 请求内容类型填写
application/json - 模板内容根据你的需求填写,固定指定Job Definition的示例模板如下:
{ "jobName": "$util.escapeJavaScript($input.json('$.jobName'))", "jobQueue": "替换为你的作业队列ARN/名称", "jobDefinition": "替换为你要指定的目标Job Definition ARN", "parameters": $input.json('$.parameters') }
如果需要从API请求中动态传入Job Definition,也可以将对应行改为"jobDefinition": "$util.escapeJavaScript($input.json('$.jobDefinition'))",出于安全考虑建议将Job Definition固定在模板中,避免越权调用其他作业定义。
步骤3:部署并测试API
保存所有集成配置后,将API部署到对应阶段,发送POST请求到API端点,请求体携带jobName(作业名,可自定义)和可选的parameters(作业入参)即可触发Batch作业,作业会自动使用你指定的Job Definition运行。
注意:如果需要配置作业的其他参数(比如容器启动命令覆盖、vCPU/内存规格覆盖等),在映射模板中补充
SubmitJob接口支持的对应字段即可。
内容的提问来源于stack exchange,提问作者LayneSadler
相关产品推荐
相关产品推荐


