我正在尝试构建一个执行 Glue 作业的 lambda 函数:
import json
import boto3
def lambda_handler(event, context):
client = boto3.client('glue')
response = client.start_job_run(
JobName = 'job1',
Arguments = {
'--parametro1': 'par 1'} )
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
lambda1 不会等待作业执行完成,它只会执行作业并完成。
我希望 lambda 处理作业执行的结果,因为 lambda 是从步骤函数执行的,只有当 lambda 成功完成时,步骤函数才会进入下一步。
我认为您应该只使用 Step Functions 中的 arn:aws:states:::glue:startJobRun.sync 服务集成。这将运行您的粘合作业,监视完成情况,然后允许您的工作流程在完成后继续。您不需要中间使用 Lambda 函数,也不需要实现轮询来完成。
您可以在此处了解更多信息:https://docs.aws.amazon.com/step-functions/latest/dg/connect-glue.html