Dataproc python API错误权限被拒绝

问题描述 投票:0回答:2

我尝试通过python API创建一个dataproc集群,我对包含凭证的json fle使用身份验证。

    app = Flask(__name__)

    # Explicitly use service account credentials by specifying the private key
    # file.
    credentials_gcp  = 
    service_account.Credentials.from_service_account_file('credentials.json')

    client = dataproc_v1.ClusterControllerClient(credentials = credentials_gcp)
    clustertest = {
    "project_id": "xxxx",
    "cluster_name": "testcluster",
     "config": {}
     }

    # launch cluster on Dataproc
    @app.route('/cluster/<project_id>/<region>/<clustername>', methods=['POST'])
    def cluster(project_id, region, clustername):
        response = client.create_cluster(project_id, 'regions/europe-west1-b', 
        clustertest)
        response.add_done_callback(callback)
        result = response.metadata()
        return jsonify(result)

我收到以下错误

google.api_core.exceptions.PermissionDenied:403对“ locations / regions / europe-west1”的权限被拒绝(或者可能不存在)

我不知道我是否没有正确的权限或语法错误

python-3.x google-cloud-platform google-cloud-dataproc
2个回答
1
投票

我设法在实例化客户端时通过添加区域来解决问题:

    your_region = "europe-west1"
    client_cluster = dataproc_v1.ClusterControllerClient(credentials = credentials_gcp, client_options = {'api_endpoint': f'{your_region}-dataproc.googleapis.com:443'})

0
投票

该错误表示您的项目无法使用该区域。但是,我认为问题在于如何将Dataproc区域指定为regions/europe-west1-b。相反,请尝试europe-west1

© www.soinside.com 2019 - 2024. All rights reserved.