Machine learning Google Cloud AutoML中的身份验证问题

Machine learning Google Cloud AutoML中的身份验证问题,machine-learning,google-cloud-platform,nlp,google-cloud-storage,google-cloud-automl,Machine Learning,Google Cloud Platform,Nlp,Google Cloud Storage,Google Cloud Automl,我在做谷歌云实体提取的AutoML演示时遇到了一些身份验证问题。我使用他们提供的示例创建了模型,并创建和部署了我的模型。然而,我似乎无法真正获得我的数据。这是我正在使用的,这是我正在尝试运行的 我填写了正确的项目id和型号id,但问题是我似乎无法运行该程序而不出现以下错误: (venv) C:\Users\willi\Documents\machinelearningtest>py retrieveresult.py Traceback (most recent call last):

我在做谷歌云实体提取的AutoML演示时遇到了一些身份验证问题。我使用他们提供的示例创建了模型,并创建和部署了我的模型。然而,我似乎无法真正获得我的数据。这是我正在使用的,这是我正在尝试运行的

我填写了正确的项目id和型号id,但问题是我似乎无法运行该程序而不出现以下错误:

(venv) C:\Users\willi\Documents\machinelearningtest>py retrieveresult.py
Traceback (most recent call last):
  File "C:\Users\willi\Documents\machinelearningtest\venv\lib\site-packages\google\api_core\grpc_helpers.py", line 57, in error_remapped_callable
    return callable_(*args, **kwargs)
  File "C:\Users\willi\Documents\machinelearningtest\venv\lib\site-packages\grpc\_channel.py", line 824, in __call__
    return _end_unary_response_blocking(state, call, False, None)
  File "C:\Users\willi\Documents\machinelearningtest\venv\lib\site-packages\grpc\_channel.py", line 726, in _end_unary_response_blocking
    raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
        status = StatusCode.PERMISSION_DENIED
        details = "The caller does not have permission"
        debug_error_string = "{"created":"@1578714342.247000000","description":"Error received from peer ipv4:172.217.14.74:443","file":"src/core/lib/surface/call.cc","file_line":1056,"grpc_message":"The caller does not have permission","grpc_status":7}"
>

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "retrieveresult.py", line 20, in <module>
    response = prediction_client.predict(model_full_id, payload)
  File "C:\Users\willi\Documents\machinelearningtest\venv\lib\site-packages\google\cloud\automl_v1\gapic\prediction_service_client.py", line 322, in predict
    return self._inner_api_calls["predict"](
  File "C:\Users\willi\Documents\machinelearningtest\venv\lib\site-packages\google\api_core\gapic_v1\method.py", line 143, in __call__
    return wrapped_func(*args, **kwargs)
  File "C:\Users\willi\Documents\machinelearningtest\venv\lib\site-packages\google\api_core\retry.py", line 281, in retry_wrapped_func
    return retry_target(
  File "C:\Users\willi\Documents\machinelearningtest\venv\lib\site-packages\google\api_core\retry.py", line 184, in retry_target
    return target()
  File "C:\Users\willi\Documents\machinelearningtest\venv\lib\site-packages\google\api_core\timeout.py", line 214, in func_with_timeout
    return func(*args, **kwargs)
  File "C:\Users\willi\Documents\machinelearningtest\venv\lib\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 The caller does not have permission
(venv)C:\Users\willi\Documents\machinelearningtest>py retrieveresult.py
回溯(最近一次呼叫最后一次):
文件“C:\Users\willi\Documents\machinelearningtest\venv\lib\site packages\google\api\u core\grpc\u helpers.py”,第57行,出现错误\u重新映射\u可调用
返回可调用函数(*args,**kwargs)
文件“C:\Users\willi\Documents\machinelearningtest\venv\lib\site packages\grpc\\ u channel.py”,第824行,在调用中__
返回\u结束\u一元\u响应\u阻塞(状态、调用、错误、无)
文件“C:\Users\willi\Documents\machinelearningtest\venv\lib\site packages\grpc\\ u channel.py”,第726行,在一元响应中
raise\u InactiveRpcError(状态)
grpc.\u信道。\u不活动覆盖PCERROR:
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“retrieveresult.py”,第20行,在
响应=预测\u客户端.predict(模型\u完整\u id,有效负载)
文件“C:\Users\willi\Documents\machinelearningtest\venv\lib\site packages\google\cloud\automl\u v1\gapic\prediction\u service\u client.py”,第322行,在predict中
返回self.\u内部\u api\u调用[“预测”](
文件“C:\Users\willi\Documents\machinelearningtest\venv\lib\site packages\google\api\u core\gapic\u v1\method.py”,第143行,在调用中__
返回包装函数(*args,**kwargs)
文件“C:\Users\willi\Documents\machinelearningtest\venv\lib\site packages\google\api\u core\retry.py”,第281行,在retry\u wrapped\u func中
返回重试\u目标(
文件“C:\Users\willi\Documents\machinelearningtest\venv\lib\site packages\google\api\u core\retry.py”,第184行,在retry\u目标中
返回目标()
文件“C:\Users\willi\Documents\machinelearningtest\venv\lib\site packages\google\api\u core\timeout.py”,第214行,在func\u中带有\u timeout
返回函数(*args,**kwargs)
文件“C:\Users\willi\Documents\machinelearningtest\venv\lib\site packages\google\api\u core\grpc\u helpers.py”,第59行,出现错误\u重新映射\u可调用
六、从(例外情况。从grpc错误(exc),exc)
文件“”,第3行,从
google.api_core.exceptions.PermissionDenied:403调用方没有权限
我不知道如何使用代码中的服务帐户来获得权限…是否可以获取一些指针?这是我第一次使用类似的东西。

来自官方GCP:

  • 确保已为项目启用AutoML API-

  • 创建一个用于身份验证的帐户-服务帐户是AutoML API可用的唯一身份验证选项

  • 为该服务帐户创建和下载

  • GOOGLE\u APPLICATION\u CREDENTIALS
    环境变量设置为创建服务帐户时下载的服务帐户密钥文件的路径:

    • export GOOGLE\u APPLICATION\u CREDENTIALS=key file
  • PROJECT\u ID
    环境变量设置为您的项目ID。AutoML API调用和资源名称包含您的项目ID。PROJECT\u ID环境变量提供了一种方便的方法来指定ID:

    • export PROJECT\u ID=您的项目ID
  • 如果您是项目的所有者,请将您的服务帐户添加到AutoML编辑器IAM角色,将“服务帐户名称”替换为新服务帐户的名称。例如,
    service-account1@myproject.iam.gserviceaccount.com



  • 如果您不是项目所有者,请要求项目所有者将您的用户ID和服务帐户添加到AutoML编辑器IAM角色中

  • 如何设置应用程序的服务帐户?为服务帐户分配了哪些角色?请编辑问题并提供更多详细信息。您没有在代码中指定服务帐户,因此这意味着您正在使用ADC(应用程序默认凭据)库正在为您查找凭据。Google搜索Google Cloud ADC并按照文档进行安装。
    gcloud auth login
    gcloud projects add-iam-policy-binding $PROJECT_ID \
       --member="serviceAccount:service-account-name" \
       --role="roles/automl.editor"