2016-06-13 4 views
0

Google은 빅 데이터 분석을 위해 GoogleCloudPlatform을 사용하고 있습니다. 처리를 위해 Google은 현재 google cloud dataproc & spark-streaming을 사용하고 있습니다.Dataproc : REST API를 통해 스파크 작업 제출

REST API를 사용하여 Spark 작업을 제출하고 싶지만 api-key를 사용하여 URI를 호출 할 때 아래 오류가 발생합니다!

{ 
    "error": { 
    "code": 403, 
    "message": "The caller does not have permission", 
    "status": "PERMISSION_DENIED" 
    } 
} 

URI : - https://dataproc.googleapis.com/v1/projects/orion-0010/regions/us-central1-f/clusters/spark-recon-1?key=AIzaSyA8C2lF9kT가 ************* SGxAipL0

나는 구글 콘솔에서 API> API 관리자를 생성

답변

2

API 키를 사용할 수 있지만를 개발자 프로젝트와 통화를 연결하기 위해 실제로는 권한 부여에 사용되지 않습니다. Dataproc의 REST API는 Google Cloud Platform에서 청구 가능한 대부분의 REST API와 마찬가지로 oauth2을 인증 및 권한 부여에 사용합니다. 프로그래밍 방식으로 API를 호출하려는 경우 과 같은 클라이언트 라이브러리 중 하나를 사용하여 낮은 수준의 JSON 프로토콜과 함께 편리한 래퍼를 제공하고 handy thick libraries for using oauth2 credentials을 제공 할 수 있습니다.

Google의 API explorer을 사용하여 직접 REST API를 실험 해 볼 수 있습니다.이 경우 오른쪽 상단의 'OAuth 2.0을 사용하여 요청 권한 부여'버튼을 클릭해야합니다.

Dataproc URI에 대해 regions/ 경로 아래에서 us-central1-f를 사용하는 것으로 나타났습니다. Dataproc의 지역은 Compute Engine 영역 또는 지역과 일대일로 매핑되지 않습니다. 오히려 Dataproc 영역에는 각각 여러 Compute Engine 영역 또는 영역이 포함됩니다. 현재이라고하는 Dataproc 영역이 공개적으로 제공되며 클러스터를 모든 Compute Engine 영역에 배포 할 수 있습니다. 약에 (

PROJECT='<YOUR PROJECT HERE>' 
ACCESS_TOKEN=$(gcloud beta auth application-default print-access-token) 
curl \ 
    --header "Authorization: Bearer ${ACCESS_TOKEN}" \ 
    --header "Content-Type: application/json" \ 
    https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/global/clusters 

자연이 만료하여 ACCESS_TOKEN 여기 gcloud 인쇄 있음을 명심하십시오 : 당신이 gcloud CLI가 설치되어있는 경우 oauth2 액세스 토큰이 사용하기 쉬운 설명을 위해, 당신은 단순히 gcloud과 함께 curl을 사용할 수 있습니다 내가 정확히 기억한다면 5 분; 핵심 개념은 각 요청에 대해 HTTP 헤더에서 전달하는 토큰은 일반적으로 "수명이 짧은"토큰이 될 것이고 디자인에 따라 "토큰 새로 고침"을 사용하여 액세스 토큰이 만료 될 때마다 새 토큰을 별도로 가져 오는 코드를 갖게됩니다. "; 이는 실수로 수명이 긴 자격 증명을 손상시키지 않도록 보호합니다. 이 "새로 고침"흐름은 두꺼운 인증 라이브러리가 후드에서 처리하는 부분입니다.

관련 문제