[GoogleCloudPlatform] API Client Library를 사용하여 Google Cloud API 사용

소개


  • 예로 API Client Library for Python에서 Compute Engine API를 조작하는 방법을 설명합니다. 다른 언어나 Google Cloud API에서도 흐름은 비슷해야 합니다.

  • 예상되는 환경


  • Redhat 계열 Linux/MacOSX
  • Python 2.6, 2.7, 3.3, or 3.4 (2015/9 현재) 및 pip 도입
  • 이 기사를 작성하는 데 사용 된 검증 환경은 다음과 같습니다
  • $ cat /etc/redhat-release
    CentOS Linux release 7.1.1503 (Core)
    $ python -V
    Python 2.7.5
    $ pip -V
    pip 7.1.0 from /usr/lib/python2.7/site-packages (python 2.7)
    

    준비


  • API Client Library for Python을 설치합니다.
  • $ sudo pip install --upgrade google-api-python-client
    

  • (선택 사항) Google Cloud SDK를 설치합니다.
  • $ sudo curl https://sdk.cloud.google.com | bash
     → 途中の質問は全て Y またはデフォルト値のままでOK。
    $ exec -l $SHELL
    

  • 프로젝트의 Google Developer Console에서 "API 및 인증 - API - API 라이브러리"에서 "Compute Engine API"를 선택하여 API가 유효한지 확인합니다 (사용 안 함). 로 한다”라고 하는 버튼이 표시되므로, 클릭해 유효하게 한다).


  • 인증



    두 가지 방법을 설명합니다.

    1. 서비스 계정을 사용하는 방법



    내 google 계정 대신 애플리케이션용 계정을 만드는 방법 당연히 자신이 사용하는 어플리케이션용의 구조이므로, 사람에게 배포하거나 하지 않도록 주의.
  • 프로젝트의 Google Developer Console에서 "API 및 인증 - 자격 증명"에서 "자격 증명 추가 - 서비스 계정"을 선택합니다.

  • 키 유형에 "JSON"을 지정하고 "만들기"를 선택합니다.

  • "프로젝트 이름 -xxx.json"이라는 이름으로 자격 증명 파일이 다운로드되므로 API Client Library를 사용하는 호스트의 임의 경로에 저장합니다 (※ 취급주의 *).
  • 환경 변수 GOOGLE_APPLICATION_CREDENTIALS에 이전 자격 증명 파일의 경로를 설정합니다. 필요에 따라 .bash_profile 그 외에 기재해 두는 것이 좋다.
  • $ export GOOGLE_APPLICATION_CREDENTIALS='/xxx/xxx/プロジェクト名-xxx.json'
    

    2. gcloud 명령으로 인증하는 방법



    내 google 계정으로 인증하고 호스트에 자격 증명을 저장하는 방법
  • 다음 명령을 실행하여 호스트에 자격 증명을 설정합니다.
  • $ gcloud auth login
    Go to the following link in your browser:
    
        https://accounts.google.com/o/oauth2/auth?redirect_uri=xxx...
        → 表示されたURLに、自分のプロジェクトに対してアクセス権限があるgoogleアカウントでログインしたWebブラウザで接続する。
    
    Enter verification code: ※上記URLにて表示された認証コードを入力する
    Saved Application Default Credentials.
    

    동작 확인


  • 다음 샘플 코드를 저장한다.
  • 셰반 행은 환경에 맞게 변경
  • 3~6행은 코피페로 OK
  • 8 번째 줄부터 Compute Engine API를 사용하여 인스턴스 정보를 얻는 샘플


  • sample.py
     1  #!/usr/bin/python
     2
     3  from oauth2client.client import GoogleCredentials
     4  from googleapiclient.discovery import build
     5
     6  credentials = GoogleCredentials.get_application_default()
     7  
     8  compute = build('compute', 'v1', credentials=credentials)
     9  project = 'プロジェクトID'
    10  zone = 'ゾーン名'
    11  
    12  print compute.instances().list(project=project, zone=zone).execute()
    
  • 실행하고 GCE 인스턴스 정보가 어긋나게 표시되면 동작 확인 OK.
  • 여기까지 할 수 있으면 아무것도 무섭지 않다. 적절하게 참조 를 참조하면서 낯선 코드를 쓰는 것만.

  • 여담과 보충


  • 조금의 조작이라면 gcloud 커멘드로 부족하지만, 조금 신기한 것을 하고 싶어지는 경우도 있다.
  • 그러나 그 때문에 필요한 OAuth 인증의 수속이, 그렇다면 좋다고 포기하는 사람이 일정 수 있는 정도에는 귀찮았다(개인의 감상)가, 이 이야기( ぇtp//오오gぇcぉうdpぁtふぉrm잖아. bgs포 t. jp / 2015 / 07 / 아 p ぃ カ チ ー ー で ふぁ る l t c 레 덴 치 아 ls - 오 g ぇ. HTML) 이후 훨씬 편해지고 있어 고맙습니다.
  • 이 내용은 2015년 9월 시점의 것입니다. google 관련은 변화가 빠르기 때문에 뭔가 바뀌어도 초조하지 말고 최신의 1차 정보에 맞춰 주세요.


  • ※참고 문헌
    h tps : // c ぉ d. 오, ぇ. 코 m / 코 m 뿌테 / 도 CS
    htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m/아피-cぃ엔 t-ぃb등 ry/py 텐/? hl = 그럼

    좋은 웹페이지 즐겨찾기