2016-11-30 3 views
1

Google App Engine의 모듈/서비스의 모든 활성 인스턴스에 요청을 보낼 수있는 방법이 있습니까?GAE가 모든 활성 인스턴스에 요청을 전송합니다.

모든 활성 인스턴스 ID 목록을 얻을 수 있다면 각 인스턴스에 대해 https://instance-dot-version-dot-service-dot-app-id.appspot.com과 같은 요청을 할 수 있습니다.

아주 특별한 경우에 일부 메모리의 전역 변수 (데이터 저장소 또는 memcache 및 시간으로 요청을 저장)를 변경하려면이 설정이 필요합니다. 그들은 내가 분명히 memcache를 사용하는 것을 선호 자주 변경 ...

+0

Dan이 답변을 게시했지만 실제로 얻는 것이 가장 좋은 방법인지 확신 할 수 없습니다. 너는 더 자세히 설명 할 수 있다고 생각하니? – BrettJ

+0

인스턴스의 RAM 메모리에 MEMCACHE 또는 DATASTORE (또는 다른 NSQL) 플래그를 사용할 수 있습니다. 해당 플래그의 값을 가져 오는 시간은 선택한 저장소에 따라 0.001, 2 또는 50ms (예) 일 수 있습니다. 내 응용 프로그램의 모든 요청에 ​​해당 플래그를 읽으면 인스턴스의 RAM 메모리에서 읽으면 돈과 시간을 절약 할 수 있습니다 (하루 10M 요청 및 숫자 수행). 인스턴스가 시작되면 Datastore에서 값을 읽어 전역 변수로 RAM에 저장합니다. 그러나 플래그가 변경되면 모든 설치에 메시지를 보내 RAM의 플래그 값을 업데이트 할 방법을 찾고 있습니다. –

+0

내 previos 예제에서 해당 플래그는 한 달에 한 번만 변경 될 수도 있고 일부 Google 서비스가 실패한 경우 (예 : GAE 작업 대기열)에도 발생할 수 있지만 순간적으로 우리는 즉각적인 전파가 필요합니다. 현재의 해결책은 memcache를 플러시하고 앱의 마지막 버전을 다시 업로드하는 것입니다. 따라서 모든 인스턴스가 새 플래그 값으로 초기화되고 다시 시작됩니다.이 작업을 수행하는 좀 더 우아한 방법을 찾고 있습니다. 나는 AUTOMATIC SCALING INSTANCES에 그것을 필요로한다. –

답변

0

이 있다면 당신은 사용하여 특정 서비스 버전에 대한 인스턴스의 목록을 얻을 수있는 Google App Engine Admin API의 REST apps.services.versions.instances.list 방법 :

목록의 인스턴스 버전.

HTTP 요청

GET https://appengine.googleapis.com/v1/{parent=apps/*/services/*/versions/*}/instances

이 URL은 Google API HTTP annotation 구문을 사용합니다.

는 해당 Google App Engine Admin API Client Library for Python의 pydoc이 페이지 here 참조하십시오.

가능한 경우 인스턴스 목록을 사용하여 GAE의 routing via URL을 사용하여 원하는대로 각 특정 인스턴스에 요청을 보낼 수 있습니다. 질문이 가정에 관련된

중요 : 나는 모든 활성 인스턴스 ID의 목록을 얻을 수있는 경우

, 나는 각 인스턴스에 대해 https://instance-dot-version-dot-service-dot-app-id.appspot.com 같은 요청을 만들 수 있습니다.

Targeted routing에서

:

주 : 인스턴스를 대상으로은 자동 스케일링 또는 기본 스케일링에 대해 구성된 서비스에서 지원되지 않습니다.

+1

이 솔루션은 자동 크기 조정 인스턴스에서 작동하지 않습니다. 인스턴스 ID를 얻지 만 instance.service.version.app.appspot.com 요청이 작동하지 않습니다. "자동 배율 또는 기본 배율로 구성된 서비스에서 인스턴스 대상 지정이 지원되지 않습니다." –

+0

그게 사실이긴하지만, 그게 원래 게시물에 의해 설정 컨텍스트의 문제가 있다고 주장거야'나는 상태 : https : // 인스턴스 - 도트 버전 - 닷 - 서비스 - 도트 - 애플 리케이션 ID와 같은 요청을 할 수있는 상태 .appspot.com 각 인스턴스 .') –

+0

모든 표기법을 시도했지만 작동하지 않습니다. 내 인스턴스는 자동 크기 조정이며, 설명서에 대해서는 작동하지 않습니다. 나는 그들이 미래에 이것을 바꿀 수 있다고 기대한다. –

관련 문제