Я установил файл crontab для запуска скрипта Python, который создает файл JSON и записывает его в корзину S3. Он запускается, как и ожидалось, при запуске из командной строки, но когда я запускаю его как задание cron, я получаю следующую ошибку:

botocore.exceptions.ConnectTimeoutError: время ожидания соединения по URL-адресу конечной точки

Это вытекает из следующих строк кода в скрипте:

import boto3

def main():
    # Create EC2 client and get EC2 response
    ec2 = boto3.client('ec2')
    response = ec2.describe_instances()

Я предполагаю, что какое-то разрешение не задано в задании cron, что лишает меня доступа к URL.

0
PyNerd 18 Дек 2019 в 20:42

1 ответ

Оказывается, мне пришлось установить параметры прокси, чтобы я получал доступ к AWS как от себя, а не от имени пользователя root. Я запустил задание cron как сценарий оболочки Linux, а не как скрипт Python, и экспортировал мои настройки http_proxy, https_proxy и no_proxy, найденные в ~ / .bash_profile, в первых строках сценария оболочки

`export http_proxy=<http_proxy from ~/.bash_profile>
 export https_proxy=<https_proxy from ~/.bash_profile>
 export no_proxy=<no_proxy from ~./bash_profile>
 python <python script>`
1
PyNerd 23 Дек 2019 в 20:31