AWS Glue Crawler调用API指定RecrawlPolicy参数报错如何解决
问题解决步骤
- 先修复代码语法错误
你提供的crawler_args定义中,RecrawlPolicy键值对末尾缺少逗号,会先触发语法报错,先修正该问题:
crawler_args = { "Name": args['CRAWLER_NAME'], "Role": args['IAM_ROLE'], "DatabaseName": args['DB_NAME'], "RecrawlPolicy": {"RecrawlBehavior": "CRAWL_NEW_FOLDERS_ONLY"}, # 此处补全缺失的逗号 "Targets": { "S3Targets": [{"Path": f"s3:/../{src_obj}/"}] }, "TablePrefix": "" } glue.create_crawler(**crawler_args)
- 升级boto3到最新版本
首先查看当前安装的boto3版本,确认版本是否过低:
pip show boto3
根据运行环境选择对应的升级命令:
- 全局Python环境升级:
pip install --upgrade boto3
- 虚拟环境升级:先激活对应虚拟环境,再执行上述全局升级命令即可
- 若环境中默认pip对应Python2,使用pip3升级:
pip3 install --upgrade boto3
升级完成后再次执行pip show boto3确认版本,1.26.0及以上版本均完整支持Glue的RecrawlPolicy参数。
备注:如果你是在AWS Lambda环境运行代码,Lambda内置的boto3版本可能更新滞后,此时需要自行打包对应版本的boto3作为Lambda层使用,才能正常调用新参数。
- 验证参数支持
升级完成后可运行以下代码,确认当前boto3的Glue接口是否已经支持RecrawlPolicy参数:
import boto3 print(boto3.client('glue').meta.service_model.operation_model('CreateCrawler').input_shape.members.keys())
输出列表中存在RecrawlPolicy即代表参数已支持。
内容的提问来源于stack exchange,提问作者krishna Katragadda
相关产品推荐
相关产品推荐

