403 Отсутствует или недостаточно разрешений - PullRequest
0 голосов
/ 10 октября 2018

Я использую эмулятор хранилища данных.Когда я запускаю команду «dev_appserver.py app.yaml», я получаю эту ошибку

403 Отсутствует или недостаточно разрешений.

Это предупреждение, которое я получаю.Я знаю, что есть проблема с аутентификацией.Я прошел через это .Но не смог найти решение.

Некоторые детали:

  1. Я использую базы данных MySQL для некоторых приложений.

  2. Для других я хочу использовать хранилище данных.

  3. Я запускаю эмулятор хранилища данных на одной вкладке, прокси-сервер Google на другой, dev_appserver на третьей.

  4. Я установил переменные окружения с помощью команды gcloud beta эмуляторы datastore env-init.

Мои настройки.py

if os.getenv('GAE_APPLICATION', None):
# Running on production App Engine, so connect to Google Cloud SQL using
# the unix socket at /cloudsql/<your-cloudsql-connection string>
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '/cloudsql/connectionname',
        'NAME': 'db_name',
        'USER': 'username',
        'PASSWORD': 'password',
    }
}
else:
# Running locally so connect to either a local MySQL instance or connect to
# Cloud SQL via the proxy. To start the proxy via command line:
#
#     $ cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME]=tcp:3306
#
# See https://cloud.google.com/sql/docs/mysql-connect-proxy
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',
        'PORT': '3307',
        'NAME': 'dbname',
        'USER': 'username',
        'PASSWORD': 'password',
    }
}    
# [END db_setup]

Мое приложение.yaml

runtime: python37

handlers:
- url: /static
  static_dir: static/
- url: /.*
  script: auto

Технологический фон:

Django 2.1 Python 3.5.2

Трассировка стека:

Traceback (most recent call last):
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/django/core/handlers/base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/django/core/handlers/base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/salman/chaipani_env/project_chaipani/chaipani/views.py", line 20, in post_new
    post = models.insert(data)
  File "/home/salman/chaipani_env/project_chaipani/chaipani/models.py", line 15, in insert
    client.put(entity)
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/cloud/datastore/client.py", line 404, in put
    self.put_multi(entities=[entity])
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/cloud/datastore/client.py", line 431, in put_multi
    current.commit()
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/cloud/datastore/batch.py", line 273, in commit
    self._commit()
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/cloud/datastore/batch.py", line 249, in _commit
    self.project, mode, self._mutations, transaction=self._id)
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/cloud/datastore_v1/gapic/datastore_client.py", line 426, in commit
    request, retry=retry, timeout=timeout, metadata=metadata)
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/api_core/gapic_v1/method.py", line 139, in __call__
    return wrapped_func(*args, **kwargs)
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/api_core/retry.py", line 260, in retry_wrapped_func
    on_error=on_error,
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/api_core/retry.py", line 177, in retry_target
    return target()
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/api_core/timeout.py", line 206, in func_with_timeout
    return func(*args, **kwargs)
  File "/tmp/tmpIZrOSY/lib/python3.5/site-packages/google/api_core/grpc_helpers.py", line 61, in error_remapped_callable
    six.raise_from(exceptions.from_grpc_error(exc), exc)
  File "<string>", line 3, in raise_from
google.api_core.exceptions.PermissionDenied: 403 Missing or insufficient permissions.
INFO     2018-10-10 10:51:26,298 module.py:880] default: "POST /users/post/new/ HTTP/1.1" 500 133823

1 Ответ

0 голосов
/ 31 октября 2018

Похоже, что вашей учетной записи службы по умолчанию не хватает прав.Это может потребовать некоторых дополнительных разрешений, таких как «Администратор индекса хранилища данных» для вывода через хранилище данных [1].Я не уверен, как это будет работать в эмуляторе Datastore, но, поскольку он нацелен на обеспечение локальной эмуляции, возможно, он получит роли и разрешение на выполнение теста.Не могли бы вы проверить разрешения в вашей учетной записи службы [2], изменить при необходимости и сообщить мне, если проблема не устранена.Я буду ждать вашего ответа.

[1] https://cloud.google.com/appengine/docs/flexible/nodejs/granting-project-access#before_you_begin [2] https://cloud.google.com/iam/docs/granting-roles-to-service-accounts

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