Modules API 提供可以傳回現行作業環境相關資訊 (模組、版本與執行個體) 的函式。
Modules API 也提供擷取模組、版本或執行個體位址的函式。如此可讓應用程式不論是在開發環境還是實際工作環境中,都能從某個執行個體傳送要求到至另一個執行個體。
下列程式碼範例示範如何取得要求的模組名稱和執行個體 ID:
import com.google.appengine.api.modules.ModulesService;
import com.google.appengine.api.modules.ModulesServiceFactory;
ModulesService modulesApi = ModulesServiceFactory.getModulesService();
// Get the service name handling the current request.
String currentModuleName = modulesApi.getCurrentModule();
// Get the instance handling the current request.
int currentInstance = modulesApi.getCurrentInstance();
自動調整大小的模組會以 Base64 編碼的值 (例如 e4b565394caa
) 傳回其 instance ID。
只要擷取目標模組的主機名稱,就可以在同一應用程式的不同模組之間進行通訊:
下列程式碼範例示範如何取得要求的模組名稱和執行個體 ID:
import com.google.appengine.api.modules.ModulesService;
import com.google.appengine.api.modules.ModulesServiceFactory;
import java.net.MalformedURLException;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
// ...
ModulesService modulesApi = ModulesServiceFactory.getModulesService();
// ...
try {
URL url = new URL("http://" +
modulesApi.getVersionHostname("my-backend-service","v1") +
"/fetch-stats");
BufferedReader reader = new BufferedReader(
new InputStreamReader(url.openStream()));
String line;
while ((line = reader.readLine()) != null) {
// Do something...
}
reader.close();
} catch (MalformedURLException e) {
// ...
} catch (IOException e) {
// ...
}
您也可以使用網址擷取服務。