#google-cloud-platform #nlp
#google-cloud-platform #nlp
Вопрос:
Мне нужно отправлять запросы из скрипта python, который размещен на уже созданном экземпляре Google Cloud Compute engine, в google cloud NLP API. Итак, я выполнил шаги, которые были необходимы для выполнения этой задачи.
- Я активировал NLP API для своего проекта, который также включает экземпляр виртуальной машины
- Я загрузил служебный ключ (в формате JSON) для учетной записи службы по умолчанию, которая была создана с помощью виртуальной машины (потому что я пытаюсь пройти аутентификацию с учетными данными приложения по умолчанию)
- Я установил переменную среды GOOGLE_APPLICATION_CREDENTIALS в путь к загруженным ключам
- Установлена клиентская библиотека Google Cloud для python
Затем я продолжил проверять, работают ли учетные данные, запустив пример с Google storage API, и он вернул пустой список, что означает, что он работал так, как предполагалось.
Но я получаю следующую ошибку при попытке выполнить вызовы NLP API
Traceback (most recent call last):
File "/home/user/anaconda3/lib/python3.7/site-
packages/google/api_core/grpc_helpers.py", line 57, in
error_remapped_callable
return callable_(*args, **kwargs)
File "/home/user/anaconda3/lib/python3.7/site-
packages/grpc/_channel.py", line 549, in __call__
return _end_unary_response_blocking(state, call, False, None)
File "/home/user/anaconda3/lib/python3.7/site-
packages/grpc/_channel.py", line 466, in _end_unary_response_blocking
raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with:
status = StatusCode.PERMISSION_DENIED
details = "Request had insufficient authentication scopes."
debug_error_string = "
{"created":"@1552931720.241957477","description":"Error received from peer","file":"src/core/lib/surface/call.cc","file_line":1039,"grpc_message":"Request had insufficient authentication scopes.","grpc_status":7}">
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/user/anaconda3/lib/python3.7/site-
packages/google/cloud/language_v1/gapic/language_service_client.py",
line 230, in analyze_sentiment
request, retry=retry, timeout=timeout, metadata=metadata
File "/home/user/anaconda3/lib/python3.7/site-
packages/google/api_core/gapic_v1/method.py", line 143, in __call__
return wrapped_func(*args, **kwargs)
File "/home/user/anaconda3/lib/python3.7/site-
packages/google/api_core/retry.py", line 270, in retry_wrapped_func
on_error=on_error,
File "/home/user/anaconda3/lib/python3.7/site-
packages/google/api_core/retry.py", line 179, in retry_target
return target()
File "/home/usere/anaconda3/lib/python3.7/site-
packages/google/api_core/timeout.py", line 214, in func_with_timeout
return func(*args, **kwargs)
File "/home/user/anaconda3/lib/python3.7/site-
packages/google/api_core/grpc_helpers.py", line 59, 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 Request had
insufficient authentication scopes.
Есть идеи, почему это происходит?