api 网关与 aws 批处理集成
Posted
技术标签:
【中文标题】api 网关与 aws 批处理集成【英文标题】:api gateway integration with aws batch 【发布时间】:2019-12-01 03:33:48 【问题描述】:我想在 AWS 批处理中使用 API 网关
我已经知道如何将 API Gateway 与 AWS lambda naad 一起使用,因为 lambda 有 250 MB 的限制,我无法将其用于集成,现在尝试使用 AWS 批处理
【问题讨论】:
【参考方案1】:我假设您想使用 API Gateway + Lambda 创建一个端点,用于向 AWS Batch 提交作业请求。
为此,请创建以下 Lambda 函数,该函数将作业提交到 AWS Batch。将“jobQueueArn”替换为您的作业队列的 arn。将 Lambda 函数与 API Gateway 集成。
import boto3
def lambda_handler(event, context):
client = boto3.client('batch')
JOB_NAME = event['JobName']
JOB_QUEUE = "jobQueueArn"
JOB_DEFINITION = "a-job-definition:1"
response = client.submit_job(
jobName = JOB_NAME,
jobQueue = JOB_QUEUE,
jobDefinition = JOB_DEFINITION,
parameters = 'key': 'value'
)
print(response)
return 0
可以使用parameters
输入传递参数。
参数(字典)-- 传递给作业的附加参数,用于替换作业定义中设置的参数替换占位符。参数被指定为键值对映射。 SubmitJob 请求中的参数会覆盖作业定义中的任何相应参数默认值。
确保将正确的 IAM 策略附加到 Lambda 函数的角色。
"Version": "2012-10-17",
"Statement": [
"Sid": "",
"Effect": "Allow",
"Action": [
"batch:SubmitJob"
],
"Resource": [
"*"
]
]
【讨论】:
感谢 Yuke,但我对如何将来自 API 的输入参数传递给批处理有更多疑问。假设一个 json 作为 API "value" : 123" 的输入,它将如何将此值作为输入,因为早期的 lambda 用于处理它 嗨,Arpit,您可以简单地添加参数作为 Client.submit_job 函数的输入,如文档boto3.amazonaws.com/v1/documentation/api/latest/reference/…中所述 我无法在 lambda 中获得 aws 批处理输出。如何在 lambda 日志中查看批处理结果?以上是关于api 网关与 aws 批处理集成的主要内容,如果未能解决你的问题,请参考以下文章
如何为 ECS 添加带有应用程序负载均衡器的 AWS API 网关?
terraform api 网关与 openapi 规范的集成
AWS WebSocket API 网关必须对 $connect、$disconnect 和 $default 具有相同的集成?
Telegram Bot(用 python 编码)与 AWS API Gateway 集成
来玩 Serverless: 如何把 Express 应用迁移到 Amazon API 网关和 AWS Lambda 上