App Engine용 빠른 시작

이 빠른 시작에서는 Stackdriver Error Reporting을 소개하고 다음을 수행하는 방법을 보여줍니다.

  • Cloud Shell을 사용하여 Python App Engine 애플리케이션 배포
  • Error Reporting을 사용하여 애플리케이션의 오류 보기
  • 알림을 보내도록 Error Reporting 구성

Google Cloud Platform Console에서 3분짜리 대화형 가이드를 사용해 보세요.
(이 가이드에서 오른쪽에 있는 계속 버튼을 찾습니다.)

시작하기 전에

  1. Google 계정에 로그인합니다.

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

  2. GCP Console에서 리소스 관리 페이지로 이동하고 프로젝트를 선택하거나 만듭니다.

    리소스 관리 페이지로 이동

  3. Google Cloud Platform 프로젝트에 결제가 사용 설정되어 있는지 확인하세요.

    결제 사용 설정 방법 알아보기

  4. 프로젝트에서 Cloud Shell을 엽니다. 셸이 시작될 때 프로젝트의 대시보드 하단에 '연결 중...' 메시지가 표시됩니다.

    Cloud Shell 열기

시작하기

이 섹션에서는 애플리케이션을 다운로드하고 App Engine에 배포합니다.

  1. GitHub 프로젝트 python-docs-samples에서 애플리케이션을 다운로드하고 구성합니다.

    1. 프로젝트를 Cloud Shell에 복제합니다.

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      Git이 다음과 유사한 메시지를 반환합니다.

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      Cloning into 'python-docs-samples'...
      
    2. 격리된 Python 환경을 만들고 활성화합니다.

      cd python-docs-samples/appengine/standard_python37/hello_world
      virtualenv env -p python3
      source env/bin/activate
      
    3. 종속 항목을 설치합니다.

      pip install -r requirements.txt
      
  2. 애플리케이션이 성공적으로 설치되고 구성되었는지 확인합니다.

    1. 애플리케이션을 실행합니다.

      python main.py
      
    2. 로컬 웹페이지에서 애플리케이션을 보려면 Cloud Shell에 표시된 링크를 클릭합니다. 웹페이지에 Hello World!가 표시됩니다.

    3. 실행 중인 애플리케이션을 중지하려면 Cloud Shell에서 Ctrl-C를 입력합니다.

  3. 애플리케이션을 App Engine에 업로드합니다.

    gcloud app deploy
    

    배포 리전을 묻는 메시지가 표시되면 가까운 리전을 선택합니다. 계속할지 묻는 메시지가 표시되면 Y를 입력합니다. 잠시 후 업로드가 완료됩니다.

  4. Cloud Shell에서 다음 명령어를 실행하여 브라우저에서 애플리케이션을 봅니다.

    gcloud app browse
    

    Cloud SDK에서 브라우저를 찾을 수 없는 경우 이전 명령어에서 오류 메시지와 링크를 표시합니다. 표시된 링크를 클릭합니다. 브라우저에 Hello, World! 메시지가 표시됩니다.

오류 소개

다음 단계에서는 오류를 생성하여 Error Reporting이 해당 오류를 수집하고 표시하도록 합니다.

  1. main.py를 다음과 같이 수정합니다.

    return 'Hello World!`
    

    위의 행을 다음 행으로 변경합니다.

    return 'Hello World!' + 1000
    

    이 변경 작업을 실행하면 Python TypeError 예외가 발생합니다. 문자열과 정수의 연결은 유효하지 않기 때문입니다.

  2. 수정된 애플리케이션을 App Engine에 업로드합니다.

    gcloud app deploy
    
  3. 실행 중인 애플리케이션이 있는 브라우저 탭으로 돌아가서 페이지를 새로고칩니다. 변경사항으로 인해 Hello, World!라는 페이지 대신 오류 메시지가 표시됩니다.

    Internal Server Error
    The server encountered an internal error and was unable to complete your
    request. Either the server is overloaded or there is an error in the
    application.
    

    이 메시지가 표시되지 않으면 잠시 기다렸다가 페이지를 다시 새로고치세요. 새 버전이 활성화되기까지 시간이 약간 걸릴 수 있습니다.

Error Reporting에서 오류 보기

웹페이지에 표시된 오류 메시지는 문제를 해결하기에 충분한 세부정보를 제공하지 않으므로 그다지 유용하지 않습니다. 하지만 Error Reporting을 사용하면 오류와 발생 횟수에 대한 자세한 정보를 얻을 수 있습니다.

  1. Error Reporting으로 이동합니다.

    Error Reporting으로 이동

    Error Reporting 대시보드에는 발견된 각 오류의 요약 정보와 발생 횟수가 표시됩니다. 기본적으로 Error Reporting에서 자동으로 5초마다 오류 목록을 새로고치지만 강제로 즉시 새로고치려면 자동 새로고침을 클릭합니다.

    이 빠른 시작에서는 대시보드에 "TypeError: can only concatenate str (not "int") to str"이라고 설명된 오류 하나가 표시됩니다. 잠시 기다렸다가 페이지를 새로고쳐야 오류가 표시되는 경우도 있습니다.

  2. 브라우저에서 애플리케이션을 새로고쳐서 동일한 오류를 다시 생성합니다.

    새 오류의 스택 추적이 첫 번째 오류와 유사하기 때문에 Error Reporting에서는 발생 횟수의 숫자와 시간 그래프를 업데이트하여 두 오류를 일괄 처리합니다.

  3. 오류에 관한 모든 가용 정보(소스 코드에 대한 링크 포함)가 포함된 오류 세부정보 페이지를 보려면 오류 이름을 클릭합니다.

알림 구성

새로운 유형의 오류가 발생하면 알림을 표시하도록 Error Reporting을 구성할 수 있습니다. 기존 오류가 다시 발생할 경우에는 알림이 전송되지 않습니다.

  1. Error Reporting으로 이동합니다.

    Error Reporting으로 이동

  2. 이메일 알림을 사용 설정하려면 더보기(more_vert)를 클릭하고 드롭다운 목록에서 프로젝트에 새로운 오류 발생 시 알림 사용 설정을 선택합니다.

  3. main.py를 다음과 같이 수정합니다.

     return 'Hello World!` + 1000
    

    위의 행을 다음 행으로 변경합니다.

     return 'Hello World!'.punctuate()
    

    이 변경 작업을 실행하면 Python AttributeError 예외가 발생합니다. punctuate() 속성이 존재하지 않기 때문입니다.

  4. 수정된 파일을 App Engine에 업로드합니다.

     gcloud app deploy
    
  5. 브라우저에서 애플리케이션을 새로고쳐서 새 오류를 생성합니다.

    • 브라우저에 Internal Server Error라는 메시지가 표시됩니다.

    • Error Reporting 대시보드에 "AttributeError: 'str' object has no attribute 'punctuate'라고 설명된 오류가 표시됩니다.

    • 오류에 관한 다음과 같은 세부정보를 포함한 새로운 Stackdriver 알림이 사용자 이메일로 전송됩니다.

      • 프로젝트 ID
      • 오류 설명(이 사례에서는 "AttributeError: 'str' object has no attribute 'punctuate'에 해당)
      • 서비스
      • 애플리케이션 버전

삭제

이 빠른 시작에서 사용한 리소스 비용이 GCP 계정에 청구되지 않도록 다음을 수행합니다.

  1. GCP Console에서 프로젝트 페이지로 이동합니다.

    프로젝트 페이지로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 다음 종료를 클릭하여 프로젝트를 삭제합니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Stackdriver Error Reporting Documentation
도움이 필요하시나요? 지원 페이지를 방문하세요.