0

Google은 클라우드 스패너 인스턴스와 데이터베이스를 Google 클라우드 콘솔에 생성했습니다.서비스 계정을 사용하여 Google Cloud Spanner 데이터베이스 목록에 액세스

다음 코드 스 니펫이 실행 중입니다.

def getDatabaseList(self,): 
    try: 
     parent = "projects/"+self._PROJECT_NAME + "/instances/" + self._INSTANCE_NAME 
     response = self.service.projects().instances().databases().list(parent=parent).execute() 
    except Exception, e: 
     logging.info("Exception while getDatabaseList %s", e) 
     return False 
    return response 

위의 코드 스 니펫은 self.service가 object googleapiclinet 라이브러리 빌드 객체입니다.

위의 코드 스 니펫을 서비스 계정 ID를 사용하여 실행하는 동안 예외가 발생하지 않습니다.

Exception while getDatabaseList <HttpError 403 when requesting https://spanner.googleapis.com/v1/projects/<projectName>/instances/<instanceName>/databases?alt=json&key=<APIKEY> 

returned "Resource projects/<projectName>/instances/<instanceName> is missing IAM permission: spanner.databases.list."> 

참조 문서 cloud spanner IAM

답변

0
후반

조금씩, 그러나 희망이 있습니다 : 당신은 제대로 서비스 계정의 JSON 파일에 경로를 설정 했습니까? 나는 내가 env 키를 놓친 것을 알기 전까지 허가를 가지고 노는 반나절을 낭비했다.

set export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service_account/key.json