Google Cloud Platform에서 Python 사용

무료로 사용해 보기 문서 보기

확장성 있게 Python 앱을 제작, 배포, 모니터링하세요. Google의 API를 사용하여 데이터에서 활용 가능한 분석 정보를 얻을 수 있습니다.

  • 트래픽에 따라 용량을 동적으로 확장 또는 축소
  • 컨테이너식 애플리케이션 제작, 배포, 관리
  • 신속하게 문제 디버깅 및 수정
  • 맞춤 가상 머신 프로비저닝 또는 서버리스 도입
  • 강력한 API를 사용하여 머신러닝 모델 제작 또는 데이터 분석 수행
개발자와 데이터과학자 모두를 위한 광범위한 Python API 및 라이브러리
Cloud Storage에서 데이터 저장 및 검색
BigQuery를 사용하여 공개 데이터 쿼리
Cloud Vision API로 이미지 분석
Cloud Natural Language API를 사용하여 텍스트에서 의미 추출
Cloud Storage에서 데이터 저장 및 검색
1
설치
pip install google-cloud-storage
2
Cloud Platform Console 프로젝트 설정
  1. Google 계정에 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. {% dynamic if "no_credentials" in setvar.task_params %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic if not setvar.redirect_url %}{% dynamic setvar redirect_url %}https://console.cloud.google.com{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if setvar.in_henhouse_no_auth_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic endif %}{% dynamic elif setvar.in_henhouse_service_account_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}SERVICE_ACCOUNT{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if not setvar.service_account_roles and setvar.credential_type == "SERVICE_ACCOUNT" %}{% dynamic setvar service_account_roles %}{% dynamic endsetvar %}{% dynamic endif %}{% dynamic setvar console %}{% dynamic if "no_steps" not in setvar.task_params %}
  3. {% dynamic endif %}{% dynamic if setvar.api_list %}{% dynamic if setvar.in_henhouse_no_auth_whitelist or setvar.in_henhouse_service_account_whitelist %}GCP Console 프로젝트를 설정합니다.

    프로젝트 설정

    다음을 수행하려면 클릭:

    • 프로젝트를 만들거나 선택합니다.
    • 해당 프로젝트에 {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} API{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다.
    • {% dynamic if setvar.credential_type == 'SERVICE_ACCOUNT' %}
    • 서비스 계정을 만듭니다.
    • 비공개 키를 JSON으로 다운로드합니다.
    • {% dynamic endif %}

    언제든지 GCP Console에서 이 리소스를 보고 관리할 수 있습니다.

    {% dynamic else %}{% dynamic if "no_text" not in setvar.task_params %}{% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} APIs{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다. {% dynamic endif %}

    {% dynamic if "," in setvar.api_list %} APIs{% dynamic else %} API{% dynamic endif %} 사용 설정

    {% dynamic endif %}{% dynamic endif %}{% dynamic if "no_steps" not in setvar.task_params %}
  4. {% dynamic endif %}{% dynamic endsetvar %}{% dynamic print setvar.console %}
3
코드를 작성합니다.
from google.cloud import storage

def upload_blob(bucket_name, source_file_name, destination_blob_name):
    """Uploads a file to the bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(destination_blob_name)

    blob.upload_from_filename(source_file_name)

    print('File {} uploaded to {}.'.format(
        source_file_name,
        destination_blob_name))
BigQuery를 사용하여 공개 데이터 쿼리
1
설치
pip install google-cloud-bigquery
2
Cloud Platform Console 프로젝트 설정
  1. Google 계정에 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. {% dynamic if "no_credentials" in setvar.task_params %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic if not setvar.redirect_url %}{% dynamic setvar redirect_url %}https://console.cloud.google.com{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if setvar.in_henhouse_no_auth_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic endif %}{% dynamic elif setvar.in_henhouse_service_account_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}SERVICE_ACCOUNT{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if not setvar.service_account_roles and setvar.credential_type == "SERVICE_ACCOUNT" %}{% dynamic setvar service_account_roles %}{% dynamic endsetvar %}{% dynamic endif %}{% dynamic setvar console %}{% dynamic if "no_steps" not in setvar.task_params %}
  3. {% dynamic endif %}{% dynamic if setvar.api_list %}{% dynamic if setvar.in_henhouse_no_auth_whitelist or setvar.in_henhouse_service_account_whitelist %}GCP Console 프로젝트를 설정합니다.

    프로젝트 설정

    다음을 수행하려면 클릭:

    • 프로젝트를 만들거나 선택합니다.
    • 해당 프로젝트에 {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} API{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다.
    • {% dynamic if setvar.credential_type == 'SERVICE_ACCOUNT' %}
    • 서비스 계정을 만듭니다.
    • 비공개 키를 JSON으로 다운로드합니다.
    • {% dynamic endif %}

    언제든지 GCP Console에서 이 리소스를 보고 관리할 수 있습니다.

    {% dynamic else %}{% dynamic if "no_text" not in setvar.task_params %}{% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} APIs{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다. {% dynamic endif %}

    {% dynamic if "," in setvar.api_list %} APIs{% dynamic else %} API{% dynamic endif %} 사용 설정

    {% dynamic endif %}{% dynamic endif %}{% dynamic if "no_steps" not in setvar.task_params %}
  4. {% dynamic endif %}{% dynamic endsetvar %}{% dynamic print setvar.console %}
3
코드를 작성합니다.
from google.cloud import bigquery

def query_stackoverflow():
    client = bigquery.Client()
    query_job = client.query("""
        SELECT
          CONCAT(
            'https://stackoverflow.com/questions/',
            CAST(id as STRING)) as url,
          view_count
        FROM `bigquery-public-data.stackoverflow.posts_questions`
        WHERE tags like '%google-bigquery%'
        ORDER BY view_count DESC
        LIMIT 10""")

    results = query_job.result()  # Waits for job to complete.

    for row in results:
        print("{} : {} views".format(row.url, row.view_count))

if __name__ == '__main__':
    query_stackoverflow()
Cloud Vision API로 이미지 분석
1
설치
pip install google-cloud-vision
2
Cloud Platform Console 프로젝트 설정
  1. Google 계정에 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. {% dynamic if "no_credentials" in setvar.task_params %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic if not setvar.redirect_url %}{% dynamic setvar redirect_url %}https://console.cloud.google.com{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if setvar.in_henhouse_no_auth_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic endif %}{% dynamic elif setvar.in_henhouse_service_account_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}SERVICE_ACCOUNT{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if not setvar.service_account_roles and setvar.credential_type == "SERVICE_ACCOUNT" %}{% dynamic setvar service_account_roles %}{% dynamic endsetvar %}{% dynamic endif %}{% dynamic setvar console %}{% dynamic if "no_steps" not in setvar.task_params %}
  3. {% dynamic endif %}{% dynamic if setvar.api_list %}{% dynamic if setvar.in_henhouse_no_auth_whitelist or setvar.in_henhouse_service_account_whitelist %}GCP Console 프로젝트를 설정합니다.

    프로젝트 설정

    다음을 수행하려면 클릭:

    • 프로젝트를 만들거나 선택합니다.
    • 해당 프로젝트에 {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} API{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다.
    • {% dynamic if setvar.credential_type == 'SERVICE_ACCOUNT' %}
    • 서비스 계정을 만듭니다.
    • 비공개 키를 JSON으로 다운로드합니다.
    • {% dynamic endif %}

    언제든지 GCP Console에서 이 리소스를 보고 관리할 수 있습니다.

    {% dynamic else %}{% dynamic if "no_text" not in setvar.task_params %}{% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} APIs{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다. {% dynamic endif %}

    {% dynamic if "," in setvar.api_list %} APIs{% dynamic else %} API{% dynamic endif %} 사용 설정

    {% dynamic endif %}{% dynamic endif %}{% dynamic if "no_steps" not in setvar.task_params %}
  4. {% dynamic endif %}{% dynamic endsetvar %}{% dynamic print setvar.console %}
3
코드를 작성합니다.
import io
import os

# Imports the Google Cloud client library
from google.cloud import vision
from google.cloud.vision import types

# Instantiates a client
client = vision.ImageAnnotatorClient()

# The name of the image file to annotate
file_name = os.path.join(
    os.path.dirname(__file__),
    'resources/wakeupcat.jpg')

# Loads the image into memory
with io.open(file_name, 'rb') as image_file:
    content = image_file.read()

image = types.Image(content=content)

# Performs label detection on the image file
response = client.label_detection(image=image)
labels = response.label_annotations

print('Labels:')
for label in labels:
    print(label.description)
Cloud Natural Language API를 사용하여 텍스트에서 의미 추출
1
설치
pip install google-cloud-language
2
Cloud Platform Console 프로젝트 설정
  1. Google 계정에 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. {% dynamic if "no_credentials" in setvar.task_params %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic if not setvar.redirect_url %}{% dynamic setvar redirect_url %}https://console.cloud.google.com{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if setvar.in_henhouse_no_auth_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic endif %}{% dynamic elif setvar.in_henhouse_service_account_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}SERVICE_ACCOUNT{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if not setvar.service_account_roles and setvar.credential_type == "SERVICE_ACCOUNT" %}{% dynamic setvar service_account_roles %}{% dynamic endsetvar %}{% dynamic endif %}{% dynamic setvar console %}{% dynamic if "no_steps" not in setvar.task_params %}
  3. {% dynamic endif %}{% dynamic if setvar.api_list %}{% dynamic if setvar.in_henhouse_no_auth_whitelist or setvar.in_henhouse_service_account_whitelist %}GCP Console 프로젝트를 설정합니다.

    프로젝트 설정

    다음을 수행하려면 클릭:

    • 프로젝트를 만들거나 선택합니다.
    • 해당 프로젝트에 {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} API{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다.
    • {% dynamic if setvar.credential_type == 'SERVICE_ACCOUNT' %}
    • 서비스 계정을 만듭니다.
    • 비공개 키를 JSON으로 다운로드합니다.
    • {% dynamic endif %}

    언제든지 GCP Console에서 이 리소스를 보고 관리할 수 있습니다.

    {% dynamic else %}{% dynamic if "no_text" not in setvar.task_params %}{% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}필요한{% dynamic endif %}{% dynamic if "," in setvar.api_list %} APIs{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %}를 사용 설정합니다. {% dynamic endif %}

    {% dynamic if "," in setvar.api_list %} APIs{% dynamic else %} API{% dynamic endif %} 사용 설정

    {% dynamic endif %}{% dynamic endif %}{% dynamic if "no_steps" not in setvar.task_params %}
  4. {% dynamic endif %}{% dynamic endsetvar %}{% dynamic print setvar.console %}
3
코드를 작성합니다.
# Imports the Google Cloud client library
from google.cloud import language
from google.cloud.language import enums
from google.cloud.language import types

# Instantiates a client
client = language.LanguageServiceClient()

# The text to analyze
text = u'Hello, world!'
document = types.Document(
    content=text,
    type=enums.Document.Type.PLAIN_TEXT)

# Detects the sentiment of the text
sentiment = client.analyze_sentiment(document=document).document_sentiment

print('Text: {}'.format(text))
print('Sentiment: {}, {}'.format(sentiment.score, sentiment.magnitude))
Python 빠른 시작
신속한 문제 발견 및 디버깅

Google Stackdriver는 강력한 모니터링, 로깅, 진단 기능을 제공합니다. 클라우드 기반 애플리케이션의 상태, 성능, 가용성에 대한 통계를 제공하여 문제를 더 신속하게 찾아 해결할 수 있게 해 줍니다.

Google Stackdriver
Google Cloud Platform 및 AWS의 애플리케이션 통합 모니터링, 로깅, 진단
Stackdriver Error Reporting
Google Cloud Console에서 오류 알림을 받고 오류를 조사하는 과정 안내
Stackdriver 모니터링, 진단, 해결
이 동영상에서 아자 해멀리는 Stackdriver를 사용하여 예시 앱의 몇 가지 미묘한 오류를 찾아 수정하고 Stackdriver를 프로젝트에서 사용하는 방법을 알려 드립니다.
자세히 알아보기
GCP 커뮤니티에서 Python 알아보기

의견이 있나요? 커뮤니티에 가입하여 질문하거나 Google Cloud Platform에서 Python 제작을 지원하는 Google 전문가와 직접 채팅해 보세요.