Google Cloud IoT Core wird am 16. August 2023 eingestellt. Weitere Informationen erhalten Sie von Ihrem Google Cloud-Account-Management-Team.

Gerät erstellen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Gerät in einer Registry erstellen.

Weitere Informationen

Eine ausführliche Dokumentation, die dieses Codebeispiel enthält, finden Sie hier:

Codebeispiel

C#

public static object CreateDevice(string projectId, string cloudRegion, string registryName, string deviceId)
{
    var cloudIot = CreateAuthorizedClient();
    var registryPath = $"projects/{projectId}/locations/{cloudRegion}/registries/{registryName}";

    var req = cloudIot
        .Projects
        .Locations
        .Registries
        .Devices
        .List(registryPath);
    req.FieldMask = "config,gatewayConfig";
    var devices = req.Execute().Devices;
    if (devices != null)
    {
        Console.WriteLine("Found {0} devices", devices.Count);
        devices.ToList().ForEach(singleDevice =>
        {
            if ((singleDevice.Id != null && singleDevice.Id.Equals(deviceId))
            || (singleDevice.Name != null && singleDevice.Name.Equals(deviceId)))
            {
                Console.WriteLine("Device exists, skipping. ");
                return;
            }
        }
        );
    }
    Console.WriteLine("Creating device with id: {0}", deviceId);

    GatewayConfig gwConfig = new GatewayConfig()
    {
        GatewayType = "NON_GATEWAY",
        GatewayAuthMethod = "ASSOCIATION_ONLY"
    };

    Device device = new Device()
    {
        Id = deviceId,
        GatewayConfig = gwConfig
    };

    Device createdDevice =
        cloudIot
            .Projects
            .Locations
            .Registries
            .Devices
            .Create(device, registryPath)
            .Execute();

    Console.WriteLine("Created device: {0}", createdDevice.ToString());
    return 0;
}

Go


// createDevice creates a device in a registry with one of the following public key formats:
// RSA_PEM, RSA_X509_PEM, ES256_PEM, ES256_X509_PEM, UNAUTH.
func createDevice(w io.Writer, projectID string, region string, registryID string, deviceID string, publicKeyFormat string, keyPath string) (*cloudiot.Device, error) {
	client, err := getClient()
	if err != nil {
		return nil, err
	}

	keyBytes, err := ioutil.ReadFile(keyPath)
	if err != nil {
		return nil, err
	}

	var device cloudiot.Device

	// If no credentials are passed in, create an unauth device.
	if publicKeyFormat == "UNAUTH" {
		device = cloudiot.Device{
			Id: deviceID,
		}
	} else {
		device = cloudiot.Device{
			Id: deviceID,
			Credentials: []*cloudiot.DeviceCredential{
				{
					PublicKey: &cloudiot.PublicKeyCredential{
						Format: publicKeyFormat,
						Key:    string(keyBytes),
					},
				},
			},
		}
	}

	parent := fmt.Sprintf("projects/%s/locations/%s/registries/%s", projectID, region, registryID)
	response, err := client.Projects.Locations.Registries.Devices.Create(parent, &device).Do()
	if err != nil {
		return nil, err
	}

	fmt.Fprintf(w, "Successfully created a device with %s public key: %s", publicKeyFormat, deviceID)

	return response, nil
}

Java

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);

List<Device> devices =
    service
        .projects()
        .locations()
        .registries()
        .devices()
        .list(registryPath)
        .setFieldMask("config,gatewayConfig")
        .execute()
        .getDevices();

if (devices != null) {
  System.out.println("Found " + devices.size() + " devices");
  for (Device d : devices) {
    if ((d.getId() != null && d.getId().equals(deviceId))
        || (d.getName() != null && d.getName().equals(deviceId))) {
      System.out.println("Device exists, skipping.");
      return;
    }
  }
}

System.out.println("Creating device with id: " + deviceId);
Device device = new Device();
device.setId(deviceId);

GatewayConfig gwConfig = new GatewayConfig();
gwConfig.setGatewayType("NON_GATEWAY");
gwConfig.setGatewayAuthMethod("ASSOCIATION_ONLY");

device.setGatewayConfig(gwConfig);
Device createdDevice =
    service
        .projects()
        .locations()
        .registries()
        .devices()
        .create(registryPath, device)
        .execute();

System.out.println("Created device: " + createdDevice.toPrettyString());

Node.js

// const cloudRegion = 'us-central1';
// const deviceId = 'my-device';
// const projectId = 'adjective-noun-123';
// const registryId = 'my-registry';
const iot = require('@google-cloud/iot');

const iotClient = new iot.v1.DeviceManagerClient({
  // optional auth parameters.
});

async function createDevice() {
  // Construct request
  const regPath = iotClient.registryPath(projectId, cloudRegion, registryId);
  const device = {
    id: deviceId,
    credentials: [
      {
        publicKey: {
          format: publicKeyFormat,
          key: readFileSync(publicKeyFile).toString(),
        },
      },
    ],
  };

  const request = {
    parent: regPath,
    device,
  };

  const [response] = await iotClient.createDevice(request);
  console.log('Created device', response);
}

createDevice();

Python

# project_id = 'YOUR_PROJECT_ID'
# cloud_region = 'us-central1'
# registry_id = 'your-registry-id'
# device_id = 'your-device-id'

# Check that the device doesn't already exist
client = iot_v1.DeviceManagerClient()

exists = False

parent = client.registry_path(project_id, cloud_region, registry_id)

devices = list(client.list_devices(request={"parent": parent}))

for device in devices:
    if device.id == device_id:
        exists = True

# Create the device
device_template = {
    "id": device_id,
    "gateway_config": {
        "gateway_type": iot_v1.GatewayType.NON_GATEWAY,
        "gateway_auth_method": iot_v1.GatewayAuthMethod.ASSOCIATION_ONLY,
    },
}

if not exists:
    res = client.create_device(
        request={"parent": parent, "device": device_template}
    )
    print("Created Device {}".format(res))
else:
    print("Device exists, skipping")

Nächste Schritte

Im Google Cloud-Beispielbrowser können Sie Codebeispiele für andere Google Cloud-Produkte suchen und filtern.