我尝试通过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”的权限被拒绝(或者可能不存在)
我不知道我是否没有正确的权限或语法错误
我设法在实例化客户端时通过添加区域来解决问题:
your_region = "europe-west1"
client_cluster = dataproc_v1.ClusterControllerClient(credentials = credentials_gcp, client_options = {'api_endpoint': f'{your_region}-dataproc.googleapis.com:443'})
该错误表示您的项目无法使用该区域。但是,我认为问题在于如何将Dataproc区域指定为regions/europe-west1-b
。相反,请尝试europe-west1