Google Cloud 프로젝트에서 API 호출

1. 시작하기 전에

이 Codelab에서는 Google Cloud 프로젝트를 만든 다음 이 프로젝트에서 Google Cloud API를 호출하는 방법을 보여줍니다.

기본 요건

  • Google Cloud 콘솔을 탐색할 수 있습니다.

학습할 내용

  • Google Cloud 프로젝트를 만드는 방법
  • 결제 계정을 설정하는 방법입니다.
  • Cloud Shell을 설정하는 방법
  • API를 사용 설정하는 방법
  • API 키로 API를 승인하는 방법
  • 서비스 계정으로 API를 승인하는 방법

필요한 항목

2. 설정

이 섹션에서는 Google Cloud 프로젝트를 만들고, 결제 계정을 설정하고, Cloud Shell을 설정하는 방법을 보여줍니다.

Google Cloud 프로젝트 만들기 및 결제 계정 설정

  1. Cloud 콘솔에 로그인하고 프로젝트를 선택하거나 만듭니다.

Google Cloud의

새 프로젝트 창

프로젝트 이름, 조직, 위치 필드가 표시된 새 프로젝트 창

프로젝트 이름 필드 아래에 표시되는 프로젝트 ID를 기억해 두세요. ID는 모든 Google Cloud 프로젝트에서 고유한 이름이며 (위 이름은 이미 사용 중임) 이 Codelab의 후반부에서 PROJECT_ID로 참조됩니다.

  1. 다음으로 Google Cloud 리소스를 사용할 수 있도록 Cloud 콘솔에서 결제를 사용 설정합니다.

이 Codelab은 많은 비용이 들지 않지만 비용이 많이 드는 경우 삭제 섹션의 안내에 따라 리소스를 종료하고 이 Codelab 이후의 비용을 피하세요. Google Cloud 신규 사용자는 $300(미화)의 무료 체험판을 사용할 수 있습니다.

Cloud Shell 설정

이 Codelab에서는 Google Cloud에서 실행되는 명령줄 환경인 Cloud Shell을 사용합니다. Cloud Shell은 필요한 모든 개발 도구가 들어 있는 Debian 기반 가상 머신입니다. 5GB의 영구적인 홈 디렉터리를 제공하여 네트워크 성능과 인증을 크게 향상시킵니다. 즉, 이 Codelab에서는 브라우저만 있으면 됩니다.

Cloud 콘솔에서 Cloud Shell을 활성화하려면 다음 안내를 따르세요.

  1. a8460e837e9f5fda.png Cloud Shell 활성화를 클릭합니다.

환경을 프로비저닝하고 연결하는 데 몇 분 정도 걸릴 수 있습니다.

Cloud Shell 활성화 옵션

명령줄 프롬프트를 보여주는 Cloud Shell

Cloud Shell에 연결되면 인증이 완료되었고 프로젝트가 PROJECT_ID로 이미 설정된 것을 확인할 수 있습니다.

  1. 인증된 계정 목록을 생성합니다.
gcloud auth list

다음과 같은 출력이 표시됩니다.

Credentialed accounts:
 - <MY_ACCOUNT>@<MY_DOMAIN>.com (active)
  1. 프로젝트 목록을 보려면 다음 명령어를 입력합니다.
gcloud config list project

다음과 같은 출력이 표시됩니다.

[core]
project = <PROJECT_ID>

어떤 이유로 프로젝트가 설정되지 않은 경우 다음 명령어를 실행하여 프로젝트를 설정하세요.

gcloud config set project <PROJECT_ID>

PROJECT_ID는 설정 단계에서 사용한 ID입니다. Cloud 콘솔 대시보드에서 확인할 수도 있습니다.

프로젝트 ID를 보여주는 프로젝트 정보 창

또한 Cloud Shell은 기본적으로 몇 가지 환경 변수를 설정하므로 이후 명령어를 실행할 때 유용할 수 있습니다.

  1. 프로젝트 ID를 보려면 다음 명령어를 입력합니다.
echo $GOOGLE_CLOUD_PROJECT

다음과 같은 출력이 표시됩니다.

<PROJECT_ID>
  1. 마지막으로 기본 영역 및 프로젝트 구성을 설정합니다.
gcloud config set compute/zone us-central1-f

다양한 영역을 선택할 수 있습니다. 자세한 내용은 리전 및 영역을 참조하세요.

3. 프로젝트에서 API 호출

이 Codelab에서는 예시 API(Natural Language API)를 사용하여 텍스트에서 인물, 장소, 이벤트 등의 항목을 찾는 방법과 텍스트의 감정(호감도 수준)을 추정하는 방법을 보여줍니다. 다음 작업을 수행하는 방법을 알아봅니다.

  • Google Cloud APIs를 사용 설정합니다.
  • API 키 및 서비스 계정으로 API에 대한 승인을 받습니다.
  • curl 및 클라이언트 라이브러리를 사용하여 API를 호출합니다.

API 사용 설정

  1. API 및 서비스를 클릭합니다.

API 및 서비스 옵션.

  1. 화면 상단에서 + API 및 서비스 사용 설정을 선택합니다.

API 및 서비스 사용 설정 옵션

  1. 이 시점에서 API를 필터링 및 탐색하거나 검색 상자를 사용하여 API로 직접 이동할 수 있습니다. Natural Language를 검색하고 Cloud Natural Language API를 선택합니다.

사용 설정 및 이 API 사용해 보기 버튼이 표시된 Cloud Natural Language API 창

  1. 이 API 사용해 보기를 클릭합니다.

이 API 사용해 보기 버튼이 표시되지 않으면 나열된 메서드 중 하나를 클릭하여 해당 메서드를 시도합니다.

API 키 만들기

curl를 사용하여 Natural Language API에 요청을 전송하기 때문에 요청 URL에 전달할 API 키를 생성해야 합니다.

  1. Cloud 콘솔에서 탐색 메뉴 > API 및 서비스 > 사용자 인증 정보.

API 및를 보여주는 탐색 메뉴 서비스 및 사용자 인증 정보 옵션

  1. 사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.

사용자 인증 정보 및 API 키 만들기 옵션을 보여주는 사용자 인증 정보 창

  1. 생성된 API 키를 복사한 후 닫기를 클릭합니다.

API 키를 사용하여 API 호출

  1. Cloud Shell 명령줄에서 API 키를 내보냅니다.
export API_KEY=<YOUR_API_KEY>

<YOUR_API_KEY>를 이전에 생성한 키로 바꿉니다.

  1. Cloud Shell 편집기에서 또는 Vim 또는 Emacs와 같은 Linux 편집기를 사용하여 API 요청을 만듭니다. 매개변수에 대한 자세한 내용은 메서드: documents.analyzeEntities에서 확인할 수 있습니다. 출력을 request.json 파일에 저장합니다.
{
  "document":{
    "type":"PLAIN_TEXT",
    "content":"Google, headquartered in Mountain View (1600 Amphitheatre Pkwy, Mountain View, CA 940430), unveiled the new Android phone for $799 at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones."
  },
  "encodingType":"UTF8"
}
  1. 요청 정보로 API를 호출합니다.
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \
  -s -X POST -H "Content-Type: application/json" --data-binary @request.json
  1. 명령어를 다시 실행하고 출력을 파일로 리디렉션한 후 결과를 검토합니다. JSON 파일 출력에 관한 세부정보도 메서드: documents.analyzeEntities에 있습니다.
  2. request.json 파일에서 분석할 텍스트를 변경하려면 content 값을 원하는 텍스트로 바꿉니다.

4. 서비스 계정으로 승인

서비스 계정은 인증과 승인을 모두 제공하므로 API 키보다 선호되는 경우가 많습니다. 서비스 계정은 앱의 이메일 주소라고 생각하면 됩니다.

  1. 사용자 인증 정보 섹션으로 돌아가서 API 및 서비스 메뉴에서 찾을 수 있습니다.
  2. 사용자 인증 정보 만들기를 선택하되 이번에는 서비스 계정을 선택합니다.

서비스 계정 세부정보 창

  1. 'Natural Language Service Account'와 같이 목적을 설명하는 서비스 계정 이름을 입력합니다. 시스템에서 ID를 제안합니다. 설명도 추가할 수 있습니다. 서비스 계정에 대해 자세히 살펴보면서 서비스 계정에 프로젝트 액세스 권한을 제공하고 사용자에게 서비스 계정에 대한 액세스 권한을 부여합니다. 하지만 지금은 완료를 클릭하여 서비스 계정을 만듭니다.
  2. 사용할 서비스 계정의 키 쌍을 만들려면 d489bd059474ae59.png 아이콘을 클릭하여 서비스 계정을 수정합니다.

계정 목록을 보여주는 서비스 계정 창

서비스 계정의 세부정보가 표시됩니다.

Natural Language 서비스 계정의 세부정보를 보여주는 서비스 계정 세부정보 창

  1. 서비스 계정의 이메일 주소를 복사하고 Cloud Shell로 돌아갑니다.
  2. Cloud Shell에서 서비스 계정의 키 쌍을 만들고 환경 변수가 이를 가리키도록 설정합니다.
gcloud iam service-accounts keys create ~/key.json \
  --iam-account <your service account email>
export GOOGLE_APPLICATION_CREDENTIALS="/home/$USER/key.json"

Google Cloud는 이 환경 변수를 사용하여 사용자 인증 정보를 찾으므로 API 호출에 사용자 인증 정보를 포함할 필요가 없습니다.

  1. 이제 다음 명령어를 사용하여 API를 호출할 수 있습니다.
gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'." 

결과는 전과 같아야 합니다.

많은 API에는 이러한 세부정보를 추출하는 광범위한 클라이언트 라이브러리가 있습니다. 클라이언트 라이브러리에 대한 자세한 내용은 Cloud 클라이언트 라이브러리를 참조하세요. 또한 사용하는 API에 대한 문서를 읽어보고 어떤 클라이언트 라이브러리를 사용할 수 있는지 알아볼 수 있습니다.

5. 삭제

프로젝트에 무제한 API 키를 사용하는 것은 좋지 않습니다. 누군가 액세스 권한을 받으면 추가 인증 없이 사용할 수 있습니다.

이 API 키를 삭제하는 방법은 다음과 같습니다.

  1. f6b6844bf5688982.png 탐색 메뉴 > API 및 서비스 > 사용자 인증 정보.
  2. API 키에서 삭제할 키를 선택하고 247adf2e1d1eae4b.png삭제를 클릭합니다.
  3. 마찬가지로 서비스 계정 비공개 키가 보호되지 않을까 걱정하지 않으려면 서비스 계정에서 삭제할 서비스 계정을 선택한 다음 247adf2e1d1eae4b.png삭제를 클릭합니다.

6. 축하합니다

축하합니다. Google Cloud 프로젝트를 만드는 방법과 프로젝트 내에서 API를 호출하는 방법을 알아봤습니다.