如何使用python使用AWS Lambda触发胶水作业?

时间:2020-05-20 06:11:06

标签: python aws-lambda aws-glue

假设我有一个名为“ FirstGlueJob”的胶水工作

如何在python中使用lambda函数触发它?

1 个答案:

答案 0 :(得分:0)

我们可以在着陆文件夹上配置Lambda S3事件触发器,并且在上传文件时,我们可以在Lambda中有一个简短的脚本来触发Glue作业。胶水python脚本应具有将输入的文本文件转换为CSV文件的逻辑。这样,当文件上传到S3时,您的作业可以运行任意次。

您的帐单也仅在作业运行期间进行。请注意,由于Glue具有托管服务功能,因此其成本不高。

已创建事件触发器,触发粘合作业。请在此处找到适用于AWS Lambda的代码段:

from __future__ import print_function
import json
import boto3
import time
import sys
import time
from datetime import datetime

s3 = boto3.client('s3')
glue = boto3.client('glue')

def lambda_handler(event, context):
    gluejobname="<< THE GLUE JOB NAME >>"

    try:
        runId = glue.start_job_run(JobName=gluejobname)
        status = glue.get_job_run(JobName=gluejobname, RunId=runId['JobRunId'])
        print("Job Status : ", status['JobRun']['JobRunState'])
    except Exception as e:
        print(e)
        print('Error getting object {} from bucket {}. Make sure they exist '
              'and your bucket is in the same region as this '
              'function.'.format(source_bucket, source_bucket))
    raise e
相关问题