Google Cloud IoT Core는 2023년 8월 16일에 지원 중단됩니다. 자세한 내용은 Google Cloud 계정팀에 문의하세요.

레지스트리 지우기

레지스트리에서 모든 기기를 삭제하고 레지스트리를 삭제합니다.

코드 샘플

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 샘플 브라우저를 참조하세요.