google.api_core.exceptions: 403 Вызывающий не имеет разрешения - PullRequest
0 голосов
/ 31 октября 2019

Я использую Google Cloud Autl Table API, и когда я выполняю URL-запрос к методу, он выдает мне эту ошибку:

google.api_core.exceptions.PermissionDenied: 403 Вызывающая сторона неу вас есть разрешение

параметры верны, поэтому почему я показываю эту ошибку!

   @app.route('/model_train',methods=['GET','POST'])
def model_train():

    project_id = 'myproject'
    compute_region = 'us-central1'
    model_id = 'TBL7912987273010'
    file_path = 'E:/downloads/Dataset-entrainement-demain_ai_demonstrateur_attrition_Oct19_Copie.csv'
    score_threshold = '0.5'

    automl_client = automl.AutoMlClient()

    model_full_id = automl_client.model_path(
        project_id, compute_region, model_id
    )

    prediction_client = automl.PredictionServiceClient()

    params = {}
    if score_threshold:
        params = {"score_threshold": score_threshold}

    with open(file_path, "rt") as csv_file:
        content = csv.reader(csv_file)
        for row in content:
            values = []
            for column in row:
                values.append({'number_value': float(column)})
            payload = {
                'row': {'values': values}
            }

            response = prediction_client.predict(model_full_id, payload)
            print("Prediction results:")
            for result in response.payload:
                print("Predicted class name: {}".format(result.display_name))
                print("Predicted class score: {}".format(result.classification.score))

Может кто-нибудь помочь мне, пожалуйста!

1 Ответ

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

При добавлении официального ответа, в основном проблема заключается в разрешениях, установленных для учетной записи пользователя в разделе GCP IAM. Во-первых, API-интерфейс automl должен быть включен для проекта здесь

Затем необходимо создать учетные данные и передать их как переменные среды. Вы можете добавить переменные окружения вверху файла, используя библиотеку os:

import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/path/to/file.json"
...