AWS Elastic Beanstalk Использование Python 2 и Python 3 по ошибке? - PullRequest
0 голосов
/ 01 октября 2019

Я следовал учебному пособию AWS для развертывания приложения django с использованием эластичного beanstalk (https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html). Когда я прихожу к этапу создания среды eb с помощью cli, я сталкиваюсь с ошибками, которые указывают на то, что Python 2 каким-то образом находится в миксе,что не должно быть.

Моя среда создана, но с ошибками, как подробно описано ниже.

Я рассмотрел следующее.

-Я получилпросмотрел учебник по django и убедился, что я им следую.
-Я исследовал проблему с SO и просмотрел свои журналы eb, но не смог определить суть этой конкретной проблемы.
-У меня естьподтвердил, что pywin 225 существует, и платформа aws настроена для python 3.6 (а не 2.7, как предполагают журналы?).

Конечный конец журнала создания env выглядит следующим образом:

Creating application version archive "app-191001_120338".
Uploading ebdjango/app-191001_120338.zip to S3. This may take a while.
Upload Complete.
Environment details for: ebdjango-dev
  Application name: ebdjango
  Region: us-west-1
  Deployed Version: app-191001_120338
  Environment ID: e-ine5bnjxcv
  Platform: arn:aws:elasticbeanstalk:us-west-1::platform/Python 3.6 running on 64bit Amazon Linux/2.9.2
  Tier: WebServer-Standard-1.0
  CNAME: ebdjango-dev2.us-west-1.elasticbeanstalk.com
  Updated: 2019-10-01 19:03:41.226000+00:00
Printing Status:
2019-10-01 19:03:39    INFO    createEnvironment is starting.
2019-10-01 19:03:41    INFO    Using elasticbeanstalk-us-west-1-307455546112 as Amazon S3 storage bucket for environment data.
2019-10-01 19:04:03    INFO    Created target group named: arn:aws:elasticloadbalancing:us-west-1:307455546112:targetgroup/awseb-AWSEB-BNKO4RVK1UEY/9d7bd9879e64fe8e
2019-10-01 19:04:03    INFO    Created security group named: sg-08eeeeae2daaa824a
2019-10-01 19:04:18    INFO    Created security group named: awseb-e-ine5bnjxcv-stack-AWSEBSecurityGroup-1XHDD3SI17QRF
2019-10-01 19:04:19    INFO    Created Auto Scaling launch configuration named: awseb-e-ine5bnjxcv-stack-AWSEBAutoScalingLaunchConfiguration-1JT4JXF8UL7YO
2019-10-01 19:05:20    INFO    Created Auto Scaling group named: awseb-e-ine5bnjxcv-stack-AWSEBAutoScalingGroup-UOU7OOHIFLPM
2019-10-01 19:05:20    INFO    Waiting for EC2 instances to launch. This may take a few minutes.
2019-10-01 19:05:20    INFO    Created Auto Scaling group policy named: arn:aws:autoscaling:us-west-1:307455546112:scalingPolicy:374ae066-b319-4861-9043-1340fe3c1a1c:autoScalingGroupName/awseb-e-ine5bnjxcv-stack-AWSEBAutoScalingGroup-UOU7OOHIFLPM:policyName/awseb-e-ine5bnjxcv-stack-AWSEBAutoScalingScaleDownPolicy-40CWL7KRUGXQ
2019-10-01 19:05:20    INFO    Created Auto Scaling group policy named: arn:aws:autoscaling:us-west-1:307455546112:scalingPolicy:343a776e-ed77-4af1-a8f0-c0c59c9d3e0b:autoScalingGroupName/awseb-e-ine5bnjxcv-stack-AWSEBAutoScalingGroup-UOU7OOHIFLPM:policyName/awseb-e-ine5bnjxcv-stack-AWSEBAutoScalingScaleUpPolicy-8FST2RMX5LJH
2019-10-01 19:05:20    INFO    Created CloudWatch alarm named: awseb-e-ine5bnjxcv-stack-AWSEBCloudwatchAlarmHigh-1FB67ATMY3PVV
2019-10-01 19:05:20    INFO    Created CloudWatch alarm named: awseb-e-ine5bnjxcv-stack-AWSEBCloudwatchAlarmLow-163VGCKXY40IE
2019-10-01 19:06:10    INFO    Created load balancer named: arn:aws:elasticloadbalancing:us-west-1:307455546112:loadbalancer/app/awseb-AWSEB-15E7TQ3L7T3G4/297b8eee80310810
2019-10-01 19:06:10    INFO    Created Load Balancer listener named: arn:aws:elasticloadbalancing:us-west-1:307455546112:listener/app/awseb-AWSEB-15E7TQ3L7T3G4/297b8eee80310810/b6d5a64f37e36d16
2019-10-01 19:06:22    ERROR   Your requirements.txt is invalid. Snapshot your logs for details.
2019-10-01 19:06:25    ERROR   [Instance: i-0cd6718e8f5bee560] Command failed on instance. Return code: 1 Output: (TRUNCATED)...)
  File "/usr/lib64/python2.7/subprocess.py", line 190, in check_call
    raise CalledProcessError(retcode, cmd)
CalledProcessError: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1.
Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
2019-10-01 19:06:26    INFO    Command execution completed on all instances. Summary: [Successful: 0, Failed: 1].
2019-10-01 19:07:28    ERROR   Create environment operation is complete, but with errors. For more information, see troubleshooting documentation.

Эта ссылка на /usr/lib64/python2.7/subprocess.py сбивает меня с толку, так как я использую Python 3.6.1.

Когда я просматриваю журналы на предмет наличия файла «require.txt неверный»являетсяСью, ошибка исходит от.

Collecting pywin32==225 (from -r /opt/python/ondeck/app/requirements.txt (line 16))
    Could not find a version that satisfies the requirement pywin32==225 (from -r /opt/python/ondeck/app/requirements.txt (line 16)) (from versions: )
  No matching distribution found for pywin32==225 (from -r /opt/python/ondeck/app/requirements.txt (line 16))

pywin32 == 225 действительно существует. Я также попытался изменить версию require.txt на 223 вручную (в отдельной попытке), и это не сработало. Я сделал это просто, чтобы попробовать что-то, что не было последней версией pywin32, чтобы увидеть, получу ли я другой результат.

Журналы ошибок продолжаются с другой ссылкой на python 2.7.

You are using pip version 9.0.1, however version 19.2.3 is available.
  You should consider upgrading via the 'pip install --upgrade pip' command.
  2019-10-01 19:06:22,598 ERROR    Error installing dependencies: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1
  Traceback (most recent call last):
    File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 22, in main
      install_dependencies()
    File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 18, in install_dependencies
      check_call('%s install -r %s' % (os.path.join(APP_VIRTUAL_ENV, 'bin', 'pip'), requirements_file), shell=True)
    File "/usr/lib64/python2.7/subprocess.py", line 190, in check_call
      raise CalledProcessError(retcode, cmd)
  CalledProcessError: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1 (ElasticBeanstalk::ExternalInvocationError)
caused by: Collecting awsebcli==3.15.3 (from -r /opt/python/ondeck/app/requirements.txt (line 1)) 

Я не ожидал бы никаких ссылок на Python 2, так как все это настроено для Python 3.6. Действительно, когда я захожу в консоль AWS, я могу подтвердить, что платформа Python 3.6 работает на 64-битной Amazon Linux / 2.9.2.

Я ожидаю, что у меня не возникнет проблем с созданием этого приложения / среды с помощью eb CLI, поскольку я точно следую учебному пособию по AWS django.

После получения этих сообщений об ошибках я запустил git-реподля проекта, чтобы другие могли просмотреть мои требования и файлы конфигурации. https://github.com/rdemint/ebdjango

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

1 Ответ

0 голосов
/ 01 октября 2019

pywin32 доступно только для windows . В журнале ошибок указывается, что require.txt не установил пакеты успешно и на каком-то шаге произошел сбой, следовательно, возвращается ненулевой статус.

Вы можете либо установить использование python с wine на своем AmazonLinux (вы можете использовать команды контейнера для управления установочными пакетами) или создать экземпляр Windows EC2, запечь AMI с необходимыми пакетами, затем в среде Elasticbeanstalk выберите свой пользовательский AMI. Наконец, вы можете развернуть свое приложение на Elasticbeanstalk.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...