Boto3/Jenkins 客户端在 运行 代码时抛出错误
Boto3/Jenkins client throwing an error while running the code
我正在 运行 在我们的一台 AWS 机器上设置一个日常胶水脚本,我使用 jenkins 安排了它。
我在过去 15 天收到以下信息。 (这项日常工作已经 运行 将近 6 个月了,突然间发生了 15 天)
jenkins 控制台输出如下所示
Started by timer
Building in workspace /var/lib/jenkins/workspace/build_name_xyz
[build_name_xyz] $ /bin/sh -xe /tmp/jenkins8188702635955396537.sh
+ /usr/bin/python3 /var/lib/jenkins/path_to_script/glue_crawler.py
Traceback (most recent call last):
File "/var/lib/jenkins/path_to_script/glue_crawler.py", line 10, in <module>
response = glue_client.update_crawler(Name = crawler_name,Targets = {'S3Targets': [{'Path':update_path}]})
File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 661, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.InvalidInputException: An error occurred (InvalidInputException) when calling the UpdateCrawler operation: Cannot update Crawler while running. Please stop crawl or wait until it completes to update.
Build step 'Execute shell' marked build as failure
Finished: FAILURE
所以,我继续前进并看到了这个文件中的第 10 行
/var/lib/jenkins/path_to_script/glue_crawler.py
看起来像这样。
import boto3
import datetime
glue_client = boto3.client('glue', region_name='region_name')
crawler_name = 'xyz_abc'
today = (datetime.datetime.now()).strftime("%Y_%m_%d")
update_path = 's3://path-to-respective-aws-s3-bucket/%s' % (today)
response = glue_client.update_crawler(Name = crawler_name,Targets = {'S3Targets': [{'Path':update_path}]})
response_crawler = glue_client.start_crawler(
Name=crawler_name
)
print(response_crawler)
以上在第 10 行抛出一个错误。我不明白第 10 行到底出了什么问题,因此 jenkins 抛出了一个红色球的错误,在这里请求一些帮助。我试着用谷歌搜索这个,但我找不到任何东西。
只是,仅供参考......如果我 运行 使用 jenkins UI 相同的构建(通过单击 'Build Now')一段时间后,作业 运行绝对没问题。
不确定这里到底出了什么问题,非常感谢任何帮助。
提前致谢!!
错误不言自明:
Cannot update Crawler while running. Please stop crawl or wait until it completes to update.
因此爬虫几乎同时启动,并且在 Glue 中不允许在 运行 时更新爬虫属性。请检查是否有任何其他任务也以名称 xyz_abc
启动爬虫。除此之外,在 AWS 控制台 make sure the crawler is configured to run on demand 而不是按计划进行。
我正在 运行 在我们的一台 AWS 机器上设置一个日常胶水脚本,我使用 jenkins 安排了它。
我在过去 15 天收到以下信息。 (这项日常工作已经 运行 将近 6 个月了,突然间发生了 15 天)
jenkins 控制台输出如下所示
Started by timer
Building in workspace /var/lib/jenkins/workspace/build_name_xyz
[build_name_xyz] $ /bin/sh -xe /tmp/jenkins8188702635955396537.sh
+ /usr/bin/python3 /var/lib/jenkins/path_to_script/glue_crawler.py
Traceback (most recent call last):
File "/var/lib/jenkins/path_to_script/glue_crawler.py", line 10, in <module>
response = glue_client.update_crawler(Name = crawler_name,Targets = {'S3Targets': [{'Path':update_path}]})
File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 661, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.InvalidInputException: An error occurred (InvalidInputException) when calling the UpdateCrawler operation: Cannot update Crawler while running. Please stop crawl or wait until it completes to update.
Build step 'Execute shell' marked build as failure
Finished: FAILURE
所以,我继续前进并看到了这个文件中的第 10 行
/var/lib/jenkins/path_to_script/glue_crawler.py
看起来像这样。
import boto3
import datetime
glue_client = boto3.client('glue', region_name='region_name')
crawler_name = 'xyz_abc'
today = (datetime.datetime.now()).strftime("%Y_%m_%d")
update_path = 's3://path-to-respective-aws-s3-bucket/%s' % (today)
response = glue_client.update_crawler(Name = crawler_name,Targets = {'S3Targets': [{'Path':update_path}]})
response_crawler = glue_client.start_crawler(
Name=crawler_name
)
print(response_crawler)
以上在第 10 行抛出一个错误。我不明白第 10 行到底出了什么问题,因此 jenkins 抛出了一个红色球的错误,在这里请求一些帮助。我试着用谷歌搜索这个,但我找不到任何东西。
只是,仅供参考......如果我 运行 使用 jenkins UI 相同的构建(通过单击 'Build Now')一段时间后,作业 运行绝对没问题。
不确定这里到底出了什么问题,非常感谢任何帮助。
提前致谢!!
错误不言自明:
Cannot update Crawler while running. Please stop crawl or wait until it completes to update.
因此爬虫几乎同时启动,并且在 Glue 中不允许在 运行 时更新爬虫属性。请检查是否有任何其他任务也以名称 xyz_abc
启动爬虫。除此之外,在 AWS 控制台 make sure the crawler is configured to run on demand 而不是按计划进行。