当文本文件加载到S3存储桶时,如何使用Lambda函数调用Glue函数(ETL)

问题描述 投票:2回答:2

我正在尝试设置一个lambda函数,当.txt文件上传到S3存储桶时激活Glue函数,我正在使用python 3.7

到目前为止我有这个:

from __future__ import print_function

import json
import boto3
import urllib

print('Loading function')

s3 = boto3.client('s3') 

def lambda_handler(event, context): # handler
    source_bucket = event['Records'][0]['s3']['bucket']['name']
    key = urllib.parse.quote_plus(event['Records'][0]['s3']['object']['key'].encode('utf8'))
    try:
        # what to put here
    except Exception as e:
        print(e)
        print('Error')
        raise e

但我不明白我怎么能调用胶水功能

python-3.x amazon-s3 aws-lambda aws-glue
2个回答
1
投票

我设法做到这样:

from __future__ import print_function
import json
import boto3

client = boto3.client('glue')

def lambda_handler(event, context):
    response = client.start_job_run(JobName = 'GLUE_CODE_NAME')

稍后我会发布S3事件


0
投票

您可以配置S3事件通知,该事件通知将在S3前缀上调用PUT对象操作时触发此Lambda函数。

https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html

然后,此lambda函数可以触发Glue API的StartJobRun操作。

https://docs.aws.amazon.com/glue/latest/webapi/API_StartJobRun.html

© www.soinside.com 2019 - 2024. All rights reserved.