Pub/Sub 주제와 연관된 기기 레지스트리를 만듭니다.
더 살펴보기
이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.
코드 샘플
Go
자세한 내용은 Cloud IoT Core Go API 참조 문서를 확인하세요.
// createRegistry creates a IoT Core device registry associated with a PubSub topic
func createRegistry(w io.Writer, projectID string, region string, registryID string, topicName string) (*cloudiot.DeviceRegistry, error) {
client, err := getClient()
if err != nil {
return nil, err
}
registry := cloudiot.DeviceRegistry{
Id: registryID,
EventNotificationConfigs: []*cloudiot.EventNotificationConfig{
{
PubsubTopicName: topicName,
},
},
}
parent := fmt.Sprintf("projects/%s/locations/%s", projectID, region)
response, err := client.Projects.Locations.Registries.Create(parent, ®istry).Do()
if err != nil {
return nil, err
}
fmt.Fprintln(w, "Created registry:")
fmt.Fprintf(w, "\tID: %s\n", response.Id)
fmt.Fprintf(w, "\tHTTP: %s\n", response.HttpConfig.HttpEnabledState)
fmt.Fprintf(w, "\tMQTT: %s\n", response.MqttConfig.MqttEnabledState)
fmt.Fprintf(w, "\tName: %s\n", response.Name)
return response, nil
}
Java
자세한 내용은 Cloud IoT Core Java API 참조 문서를 확인하세요.
/** Create a registry for Cloud IoT. */
protected static void createRegistry(
String cloudRegion, String projectId, String registryName, String pubsubTopicPath)
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 projectPath = "projects/" + projectId + "/locations/" + cloudRegion;
final String fullPubsubPath = "projects/" + projectId + "/topics/" + pubsubTopicPath;
DeviceRegistry registry = new DeviceRegistry();
EventNotificationConfig notificationConfig = new EventNotificationConfig();
notificationConfig.setPubsubTopicName(fullPubsubPath);
List<EventNotificationConfig> notificationConfigs = new ArrayList<EventNotificationConfig>();
notificationConfigs.add(notificationConfig);
registry.setEventNotificationConfigs(notificationConfigs);
registry.setId(registryName);
DeviceRegistry reg =
service.projects().locations().registries().create(projectPath, registry).execute();
System.out.println("Created registry: " + reg.getName());
}
Node.js
자세한 내용은 Cloud IoT Core Node.js API 참조 문서를 확인하세요.
// Client retrieved in callback
// const cloudRegion = 'us-central1';
// const projectId = 'adjective-noun-123';
// const registryId = 'my-registry';
// function errCb = lookupRegistry; // Lookup registry if already exists.
const iot = require('@google-cloud/iot');
// Lookup the pubsub topic
const topicPath = `projects/${projectId}/topics/${pubsubTopicId}`;
const iotClient = new iot.v1.DeviceManagerClient({
// optional auth parameters.
});
async function createDeviceRegistry() {
// Construct request
const newParent = iotClient.locationPath(projectId, cloudRegion);
const deviceRegistry = {
eventNotificationConfigs: [
{
pubsubTopicName: topicPath,
},
],
id: registryId,
};
const request = {
parent: newParent,
deviceRegistry: deviceRegistry,
};
const [response] = await iotClient.createDeviceRegistry(request);
console.log('Successfully created registry');
console.log(response);
}
createDeviceRegistry();
PHP
자세한 내용은 Cloud IoT Core PHP API 참조 문서를 확인하세요.
use Google\Cloud\Iot\V1\DeviceManagerClient;
use Google\Cloud\Iot\V1\DeviceRegistry;
use Google\Cloud\Iot\V1\EventNotificationConfig;
/**
* Creates a registry if it doesn't exist and prints the result.
*
* @param string $registryId IOT Device Registry ID
* @param string $pubsubTopic PubSub topic name for the new registry's event change notification.
* @param string $projectId Google Cloud project ID
* @param string $location (Optional) Google Cloud region
*/
function create_registry(
$registryId,
$pubsubTopic,
$projectId,
$location = 'us-central1'
) {
print('Creating Registry' . PHP_EOL);
// The Google Cloud Client Library automatically checks the environment
// variable GOOGLE_APPLICATION_CREDENTIALS for the Service Account
// credentials, and defaults scopes to [
// 'https://www.googleapis.com/auth/cloud-platform',
// 'https://www.googleapis.com/auth/cloudiot'
// ].
$deviceManager = new DeviceManagerClient();
$locationName = $deviceManager->locationName($projectId, $location);
$pubsubTopicPath = sprintf('projects/%s/topics/%s', $projectId, $pubsubTopic);
$eventNotificationConfig = (new EventNotificationConfig)
->setPubsubTopicName($pubsubTopicPath);
$registry = (new DeviceRegistry)
->setId($registryId)
->setEventNotificationConfigs([$eventNotificationConfig]);
$registry = $deviceManager->createDeviceRegistry($locationName, $registry);
printf('Id: %s, Name: %s' . PHP_EOL,
$registry->getId(),
$registry->getName());
}
Python
자세한 내용은 Cloud IoT Core Python API 참조 문서를 확인하세요.
# project_id = 'YOUR_PROJECT_ID'
# cloud_region = 'us-central1'
# pubsub_topic = 'your-pubsub-topic'
# registry_id = 'your-registry-id'
client = iot_v1.DeviceManagerClient()
parent = f"projects/{project_id}/locations/{cloud_region}"
if not pubsub_topic.startswith("projects/"):
pubsub_topic = "projects/{}/topics/{}".format(project_id, pubsub_topic)
body = {
"event_notification_configs": [{"pubsub_topic_name": pubsub_topic}],
"id": registry_id,
}
try:
response = client.create_device_registry(
request={"parent": parent, "device_registry": body}
)
print("Created registry")
return response
except HttpError:
print("Error, registry not created")
raise
except AlreadyExists:
print("Error, registry already exists")
raise
Ruby
자세한 내용은 Cloud IoT Core Ruby API 참조 문서를 확인하세요.
# project_id = "Your Google Cloud project ID"
# location_id = "The Cloud region that you created the registry in"
# registry_id = "The Google Cloud IoT Core device registry identifier"
# pubsub_topic = "The Google Cloud PubSub topic to use for this registry"
require "google/apis/cloudiot_v1"
# Initialize the client and authenticate with the specified scope
Cloudiot = Google::Apis::CloudiotV1
iot_client = Cloudiot::CloudIotService.new
iot_client.authorization = Google::Auth.get_application_default(
"https://www.googleapis.com/auth/cloud-platform"
)
# The project / location where the registry is created.
parent = "projects/#{project_id}/locations/#{location_id}"
registry = Cloudiot::DeviceRegistry.new
registry.id = registry_id
registry.event_notification_configs = [Cloudiot::EventNotificationConfig.new]
registry.event_notification_configs[0].pubsub_topic_name = pubsub_topic
registry = iot_client.create_project_location_registry(
parent, registry
)
puts "Created registry: #{registry.name}"
다음 단계
다른 Google Cloud 제품의 코드 샘플을 검색하고 필터링하려면 Google Cloud 샘플 브라우저를 참조하세요.