Szenario: Unstrukturierte Daten mit HTTPs senden
In diesem Szenario wird erläutert, wie Sie mit der Internet of Things-Plattform ein Gerät verbinden, um unstrukturierte Telemetriedaten über HTTPs an die Cloud zu senden, und wie Sie die Daten in APEX anzeigen.
- Domaingruppe IoT erstellen
- IoT-Domain erstellen
- Erstellen einer digitalen Zwillingsinstanz
- Daten senden
- IoT-Domain für den Zugriff auf APEX konfigurieren
- Auf IoT-Daten in APEX zugreifen
Gehen Sie für jedes Gerät, das Sie mit dem Internet of Things verbinden möchten, folgendermaßen vor:
Schritt 1: Domaingruppe IoT erstellen
Verwenden Sie den Befehl oci iot domain-group create
und die erforderlichen Parameter <compartment-OCID>
und <domain-group-name>
, um eine Domaingruppe IoT in einem bestimmten Compartment zu erstellen. Ersetzen Sie die <compartment-OCID>
durch die OCID des Compartments, in dem Sie die Domaingruppe erstellen möchten. Ersetzen Sie <domain-group-name>
durch Ihren Domaingruppennamen, und ersetzen Sie optional <your-sample-description>
durch eine Beschreibung:
oci iot domain-group create --compartment-id <compartment-OCID> --display-name <domain-group-name> --description <your-sample-description>
Das Erstellen einer IoT-Domaingruppe kann einige Minuten dauern. Diese Beispielantwort zeigt, dass die Domaingruppe diese Datenhost-URL erstellt und verwendet:
wtmn2xs4ifkba.data.iot.us-phoenix-1.oci.oraclecloud.com
Domaingruppen-Kurz-ID: wtmn2xs4ifkba
data-host:<domain-group-short-id>.data.iot.<region>.oci.oraclecloud.com
{
"data": {
"compartment-id": "<compartment-OCID>",
"data-host": "wtmn2xs4ifkba.data.iot.<region>.oci.oraclecloud.com",
"db-allow-listed-vcn-ids": null,
"db-connection-string": null,
"db-token-scope": null,
"defined-tags": {
"Oracle-Tags": {
"CreatedBy": "default/user@oracle.com",
"CreatedOn": "2025-08-14T16:43:02.950Z"
}
},
"description": "<your-domain-group-description>",
"display-name": "<your-domain-group-name>",
"freeform-tags": {},
"id": "<domain-group-OCID>",
"lifecycle-state": "CREATING",
"system-tags": {},
"time-created": "2025-08-14T16:43:03.307000+00:00",
"time-updated": "2025-08-14T16:43:03.307000+00:00"
},
"etag": "<unique-id>",
"opc-work-request-id": "<work-request-OCID>"
}
oci iot work-request get
und den erforderlichen Parameter, um die Arbeitsanforderungsupdates für den Prozess zum Erstellen einer Domaingruppe abzurufen. Ersetzen Sie <work-request-id> durch die Arbeitsanforderungs-OCID aus dem Erstellen einer Antwort der Domaingruppe IoT:oci iot work-request get --work-request-id <work-request-OCID>
Diese Beispielantwort zeigt, dass der Vorgang zum Erstellen einer Domaingruppe in Bearbeitung ist.
{
"data": {
"compartment-id": "<compartment-OCID>",
"id": "<work-request-OCID>",
"operation-type": "CREATE_IOT_DOMAIN_GROUP",
"percent-complete": 50.0,
"resources": [
{
"action-type": "IN_PROGRESS",
"entity-type": "iotDomainGroup",
"entity-uri": "/20250531/iotDomainGroups/<iot-domain-group-OCID>",
"identifier": "<work-request-OCID>",
"metadata": null
}
],
"status": "ACCEPTED",
"time-accepted": "2025-08-14T16:43:03.327000+00:00",
"time-finished": null,
"time-started": null,
"time-updated": "2025-08-14T16:43:22.121000+00:00"
},
"etag": "<unique-id>"
}
oci iot work-request list-errors
und den erforderlichen Parameter verwenden, um Arbeitsanforderungsfehler für den Prozess zum Erstellen einer Domaingruppe aufzulisten:oci iot work-request list-errors --work-request-id <work-request-OCID>
{
"data": {
"items": []
}
}
oci iot work-request list-logs
und den erforderlichen Parameter verwenden, um Logeinträge für die Arbeitsanforderung aufzulisten:oci iot work-request list-logs --work-request-id <work-request-OCID>
Diese Beispielantwort zeigt die Schritte zum Erstellen der Domaingruppe IoT. Sie wird abgeschlossen:
{
"data": {
"items": [
{
"message": "Generating database credentials",
"timestamp": "2025-08-14T16:43:12.150000+00:00"
},
{
"message": "Creating database",
"timestamp": "2025-08-14T16:43:18.156000+00:00"
},
{
"message": "Provisioning database",
"timestamp": "2025-08-14T16:43:22.121000+00:00"
},
{
"message": "Enabling data guard",
"timestamp": "2025-08-14T16:48:25.138000+00:00"
},
{
"message": "Configuring admin secret rotation ",
"timestamp": "2025-08-14T16:53:59.878000+00:00"
},
{
"message": "Generating DNS record(s)",
"timestamp": "2025-08-14T16:54:05.318000+00:00"
},
{
"message": "Configuring routing policy",
"timestamp": "2025-08-14T16:54:06.455000+00:00"
},
{
"message": "Finishing work request",
"timestamp": "2025-08-14T16:54:58.139000+00:00"
}
]
}
}
- Optional. Verwenden Sie den Befehl
oci iot work-request get
und den erforderlichen Parameter, um die Arbeitsanforderungsaktualisierung für die Domaingruppe abzurufen. Ersetzen Sie die <work-request-id> durch die Arbeitsanforderungs-OCID:oci iot work-request get --work-request-id <work-request-OCID>
Diese Beispielantwort zeigt, dass die Domaingruppe IoT erfolgreich erstellt wurde.
{ "data": { "compartment-id": "<compartment-OCID>", "id": "<work-request-OCID>", "operation-type": "CREATE_IOT_DOMAIN_GROUP", "percent-complete": 100.0, "resources": [ { "action-type": "CREATED", "entity-type": "iotDomainGroup", "entity-uri": "/20250531/iotDomainGroups/<domain-group-OCID>", "identifier": "<domain-group-OCID>", "metadata": null } ], "status": "SUCCEEDED", "time-accepted": "2025-08-14T16:43:03.327000+00:00", "time-finished": "2025-08-14T16:54:58.139000+00:00", "time-started": "2025-08-14T16:43:12.131000+00:00", "time-updated": "2025-08-14T16:54:58.139000+00:00" }, "etag": "<unique-id>" }
Optionaler Schritt: Details der Domaingruppe IoT abrufen
Verwenden Sie den Befehl oci iot domain-group get
und den erforderlichen Parameter, um die Details der Domaingruppe IoT einschließlich der Datenbankverbindungsdetails der Domaingruppe abzurufen, sofern konfiguriert. Ersetzen Sie <iot-domain-group-OCID>
durch die OCID für die Domaingruppe IoT:
oci iot domain-group get --iot-domain-group-id <iot-domain-group-OCID>
"lifecycleState": "ACTIVE"
und den folgenden Datenhost verwendet: wtmn2xs4ifkba.data.iot.us-phoenix-1.oci.oraclecloud.com
. In diesem Beispiel ist wtmn2xs4ifkba
die IoT Domaingruppen-Kurz-ID. {
"data": {
"compartment-id": "<compartment-OCID>",
"data-host": "wtmn2xs4ifkba.data.iot.<region>.oci.oraclecloud.com",
"db-allow-listed-vcn-ids": null,
"db-connection-string": null,
"db-token-scope": null,
"defined-tags": {
"Oracle-Tags": {
"CreatedBy": "default/user@oracle.com",
"CreatedOn": "2025-08-14T16:43:02.950Z"
}
},
"description": "This is a sample domain group",
"display-name": "Sample Domain Group",
"freeform-tags": {},
"id": "<iot-domain-group-OCID>",
"lifecycle-state": "ACTIVE",
"system-tags": {},
"time-created": "2025-08-14T16:43:03.307000+00:00",
"time-updated": "2025-08-14T16:54:58.187000+00:00"
},
"etag": "<unique-id>"
}
Schritt 2: IoT-Domain erstellen
Verwenden Sie den Befehl oci iot domain create
und die erforderlichen Parameter <domain-group-OCID>
und <compartment-OCID>
, um eine Internet of Things-Domain zu erstellen. Ersetzen Sie <domain-group-OCID> durch die OCID für die Domaingruppe, die Sie mit dieser IoT-Domain verknüpfen möchten. Ersetzen Sie <your-sample-description> durch eine Beschreibung für Ihre IoT-Domain.
oci iot domain create --compartment-id <compartment-OCID> --iot-domain-group-id <domain-group-OCID> --display-name <your-iot-domain-name> --description <your-iot-domain-description>
Das Erstellen einer Domain kann einige Minuten dauern. In dieser Beispielantwort wird die URL für den Gerätehost mit der Domain-Kurz-ID angezeigt:
"device-host": "cuay2mrhlgrrg.device.iot.<region>.oci.oraclecloud.com"
Domain-Kurz-ID: cuay2mrhlgrrg
"device-host": "<domain-short-id>.device.iot.<region>.oci.oraclecloud.com"
{
"data": {
"compartment-id": "<compartment-OCID>",
"data-retention-periods-in-days": {
"historized-data": 30,
"raw-command-data": 16,
"raw-data": 16,
"rejected-data": 16
},
"db-allow-listed-identity-group-names": null,
"db-allowed-identity-domain-host": null,
"defined-tags": {
"Oracle-Tags": {
"CreatedBy": "default/user@oracle.com",
"CreatedOn": "2025-08-14T16:57:03.140Z"
}
},
"description": "<your-iot-domain-description>",
"device-host": "cuay2mrhlgrrg.device.iot.<region>.oci.oraclecloud.com",
"display-name": "<your-iot-domain-name>",
"freeform-tags": {},
"id": "<iot-domain-OCID>",
"iot-domain-group-id": "<iot-domain-group-OCID>",
"lifecycle-state": "CREATING",
"system-tags": {},
"time-created": "2025-08-14T16:57:03.384000+00:00",
"time-updated": "2025-08-14T16:57:03.384000+00:00"
},
"etag": "<unique-id>",
"opc-work-request-id": "<work-request-OCID>"
}
Optional. Verwenden Sie während der Zeit, die zum Erstellen der Domain erforderlich ist, den Befehl oci iot work-request get
und den erforderlichen Parameter, um die Arbeitsanforderungsaktualisierung zum Erstellen der Domain abzurufen. Ersetzen Sie <work-request-id> durch die Arbeitsanforderungs-ID aus der vorherigen Antwort:
oci iot work-request get --work-request-id <work-request-OCID>
Die Beispielantwort zeigt, dass die Erstellung einer IoT-Domain akzeptiert wurde und in Bearbeitung ist.
{
"data": {
"compartment-id": "<iot-domain-OCID>",
"id": "<work-request-OCID>",
"operation-type": "CREATE_IOT_DOMAIN",
"percent-complete": 50.0,
"resources": [
{
"action-type": "IN_PROGRESS",
"entity-type": "iotDomain",
"entity-uri": "/20250531/iotDomains/<iot-domain-OCID>",
"identifier": "<iot-domain-OCID>",
"metadata": null
}
],
"status": "ACCEPTED",
"time-accepted": "2025-08-14T16:57:03.413000+00:00",
"time-finished": null,
"time-started": null,
"time-updated": "2025-08-14T16:57:23.124000+00:00"
},
"etag": "<unique-id>"
}
oci iot work-request list-logs
und den erforderlichen Parameter verwenden, um Logeinträge für die Arbeitsanforderung zum Erstellen einer IoT-Domain aufzulisten:oci iot work-request list-logs --work-request-id <work-request-OCID>
Diese Beispielantwort zeigt die Schritte zum Erstellen der IoT-Domain und deren Fertigstellung:
{
"data": {
"items": [
{
"message": "Generating DNS record(s)",
"timestamp": "2025-08-14T16:57:22.148000+00:00"
},
{
"message": "Onboarding domain schema(s)",
"timestamp": "2025-08-14T16:57:23.124000+00:00"
},
{
"message": "Successfully onboarded domain schemas",
"timestamp": "2025-08-14T16:58:43.508000+00:00"
},
{
"message": "Finishing work request",
"timestamp": "2025-08-14T16:58:43.771000+00:00"
}
]
}
}
oci iot work-request get
und die erforderlichen Parameter, um die Arbeitsanforderungsaktualisierung zum Erstellen der Domain abzurufen. Ersetzen Sie die <work-request-id> durch die Arbeitsanforderungs-OCID:oci iot work-request get --work-request-id <work-request-OCID>
Diese Beispielantwort zeigt, wie die IoT-Domain erfolgreich erstellt wurde.
"status": "SUCCEEDED",
{
"data": {
"compartment-id": "<compartment-OCID>",
"id": "<work-request-OCID>",
"operation-type": "CREATE_IOT_DOMAIN",
"percent-complete": 100.0,
"resources": [
{
"action-type": "CREATED",
"entity-type": "iotDomain",
"entity-uri": "/20250531/iotDomains/<iot-domain-OCID>",
"identifier": "<iot-domain-OCID>",
"metadata": null
}
],
"status": "SUCCEEDED",
"time-accepted": "2025-08-14T16:57:03.413000+00:00",
"time-finished": "2025-08-14T16:58:43.771000+00:00",
"time-started": "2025-08-14T16:57:22.147000+00:00",
"time-updated": "2025-08-14T16:58:43.771000+00:00"
},
"etag": "<unique-id>"
}
Optionaler Schritt: IoT-Domaindetails abrufen
oci iot domain get
und den erforderlichen Parameter, um die Details einer Domain abzurufen. Ersetzen Sie <iot-domain-OCID>
durch die OCID für die IoT-Domain.oci iot domain get --iot-domain-id <iot-domain-OCID>
Diese Beispielantwort zeigt, dass die Domain aktiv ist: "lifecycle-state": "ACTIVE"
und die Gerätehost-URL mit der Domain-Kurz-ID:
<domain-short-id>.device.iot.<region>.oci.oraclecloud.com
{
"data": {
"compartment-id": "<compartment-OCID>",
"data-retention-periods-in-days": {
"historized-data": 30,
"raw-command-data": 16,
"raw-data": 16,
"rejected-data": 16
},
"db-allow-listed-identity-group-names": null,
"db-allowed-identity-domain-host": null,
"defined-tags": {
"Oracle-Tags": {
"CreatedBy": "default/user@oracle.com",
"CreatedOn": "2025-08-14T16:57:03.140Z"
}
},
"description": "<your-iot-domain-description>",
"device-host": "<domain-short-id>.device.iot.<region>.oci.oraclecloud.com",
"display-name": "<your-iot-domain-name>",
"freeform-tags": {},
"id": "<iot-domain-OCID>",
"iot-domain-group-id": "<iot-domain-group-OCID>",
"lifecycle-state": "ACTIVE",
"system-tags": {},
"time-created": "2025-08-14T16:57:03.384000+00:00",
"time-updated": "2025-08-14T16:58:43.789000+00:00"
},
"etag": "<unique-id>"
}
Schritt 3: Digitale Zwillingsinstanz erstellen
Verwenden Sie den Befehl oci iot digital-twin-instance create
und den erforderlichen Parameter <iot-domain-OCID>
, um eine digitale Zwillingsinstanz für eine verknüpfte IoT-Domain zu erstellen. Wenn Sie eine digitale Zwillingsinstanz erstellen, ist eine Authentifizierungs-ID erforderlich. Verwenden Sie ein Zertifikat oder ein Secret. Informationen hierzu finden Sie unter Secret erstellen.
<iot-domain-OCID>
durch die OCID der Domain IoT für die Instanz des digitalen Zwillings. Dieser Beispielbefehl enthält den optionalen Anzeigenamen. Ersetzen Sie <display-name>
durch einen benutzerfreundlichen Namen für die Instanz des digitalen Zwillings:oci iot digital-twin-instance create --iot-domain-id <iot-domain-OCID> --auth-id <vault-secret-OCID> --display-name <display-name>
Beispielantwort:{
"data": {
"auth-id": "<vault-secret-OCID>",
"defined-tags": {
"Oracle-Tags": {
"CreatedBy": "default/user@oracle.com",
"CreatedOn": "2025-08-14T06:12:43.393Z"
}
},
"description": null,
"digital-twin-adapter-id": "<iot-digital-twin-adapter-OCID>",
"digital-twin-model-id": "<iot-digital-twin-model-OCID>",
"digital-twin-model-spec-uri": "dtmi:com:oracle:example:core:Space:sp;1",
"display-name": "device for conference room 103",
"external-key": "<unique-id>",
"freeform-tags": {},
"id": "<iot-digital-twin-instance-OCID>",
"iot-domain-id": "<iot-domain-OCID>",
"lifecycle-state": "ACTIVE",
"system-tags": {},
"time-created": "2025-09-11T06:12:44.178000+00:00",
"time-updated": "2025-09-11T06:12:44.178000+00:00"
},
"etag": "<unique-id>"
}
Schritt 4: Daten senden
Senden Sie Daten mit der URL des Gerätehosts aus dem vorherigen Schritt.
Sie können so viele Daten senden, wie Sie senden möchten. Dieses Beispiel zeigt das Senden von 2 Nur-Text-Datennachrichten. Das erste Beispiel zeigt den Befehl, der Werte aus diesem Szenario verwendet. Der zweite Befehl zeigt die Wertnamen an. Weitere Informationen finden Sie unter cURL verwenden.
Ersetzen Sie <domain-short-id>
und <region>
durch die Werte für Ihre Umgebung:
https://<domain-short-id>.device.iot.<region>.oci.oraclecloud.com/sampletopic
curl
enthält die Gerätehost-URL und zeigt die Werte basierend auf diesem Szenario und ein Beispielthema an:curl -u '9K7F8Y3HJGX1FA1GFG9QVV9E2C<vault-secret-OCID>' https://<domain-short-id>.device.iot.us-phoenix-1.oci.oraclecloud.com/sampletopic -H 'Content-Type: plain-text' -d "sample data 2"
Dieser Beispielbefehl curl
zeigt den Namen der Werte ohne die Beispielwerte aus diesem Szenario an:curl -u '<external-key>:<vault-secret-OCID>' https://<domain-short-id>.device.iot.<region>.oci.oraclecloud.com/sampletopic -H 'Content-Type: plain-text' -d "sample data 1"
Schritt 5: Zugriff der IoT-Domain auf APEX konfigurieren
Um Ihre Daten in APEX anzuzeigen, müssen Sie den Zugriff zum Anzeigen Ihrer IoT-Daten in APEX konfigurieren. In einem Schritt in diesem Prozess wird der folgende Befehl verwendet, um das APEX-Kennwort zur IoT-Domain hinzuzufügen, damit sie auf APEX zugreifen kann.
oci iot domain configure-apex-data-access
und die erforderlichen Parameter, um den Zugriff einer IoT-Domain auf APEX zu konfigurieren. Ersetzen Sie <your-initial-apex-password>
und <iot-domain-OCID>
durch die Werte für Ihre Umgebung:oci iot domain configure-apex-data-access --iot-domain-id <iot-domain-OCID> --db-workspace-admin-initial-password <your-inital-apex-password>
Beispielantwort:
{
"opc-work-request-id": "<work-request-OCID>"
}
Optional. Verwenden Sie während der Zeit, die für die Konfiguration des Zugriffs auf APEX erforderlich ist, den Befehl oci iot work-request get
und den erforderlichen Parameter, um die Arbeitsanforderungsaktualisierung abzurufen. Ersetzen Sie <work-request-id> durch die Arbeitsanforderungs-ID aus der vorherigen Antwort:
oci iot work-request get --work-request-id <work-request-OCID>
Beispielantwort:
{
"data": {
"compartment-id": "<compartment-OCID>",
"id": "<work-request-OCID>",
"operation-type": "CONFIGURE_DOMAIN_DATA_ACCESS",
"percent-complete": 0.0,
"resources": [
{
"action-type": "IN_PROGRESS",
"entity-type": "iotDomain",
"entity-uri": "/20250531/iotDomains/<iot-domain-OCID>",
"identifier": "<iot-domain-OCID>",
"metadata": null
}
],
"status": "ACCEPTED",
"time-accepted": "2025-08-14T17:44:44.716000+00:00",
"time-finished": null,
"time-started": null,
"time-updated": "2025-08-14T17:44:44.716000+00:00"
},
"etag": "<unique-id>"
}
oci iot work-request list-logs
und den erforderlichen Parameter zum Auflisten von Logeinträgen für die Arbeitsanforderung verwenden:oci iot work-request list-logs --work-request-id <work-request-OCID>
Diese Beispielantwort zeigt, dass der Zugriff auf APEX für die Domain in Bearbeitung ist und dass sie abgeschlossen ist:
{
"data": {
"items": [
{
"message": "Configuring domain data access is in Progress",
"timestamp": "2025-08-14T17:45:19.708000+00:00"
},
{
"message": "Finishing work request",
"timestamp": "2025-08-14T17:45:19.978000+00:00"
}
]
}
}
oci iot work-request list-errors
und den erforderlichen Parameter verwenden, um Arbeitsanforderungsfehler aufzulisten:oci iot work-request list-errors --work-request-id <work-request-OCID>
{
"data": {
"items": []
}
}
oci iot work-request get
und den erforderlichen Parameter, um die Arbeitsanforderung abzurufen. Ersetzen Sie <work-request-id> durch die Arbeitsanforderungs-ID:oci iot work-request get --work-request-id <work-request-OCID>
Diese Beispielantwort zeigt, wie der Zugriff auf APEX für die Domain IoT aktualisiert wird:
"status": "SUCCEEDED"
{
"data": {
"compartment-id": "<compartment-OCID>",
"id": "<work-request-OCID>",
"operation-type": "CONFIGURE_DOMAIN_DATA_ACCESS",
"percent-complete": 100.0,
"resources": [
{
"action-type": "UPDATED",
"entity-type": "iotDomain",
"entity-uri": "/20250531/iotDomains/<iot-domain-OCID>",
"identifier": "<iot-domain-OCID>",
"metadata": null
}
],
"status": "SUCCEEDED",
"time-accepted": "2025-08-14T17:44:44.716000+00:00",
"time-finished": "2025-08-14T17:45:19.978000+00:00",
"time-started": "2025-08-14T17:45:19.708000+00:00",
"time-updated": "2025-08-14T17:45:19.978000+00:00"
},
"etag": "<unique-id>"
}
Schritt 6: Auf IoT-Daten in APEX zugreifen
Melden Sie sich mit der Domain-Kurz-ID, die vom Gerätehost stammt, bei APEX an:
https://<domain-group-short-id-from-data-host>.data.iot.<region>.oci.oraclecloud.com/ords/r/apex
device-host:<domain-short-id>.device.iot.<region>.oci.oraclecloud.com
Melden Sie sich unter APEX an:- Datenbank:
<domain-short-id-from-device-host>__WKSP
- Benutzername:
<domain-short-id-from-device-host>__WKSP
- Anfängliches Kennwort, das festgelegt wird, wenn Sie den CLI-Befehl verwendet haben, um den Datenzugriff einer IoT-Domain für APEX zu konfigurieren:
<initial-apex-password>
Hinweis
Verwenden Sie nur Großbuchstaben für die<domain-short-id-from-device-host>
, und beachten Sie die beiden Unterstriche: __WKSP- Datenbank:
- Um die IoT-Daten abzufragen, wählen Sie das Schema
<domain-short-id-from-device-host>__IOT
aus. Wählen Sie SQL Workshop und dann Object Browser aus.SQL Workshop-URL:
https://<domain-group-short-id-from-data-host>.data.iot.<region>.oci.oraclecloud.com/ords/r/apex/sql-workshop
- Fragen Sie IoT-Daten ab, indem Sie einen SQL-Befehl eingeben und ausführen. Bestätigen Sie, dass Sie das richtige Schema für die Datenbanktabelle ausgewählt haben, die Sie abfragen möchten, und führen Sie den folgenden Befehl aus:
select * from RAW_DATA
Jetzt können Sie die Datenbankansichten, Schemas und Rohdaten für Ihr verbundenes Internet of Things-Gerät anzeigen.
Um einen größeren Screenshot anzuzeigen, klicken Sie mit der rechten Maustaste und öffnen Sie das Bild in einem neuen Browserfenster.