@Ozrae

Как настроить системные переменные?

Я хотел свои проекты задеплоить, чтобы было удобнее просматривать мое портфолио. Выбрал heroku, никаких проблем не было пока не решил добавить системные переменные и скрыть секретные ключи.

Системные переменные вроде секретного ключа, ключей API я прописал в настройках django проекта как было указано в документации heroku (https://devcenter.heroku.com/articles/config-vars#...), цитата:

In Python, using the boto library:
from boto.s3.connection import S3Connection
s3 = S3Connection(os.environ['S3_KEY'], os.environ['S3_SECRET'])

Now, upon deploying to Heroku, the app will use the keys set in the config.


Я сделал также, добавил config vars через heroku dashboard, загрузил библиотеку boto. Прописал settings.py, вот пример:
from boto.s3.connection import S3Connection
SECRET_KEY = S3Connection(os.environ['SECRET_KEY'])


Как решить проблему?

Heroku log (не полный лог, обрезал сверху, если нужно могу отправить) выдает следующее:
2020-07-17T17:11:56.039725+00:00 app[web.1]: application = get_wsgi_application()
2020-07-17T17:11:56.039726+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
2020-07-17T17:11:56.039726+00:00 app[web.1]: return WSGIHandler()
2020-07-17T17:11:56.039726+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/core/handlers/wsgi.py", line 127, in __init__
2020-07-17T17:11:56.039727+00:00 app[web.1]: self.load_middleware()
2020-07-17T17:11:56.039727+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/core/handlers/base.py", line 37, 
in load_middleware
2020-07-17T17:11:56.039728+00:00 app[web.1]: mw_instance = middleware(handler)
2020-07-17T17:11:56.039728+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/middleware.py", line 49, in __init__
2020-07-17T17:11:56.039729+00:00 app[web.1]: self.add_files(self.static_root, prefix=self.static_prefix)
2020-07-17T17:11:56.039729+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/base.py", line 113, in add_files
2020-07-17T17:11:56.039729+00:00 app[web.1]: self.update_files_dictionary(root, prefix)
2020-07-17T17:11:56.039730+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/base.py", line 125, in update_files_dictionary
2020-07-17T17:11:56.039730+00:00 app[web.1]: self.add_file_to_dictionary(url, path, stat_cache=stat_cache)
2020-07-17T17:11:56.039730+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/base.py", line 136, in add_file_to_dictionary
2020-07-17T17:11:56.039731+00:00 app[web.1]: static_file = self.get_static_file(path, url, stat_cache=stat_cache)
2020-07-17T17:11:56.039731+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/base.py", line 210, in get_static_file
2020-07-17T17:11:56.039731+00:00 app[web.1]: self.add_cache_headers(headers, path, url)
2020-07-17T17:11:56.039732+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/base.py", line 231, in add_cache_headers
2020-07-17T17:11:56.039732+00:00 app[web.1]: if self.immutable_file_test(path, url):
2020-07-17T17:11:56.039732+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/middleware.py", line 144, in 
immutable_file_test
2020-07-17T17:11:56.039732+00:00 app[web.1]: static_url = self.get_static_url(name_without_hash)
2020-07-17T17:11:56.039733+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/whitenoise/middleware.py", line 167, in 
get_static_url
2020-07-17T17:11:56.039733+00:00 app[web.1]: return decode_if_byte_string(staticfiles_storage.url(name))
2020-07-17T17:11:56.039733+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/storages/backends/s3boto3.py", line 683, in url
2020-07-17T17:11:56.039734+00:00 app[web.1]: url = self.bucket.meta.client.generate_presigned_url('get_object', Params=params,
2020-07-17T17:11:56.039734+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/botocore/signers.py", line 581, in generate_presigned_url
2020-07-17T17:11:56.039734+00:00 app[web.1]: params = self._emit_api_params(params, operation_model, context)
2020-07-17T17:11:56.039735+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/botocore/client.py", line 682, in _emit_api_params
2020-07-17T17:11:56.039735+00:00 app[web.1]: self.meta.events.emit(
2020-07-17T17:11:56.039735+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/botocore/hooks.py", line 356, in emit
2020-07-17T17:11:56.039743+00:00 app[web.1]: return self._emitter.emit(aliased_event_name, **kwargs)
2020-07-17T17:11:56.039744+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/botocore/hooks.py", line 228, in emit
2020-07-17T17:11:56.039744+00:00 app[web.1]: return self._emit(event_name, kwargs)
2020-07-17T17:11:56.039744+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/botocore/hooks.py", line 211, in _emit  
2020-07-17T17:11:56.039745+00:00 app[web.1]: response = handler(**kwargs)
2020-07-17T17:11:56.039745+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/botocore/handlers.py", line 200, in validate_bucket_name
2020-07-17T17:11:56.039745+00:00 app[web.1]: if not VALID_BUCKET.search(bucket) and not VALID_S3_ARN.search(bucket):
2020-07-17T17:11:56.039746+00:00 app[web.1]: TypeError: expected string or bytes-like object
2020-07-17T17:11:56.040144+00:00 app[web.1]: [2020-07-17 17:11:56 +0000] [10] [INFO] Worker exiting (pid: 10)
2020-07-17T17:11:56.216703+00:00 app[web.1]: Traceback (most recent call last):
2020-07-17T17:11:56.216722+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 209, in run  
2020-07-17T17:11:56.217083+00:00 app[web.1]: self.sleep()
2020-07-17T17:11:56.217103+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 357, in sleep2020-07-17T17:11:56.217371+00:00 app[web.1]: ready = select.select([self.PIPE[0]], [], [], 1.0)
2020-07-17T17:11:56.217374+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
2020-07-17T17:11:56.217570+00:00 app[web.1]: self.reap_workers()
2020-07-17T17:11:56.217589+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
2020-07-17T17:11:56.217883+00:00 app[web.1]: raise HaltServer(reason, self.WORKER_BOOT_ERROR)
2020-07-17T17:11:56.217955+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
2020-07-17T17:11:56.217956+00:00 app[web.1]:
2020-07-17T17:11:56.217957+00:00 app[web.1]: During handling of the above exception, another exception occurred:
2020-07-17T17:11:56.217957+00:00 app[web.1]:
2020-07-17T17:11:56.217960+00:00 app[web.1]: Traceback (most recent call last):
2020-07-17T17:11:56.217962+00:00 app[web.1]: File "/app/.heroku/python/bin/gunicorn", line 8, in <module>
2020-07-17T17:11:56.218106+00:00 app[web.1]: sys.exit(run())
2020-07-17T17:11:56.218125+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in run
2020-07-17T17:11:56.218261+00:00 app[web.1]: WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
2020-07-17T17:11:56.218280+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/base.py", line 228, in run 
2020-07-17T17:11:56.218515+00:00 app[web.1]: super().run()
2020-07-17T17:11:56.218519+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/base.py", line 72, in run  
2020-07-17T17:11:56.218664+00:00 app[web.1]: Arbiter(self).run()
2020-07-17T17:11:56.218688+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 229, in run  
2020-07-17T17:11:56.218881+00:00 app[web.1]: self.halt(reason=inst.reason, exit_status=inst.exit_status)
2020-07-17T17:11:56.218902+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 342, in halt 
2020-07-17T17:11:56.219155+00:00 app[web.1]: self.stop()
2020-07-17T17:11:56.219180+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 393, in stop 
2020-07-17T17:11:56.219420+00:00 app[web.1]: time.sleep(0.1)
2020-07-17T17:11:56.219443+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
2020-07-17T17:11:56.219621+00:00 app[web.1]: self.reap_workers()
2020-07-17T17:11:56.219624+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
2020-07-17T17:11:56.219929+00:00 app[web.1]: raise HaltServer(reason, self.WORKER_BOOT_ERROR)
2020-07-17T17:11:56.219977+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
2020-07-17T17:11:56.323176+00:00 heroku[web.1]: Process exited with status 1
2020-07-17T17:11:56.376185+00:00 heroku[web.1]: State changed from starting to crashed
2020-07-17T17:37:19.787362+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=infinite-river-34996.herokuapp.com request_id=002599d9-fe92-49d9-882d-4ebb8895d3cf fwd="85.26.165.149" dyno= connect= service= status=503 bytes= protocol=https        
2020-07-17T17:37:20.239168+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=infinite-river-34996.herokuapp.com request_id=57c9b160-4c50-435a-9f05-c1c74bb8f651 fwd="85.26.165.149" dyno= connect= service= status=503 bytes= protocol=https
  • Вопрос задан
  • 238 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
заюзай sqlite

ну или отдельно проверь все коннкшины, вне джанго
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы