Развертывание AWS Elastic Beanstalk — Во время выполнения команды [развертывание приложения] произошла ошибка… в разрешении отказано

#python #amazon-web-services #flask #amazon-elastic-beanstalk

Вопрос:

Я на Windows 10.

Я создал и git инициализировал простое приложение flask, которое содержит:

  • .мерзавец
  • .platform/hooks/postdeploy/01_runsomething.sh (содержит «#!/bin/sh python print_helloworld.py»)
  • .ebignore (игнорирует «venv»)
  • венв
  • application.py
  • print_helloworld.py (независимый файл Python, содержит «печать(«привет, мир»)»)
  • requirements.txt

Приложение Flask отлично работает на моем персональном компьютере. Я пытаюсь загрузить его на эластичный бобовый стебель и запустить «print_helloworld.py» периодически после развертывания.

Но приложение flask получает ошибку во время развертывания:

 2021/11/11 19:56:13.160939 [INFO] Executing instruction: RunAppDeployPostDeployHooks
2021/11/11 19:56:13.160959 [INFO] Executing platform hooks in .platform/hooks/postdeploy/
2021/11/11 19:56:13.161018 [INFO] Following platform hooks will be executed in order: [01_runsomething.sh]
2021/11/11 19:56:13.161027 [INFO] Running platform hook: .platform/hooks/postdeploy/01_runsomething.sh
2021/11/11 19:56:13.162276 [ERROR] An error occurred during execution of command [app-deploy] - [RunAppDeployPostDeployHooks]. Stop running the command. Error: Command .platform/hooks/postdeploy/01_runsomething.sh failed with error fork/exec .platform/hooks/postdeploy/01_runsomething.sh: permission denied 
 

Что я могу сделать, чтобы устранить эту ошибку разрешения?

Я сделал 01_runsomething.sh исполняемый файл с помощью Ubuntu (загруженный из магазина Microsoft) в Windows 10 и используемый:

  chmod  x .platform/hooks/postdeploy/01_runsomething.sh   
 git update-index .platform/hooks/postdeploy/01_runsomething.sh
 

Затем я проверил разрешение на Ubuntu (ls-l .platform/hooks/postdeploy/01_runsomething.sh), и это выглядит так:

 -rwxrwxrwx 1 root root 279 Nov 10 20:33 .platform/hooks/postdeploy/01_runsomething.sh
 

Но приложение flask по-прежнему возвращает ту же ошибку на эластичном бобовом стебле. Не уверен, что это решение сработает.


Что я могу сделать, чтобы устранить эту ошибку разрешения?

Комментарии:

1. Можете ли вы изменить содержимое 01_runsomething. sh в #!/bin/sh повторяет «ТЕСТ» и повторяет попытку?

2. @Питер, Привет. Спасибо. К сожалению, это не сработало. Он по-прежнему возвращает ту же ошибку.

3. Мой другой совет: владелец файла отличается от пользователя, который запускает хуки. Попробуйте написать файл где /tmp -нибудь и проверьте разрешения этого файла, кто является владельцем и т.д., Чтобы, наконец, вы увидели, откуда берется проблема с разрешениями.

4. Я считаю, что это команда, которую вы должны использовать — git update-index --chmod= x path/to/file . Git пометит файл как измененный, и вы должны его зафиксировать.