У меня проблемы с заданиями cron в экземпляре EC2 в среде Elastic Beanstalk.
Когда я подключаюсь к экземпляру EC2 и набираю php artisan command:backup_logs
с терминала, задание выполняется гладко и все работает как надо.
Хотя, когда задание проходит через cron * * * * * /usr/bin/php /var/app/current/artisan command:backup_logs
, в журналах возвращается следующая ошибка:
[2018-09-17 16:14:01] production.ERROR: Missing required client configuration options:
region: (string)
A "region" configuration value is required for the "s3" service
(e.g., "us-west-2"). A list of available public regions and endpoints can be
found at http://docs.aws.amazon.com/general/latest/gr/rande.html. {"exception":"[object] (InvalidArgumentException(code: 0): Missing required client configuration options:
region: (string)
A \"region\" configuration value is required for the \"s3\" service
(e.g., \"us-west-2\"). A list of available public regions and endpoints can be
found at http://docs.aws.amazon.com/general/latest/gr/rande.html. at /var/app/current/vendor/aws/aws-sdk-php/src/ClientResolver.php:371)
[stacktrace]
#0 /var/app/current/vendor/aws/aws-sdk-php/src/ClientResolver.php(267): Aws\\ClientResolver->throwRequired(Array)
#1 /var/app/current/vendor/aws/aws-sdk-php/src/AwsClient.php(158): Aws\\ClientResolver->resolve(Array, Object(Aws\\HandlerList))
#2 /var/app/current/vendor/aws/aws-sdk-php/src/S3/S3Client.php(261): Aws\\AwsClient->__construct(Array)
#3 /var/app/current/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(208): Aws\\S3\\S3Client->__construct(Array)
#4 /var/app/current/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(125): Illuminate\\Filesystem\\FilesystemManager->createS3Driver(Array)
........
выдает ошибку PRODUCTION
на laravel.log, в то время как DEVELOPMENT
,
и искомое значение уже установлено. Как я упоминал ранее, загрузка работает нормально, когда я запускаю ее из терминала как зарегистрированный пользователь.
У меня та же проблема со всеми командами, а также, когда я хочу выполнить задания по расписанию, возникает та же ошибка.
Кто-нибудь, кто может пролить свет, пожалуйста? Большое спасибо!
Решение
Чтобы это исправить, просто создайте файл конфигурации в папке .ebextensions
и вставьте следующий код YAML:
files:
"/etc/cron.d/artisan_scheduler":
mode: "000644"
owner: root
group: root
content: |
* * * * * ec2-user . $HOME/.bash_profile; php /var/app/current/artisan schedule:run >> /dev/null 2>&1