Клиент Boto3 / Jenkins выдает ошибку при запуске кода - PullRequest
0 голосов
/ 19 апреля 2019

Я запускаю ежедневный скрипт склеивания на одном из наших компьютеров 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 через некоторое время,работа идет абсолютно нормально.

Не уверен, что именно здесь не так, любая помощь высоко ценится.

Заранее спасибо !!

1 Ответ

1 голос
/ 20 апреля 2019

Ошибка не требует пояснений:

Cannot update Crawler while running. Please stop crawl or wait until it completes to update.

Так что каким-то образом сканер был запущен примерно в одно и то же время, и в Glue не разрешается обновлять свойства сканера во время его работы. Пожалуйста, проверьте, есть ли другая задача, которая запускает сканер с именем xyz_abc. Кроме того, в консоли AWS убедитесь, что сканер настроен на работу по требованию , а не по расписанию.

...