GOOGLE_APPLICATION_CREDENTIALS 환경 변수 설정 방법 & Google Cloud API에 인증하는Python 코드 예시

 Google Cloud API를 사용하기 위해선 인증을 거쳐야 합니다. 구글 가이드에 서비스 어카운트 계정 키 파일 경로를 환경 변수로 설정하는 내용이 있는데 막상 따라하면 정상 동작하지 않습니다. 저만 그런 줄 알았는데 다른 분도 안되더군요. 그래서 여러 삽질 끝에 해결을 했고 공유하고자 합니다. 그리고 파이썬으로 인증하는 3가지 코드예시 올립니다. 

  • 구글 클라우드 API를 사용하려고 하면 인증을 해야 하는데 보통 코드에 서비스 어카운트 키를 넣고 아래와 같이 인증합니다. 

예시 1

예시 2


  • 서비스 어카운트 키를 환경 변수에 저장하면 조금 더 안전해지고 코드를 배포할 때도 좋습니다. 다만 구글 가이드 대로 따라하면 환경 변수 설정이 안됩니다. 저처럼 시행착오를 겪지마시라고 제가 한 방법을 공유합니다. 
환경 변수 설정 이후 코드

  • 구글 클라우드 가이드에 아래와 같이 파워쉘과 커맨드 프롬프트(cmd)에서 환경 변수를 설정하라고 합니다. 만약 가이드대로 설정이 되시면 아주 굿입니다. 하지만 저는 파워쉘과 cmd에서 여러가지 방법으로 시도해 봤지만 안됐습니다. 동료분도 안된다고 했습니다. 흥!  (OS와 시스템 설정에 따라 차이가 당연히 있습니다 :) )



*** 커맨드 프롬프트에서 set으로 설정하고 나면 설정은 되어있다고 확인이 됩니다. 하지만 코드를 실행하면 환경변수에 설정한 내용이 적용되지 않습니다. 재부팅을 하면 적용이 될까해서 재부팅을 하면 환경변수에 설정한 내용은 사라집니다. 이 부분은 구글 가이드에도 나옵니다. 세션마다 다시 설정해야 합니다. 개발 테스트하기에는 엄청 불편합니다! 

가이드대로 해도 에러가 뜸


  • 환경 변수를 편집하는 창을 엽니다. (저는 윈도우10을 사용중)





  • 사용자에 적용하실 거면 사용자 변수를, 시스템에 적용하실 거면 시스템 변수를 새로 만들어 추가하면 됩니다.  구글 클라우드 클라이언트 라이브러리가 코드에서 credential(사용자인증정보)를 찾다가 안보이면 알아서 환경 변수를 뒤집니다. 

** 위와 같이 설정하고 코드를 실행해도 안됩니다. 시스템을 재부팅하면 적용되고, 커맨드 창에서 set 을 입력하고 확인하면 잘 반영된 것이 보입니다. 

  • 구글 클라우드 API를 사용하기 위해 인증을 하는 파이썬 코드 예제입니다. 

Comments