创建具有多个s3路径的AWS胶搜寻器

时间:2020-09-22 23:02:54

标签: amazon-s3 boto3 aws-glue

我想根据以下文档使用boto3 API创建aws胶搜寻器。

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/glue.html#Glue.Client.create_crawler

在这里,我需要传递近100条s3路径,我想以编程方式创建它。

response = client.create_crawler(
    Name='string',
    Role='string',
    DatabaseName='string',
    Description='string',
    Targets={
        'S3Targets': [
            {
                'Path': 'string',
                'Exclusions': [
                    'string',
                ],
                'ConnectionName': 'string'
            },
        ],

这里我需要一次将s3的100条路径传递给API调用,是否有更好的方法以编程方式完成它,而不是将所有s3路径手动添加到API调用中?

1 个答案:

答案 0 :(得分:0)

正如Prabbakar所述,将对象的完整前缀传递给搜寻器不是最佳实践。考虑添加整个路径并使用排除项。如果那是唯一的方法,则可以从Targets对象中的列表中展开前缀

s3_paths = [
    "s3://Bucketname/data/test1/",
    "s3://Bucketname/data/testone",
    "s3://Bucketname/data/testrandompath",
     ...
]
response = client.create_crawler(
    Name='string',
    Role='string',
    DatabaseName='string',
    Description='string',
    Targets={
        'S3Targets': [
            {
                'Path': s3_path,
                'Exclusions': [],
                'ConnectionName': 'string'
            }
            for s3_path in s3_paths
        ]
     }
)

相关问题