이제 기존 번들 서비스에서 제공하는 대부분의 기능이 Cloud 클라이언트 라이브러리에서 제공됩니다. 자세한 내용은 아래의 권장 옵션을 참조하세요.
프로젝트에서 번들되지 않은 솔루션으로 마이그레이션할 수 없는 경우 대체 수단으로 Java 11/17 앱에서 기존 번들 서비스를 계속 사용할 수 있습니다. 이 방식을 사용하면 나중에 마이그레이션 주기 시 번들되지 않은 서비스로 유연하게 전환할 수 있습니다.
App Engine 번들 서비스의 마이그레이션 경로
Blobstore
데이터를 저장 및 검색하려면 Cloud 클라이언트 라이브러리를 통해 Cloud Storage를 사용합니다. 시작하려면 Cloud Storage 사용합니다.
Datastore
Datastore API 대신 Datastore 모드의 Firestore를 사용할 수 있습니다. Firestore는 Datastore의 최신 버전이며 Datastore용 Cloud 클라이언트 라이브러리를 사용하는 것이 좋습니다.
이미지
Cloud Storage에서 이미지를 제공하거나, 직접 제공하거나, 서드 파티 콘텐츠 전송 네트워크(CDN)를 사용할 수 있습니다.
이미지의 크기를 조절하고 변환하고 조작하려면 ImageJ2, imgscalr, thumbnailator
이러한 서드 파티 라이브러리 중 하나를 사용하려면 라이브러리를 종속 항목으로 추가하고 라이브러리의 API를 호출하도록 코드를 업데이트합니다.
또한 App Engine 이미지 서비스는 제공 URL로 이미지 크기 조절을 처리하여 애플리케이션으로의 동적 요청을 방지하는 기능을 제공합니다. 유사한 기능이 필요한 경우 크기가 조절된 이미지를 미리 생성하고 Cloud Storage에 업로드하여 제공할 수 있습니다. 또는 이미지 크기 조절 기능을 제공하는 서드 파티 콘텐츠 전송 네트워크(CDN) 서비스를 사용할 수도 있습니다.
로깅
로그 탐색기에서 로그 보기, 로그 다운로드, 심각도별로 메시지 필터링, 특정 요청과 앱 메시지 간의 상관관계와 같은 기능을 지원하는 Cloud Logging을 사용하도록 앱을 업데이트하는 것이 좋습니다. 또는 데이터 정확성보다 단순성을 원하는 경우 구조화된 로그를 stdout
또는 stderr
에 작성하면 됩니다.
자세한 내용은 로그 작성 및 보기을 참조하세요.
메일
이메일을 보내려면 SendGrid, Mailgun 또는 Mailjet과 같은 서드 파티 메일 공급업체를 사용하세요. 이러한 모든 서비스는 애플리케이션에서 이메일을 보낼 수 있는 API를 제공합니다. 현재 인바운드 메시지에 권장되는 서드 파티 대안은 사용할 수 없습니다.
Memcache
애플리케이션 데이터를 캐시하려면 Redis용 Memorystore를 사용합니다.
모듈
애플리케이션의 실행 서비스 정보를 가져오고 수정하려면 환경 변수와 App Engine Admin API를 함께 사용합니다.
서비스 정보 | 액세스 방법 |
---|---|
현재 애플리케이션 ID | GAE_APPLICATION 환경 변수 |
현재 프로젝트 ID | GOOGLE_CLOUD_PROJECT 환경 변수 |
현재 서비스 이름 | GAE_SERVICE 환경 변수 |
현재 서비스 버전 | GAE_VERSION 환경 변수 |
현재 인스턴스 ID | GAE_INSTANCE 환경 변수 |
기본 호스트 이름 | Admin API apps.get 메서드 |
서비스 목록 | Admin API apps.services.list 메서드 |
서비스 버전 목록 | Admin API apps.services.versions.list 메서드 |
트래픽 분할을 포함한 서비스 기본 버전 | Admin API apps.services.get 메서드 |
특정 버전으로 실행 중인 인스턴스 목록 | Admin API apps.services.versions.instances.list 메서드 |
애플리케이션의 실행 서비스에 사용할 수 있는 데이터에 대한 상세 내용은 Java 11/17 런타임 환경을 참조하세요.
네임스페이스
Namespaces API는 테넌트마다 고유한 네임스페이스 문자열을 지정하여 각 테넌트의 데이터를 간단히 분리할 수 있도록 멀티 테넌트 앱을 지원하였습니다.
Datastore는 직접 멀티테넌시를 지원하지만 다른 Google Cloud 서비스는 지원하지 않습니다. 멀티테넌트 앱이 다른 Google Cloud 서비스를 사용할 경우 멀티테넌시를 수동으로 처리해야 합니다. 서비스 인스턴스를 완전히 분리하려면 Cloud Resource Manager API를 사용하여 프로그래매틱 방식으로 새 프로젝트를 만들고 프로젝트 전체에서 리소스에 액세스하면 됩니다.
OAuth
App Engine OAuth 서비스를 사용하여 OAuth 2.0 토큰을 확인하는 대신 OAuth 2.0 API의 oauth2.tokeninfo
메서드를 사용합니다.
검색
Compute Engine의 ElasticSearch와 같은 전체 텍스트 검색 데이터베이스를 호스팅하고 서비스에서 이 데이터베이스에 액세스합니다.
태스크 큐
Cloud Tasks REST API, RPC API, Cloud 클라이언트 라이브러리를 사용하여 비동기 코드를 실행하기 위한 태스크를 큐에 추가하고 Java 11/17 App Engine 표즌 서비스를 푸시 대상으로 사용하세요. 자세한 내용은 태스크 큐에서 Cloud Tasks로 마이그레이션을 참조하세요.
Java 11/17의 경우 다음 Cloud Tasks API와 상호작용하는 샘플 프로그램을 참조하세요.별도의 작업자가 가져와서 처리할 태스크나 메시지를 큐에 추가와 같이 pull 큐를 사용할 수 있는 여러 상황에서는 유사한 기능을 제공하고 전송을 보장하는 Pub/Sub가 좋은 대안이 될 수 있습니다.
사용자 인증
Users API의 대안으로 사용자 인증 페이지에 설명된 HTTP 기반 인증 메커니즘을 사용합니다.