레지스트리에서 모든 기기를 삭제하고 레지스트리를 삭제합니다.
코드 샘플
Java
자세한 내용은 Cloud IoT Core Java API 참조 문서를 확인하세요.
protected static void clearRegistry(String cloudRegion, String projectId, String registryName)
throws GeneralSecurityException, IOException {
GoogleCredentials credential =
GoogleCredentials.getApplicationDefault().createScoped(CloudIotScopes.all());
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
HttpRequestInitializer init = new HttpCredentialsAdapter(credential);
final CloudIot service =
new CloudIot.Builder(GoogleNetHttpTransport.newTrustedTransport(), jsonFactory, init)
.setApplicationName(APP_NAME)
.build();
final String registryPath =
String.format(
"projects/%s/locations/%s/registries/%s", projectId, cloudRegion, registryName);
CloudIot.Projects.Locations.Registries regAlias = service.projects().locations().registries();
CloudIot.Projects.Locations.Registries.Devices devAlias = regAlias.devices();
ListDevicesResponse listGatewaysRes =
devAlias.list(registryPath).setGatewayListOptionsGatewayType("GATEWAY").execute();
List<Device> gateways = listGatewaysRes.getDevices();
// Unbind all devices from all gateways
if (gateways != null) {
System.out.println("Found " + gateways.size() + " devices");
for (Device g : gateways) {
String gatewayId = g.getId();
System.out.println("Id: " + gatewayId);
ListDevicesResponse res =
devAlias
.list(registryPath)
.setGatewayListOptionsAssociationsGatewayId(gatewayId)
.execute();
List<Device> deviceNumIds = res.getDevices();
if (deviceNumIds != null) {
System.out.println("Found " + deviceNumIds.size() + " devices");
for (Device device : deviceNumIds) {
String deviceId = device.getId();
System.out.println(String.format("ID: %s", deviceId));
// Remove any bindings from the device
UnbindDeviceFromGatewayRequest request = new UnbindDeviceFromGatewayRequest();
request.setDeviceId(deviceId);
request.setGatewayId(gatewayId);
regAlias.unbindDeviceFromGateway(registryPath, request).execute();
}
} else {
System.out.println("Gateway has no bound devices.");
}
}
}
// Remove all devices from the regsitry
List<Device> devices = devAlias.list(registryPath).execute().getDevices();
if (devices != null) {
System.out.println("Found " + devices.size() + " devices");
for (Device d : devices) {
String deviceId = d.getId();
String devicePath = String.format("%s/devices/%s", registryPath, deviceId);
service.projects().locations().registries().devices().delete(devicePath).execute();
}
}
// Delete the registry
service.projects().locations().registries().delete(registryPath).execute();
}
다음 단계
다른 Google Cloud 제품의 코드 샘플을 검색하고 필터링하려면 Google Cloud 샘플 브라우저를 참조하세요.