如何通过 S3 事件或 AWS Lambda 触发 Glue ETL Pyspark 作业?

Aak*_*asu 5 amazon-s3 amazon-web-services aws-lambda aws-glue

我计划使用 Pyspark 在 AWS Glue ETL 中编写某些作业,我希望在将新文件放入 AWS S3 位置时触发这些作业,就像我们使用 S3 事件触发 AWS Lambda 函数一样。

但是,我只看到非常缩小的选项,以触发 Glue ETL 脚本。对此的任何帮助都将受到高度赞赏。

Yuv*_*uva 9

以下应该可以从 AWS Lambda 触发 Glue 作业。将 lambda 配置为适当的 S3 存储桶,并将 IAM 角色/权限分配给 AWS Lambda,以便 lambda 可以代表用户启动 AWS Glue 作业。

import boto3
print('Loading function')

def lambda_handler(_event, _context):
    glue = boto3.client('glue')
    gluejobname = "YOUR 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)
        raise
Run Code Online (Sandbox Code Playgroud)