태스크 큐에서 Cloud Tasks로 마이그레이션

App Engine Task Queue API를 통해 App Engine 표준 환경의 큐 서비스(태스크 큐)를 사용하는 경우 새로운 RPC/REST API인 Cloud Tasks를 사용하는 동일 서비스에 액세스하도록 마이그레이션할 수 있습니다. Cloud Tasks는 1세대 App Engine 런타임 외부, 특히 모든 App Engine 가변형 환경2세대 App Engine 표준 런타임에서 사용할 수 있습니다.

Cloud Tasks 및 최신 App Engine 표준 환경 태스크 큐 서비스는 단일 환경에 존재합니다. API를 통해 동일한 큐에 추가할 수 있습니다. App Engine SDK를 사용하든 새로운 Cloud Tasks API를 사용하든 관계없이 앱 내에서 큐는 비동기 처리를 위해 태스크를 핸들러 URL에 전달합니다.

새로운 기능

Cloud Tasks는 App Engine SDK를 통해서는 사용할 수 없는 다음과 같은 기능을 제공합니다.

  • API를 통한 큐 관리:

    API, 콘솔 또는 gcloud 명령어를 사용하여 다른 큐 관리 작업을 생성, 삭제, 일시중지, 수행할 수 있습니다.

  • 큐 나열 명령어:

    프로젝트에서 설정한 모든 대기열을 나열할 수 있습니다.

  • 작업 나열 명령어:

    모든 대기열의 모든 작업을 나열할 수 있습니다.

  • Identity and Access Management(IAM) 통합:

    IAM을 사용하여 매우 세분화된 방법으로 큐 및 태스크에 안전하게 액세스할 수 있습니다.

  • HTTP 대상

    공개 IP 주소로 모든 HTTP 엔드포인트에서 핸들러를 타겟팅할 수 있습니다.

아직 Cloud Tasks API를 통해 사용할 수 없는 태스크 큐의 기능

  • 가져오기 대기열:

    GA 제품인 Cloud Pub/Sub를 사용하여 가져오기 대기열과 동일한 많은 사용 사례를 구현할 수 있습니다.

  • 트랜잭션 태스크:

    Cloud Tasks에서는 Cloud Datastore 트랜잭션의 일부로 큐에 태스크를 추가할 수 없습니다. 대신 트랜잭션이 성공적으로 커밋되는 경우에만 큐에 태스크가 추가됩니다.

  • 지연된 태스크:

    비동기적으로 처리되고 종류가 다양한 소규모 태스크가 필요할 수 있지만 고유한 개별 핸들러 설정을 원치 않을 경우에는 App Engine SDK를 사용하면 런타임 전용 라이브러리를 이용해 간단한 함수를 만들어서 이러한 태스크를 관리할 수 있습니다. Cloud Tasks에서는 이 기능을 사용할 수 없습니다. 그러나 일반적인 태스크는 Cloud Tasks를 사용하여 이후 시간으로 예약할 수 있습니다.

  • 네임스페이스:

    App Engine SDK를 사용하는 런타임 일부에는 네임스페이스를 통해 작업 다중 테넌트를 지원하는 API가 있습니다. Cloud Tasks에서는 이 기능을 사용할 수 없습니다.

  • 로컬 에뮬레이터:

    gcloud CLI 또는 App Engine SDK에서 제공하는 로컬 개발 서버는 Cloud Tasks API 호출의 엔드포인트 시뮬레이션을 지원하지 않습니다.

  • 비동기식 태스크 추가:

    App Engine SDK 사용자는 큐에 비동기식으로 태스크를 추가할 수 있습니다. Cloud Tasks에서는 이 기능을 사용할 수 없습니다.

추가 정보

코드 마이그레이션에 대한 상세 가이드는 App Engine 태스크 큐 문서 집합을 참조하세요.

  • Python 2.7 pull 큐에서 Pub/Sub로 마이그레이션
  • Python 2.7 push 큐에서 Cloud Tasks로 마이그레이션
  • Java 8 pull 큐에서 Pub/Sub로 마이그레이션
  • 자바 8 push 큐에서 Cloud Tasks로 마이그레이션