Verwenden Sie einen C2C-Konnektor (Cloud-to-Cloud) - Verwaltete Integrationen für AWS IoT Device Management

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie einen C2C-Konnektor (Cloud-to-Cloud)

Ein C2C-Konnektor verwaltet die Übersetzung von Anfrage- und Antwortnachrichten und ermöglicht die Kommunikation zwischen verwalteten Integrationen und einer Cloud eines Drittanbieters. Er ermöglicht die einheitliche Steuerung verschiedener Gerätetypen, Plattformen und Protokolle, sodass Geräte von Drittanbietern integriert und verwaltet werden können.

Im folgenden Verfahren werden die Schritte zur Verwendung des C2C-Anschlusses aufgeführt.

Schritte zur Verwendung des C2C-Anschlusses:
  1. CreateCloudConnector

    Konfigurieren Sie einen Konnektor, um die bidirektionale Kommunikation zwischen Ihren verwalteten Integrationen und Clouds von Drittanbietern zu ermöglichen.

    Geben Sie bei der Einrichtung des Connectors die folgenden Details an:

    • Name: Wählen Sie einen aussagekräftigen Namen für den Connector.

    • Beschreibung: Geben Sie eine kurze Zusammenfassung des Zwecks und der Funktionen des Connectors an.

    • AWS Lambda ARN: Geben Sie den Amazon-Ressourcennamen (ARN) der AWS Lambda Funktion an, die den Connector mit Strom versorgt.

    Erstellen und implementieren Sie eine AWS Lambda Funktion, die mit einem Drittanbieter kommuniziert APIs , um einen Konnektor zu erstellen. Rufen Sie als Nächstes die CreateCloudConnectorAPI in verwalteten Integrationen auf und stellen Sie die AWS Lambda Funktion ARN für die Registrierung bereit. Stellen Sie sicher, dass die AWS Lambda Funktion in demselben AWS Konto bereitgestellt wird, in dem Sie den Connector in verwalteten Integrationen erstellen. Ihnen wird eine eindeutige Connector-ID zugewiesen, um die Integration zu identifizieren.

    Beispiel für eine CreateCloudConnector API-Anfrage und -Antwort:

    Request: { "Name": "CreateCloudConnector", "Description": "Testing for C2C", "EndpointType": "LAMBDA", "EndpointConfig": { "lambda": { "arn": "arn:aws:lambda:us-east-1:xxxxxx:function:TestingConnector" } }, "ClientToken": "abc" } Response: { "Id": "string" }

    Ablauf der Erstellung:

    Phase der Erstellung des Cloud-Connectors
    Anmerkung

    Verwenden Sie für dieses Verfahren nach ListCloudConnectors APIs Bedarf DeleteCloudConnector,, und. GetCloudConnectorUpdateCloudConnector

  2. CreateConnectorDestination

    Konfigurieren Sie Destinations so, dass sie die Einstellungen und Authentifizierungsdaten bereitstellen, die Connectors benötigen, um sichere Verbindungen mit Clouds von Drittanbietern herzustellen. Verwenden Sie Destinations, um Ihre Authentifizierungsdaten von Drittanbietern bei verwalteten Integrationen zu registrieren, z. B. OAuth 2.0-Autorisierungsdetails, einschließlich der Autorisierungs-URL, des Authentifizierungsschemas und des Speicherorts der Anmeldeinformationen darin AWS Secrets Manager.

    Voraussetzungen

    Bevor Sie eine erstellen ConnectorDestination, müssen Sie:

    • Rufen Sie die CreateCloudConnectorAPI auf, um einen Connector zu erstellen. Die ID, die die Funktion zurückgibt, wird im CreateConnectorDestinationAPI-API-Aufruf verwendet.

    • Rufen Sie die tokenUrl für die 3P-Plattform des Konnektors ab. (Sie können einen AuthCode gegen ein AccessToken austauschen).

    • Rufen Sie die AuthURL für die 3P-Plattform des Connectors ab. (Endbenutzer können sich mit ihrem Benutzernamen und Passwort authentifizieren).

    • Verwenden Sie das clientId und clientSecret (von der 3P-Plattform) im Secret Manager Ihres Kontos.

    Beispiel für eine CreateConnectorDestination API-Anfrage und -Antwort:

    Request: { "Name": "CreateConnectorDestination", "Description": "CreateConnectorDestination", "AuthType": "OAUTH", "AuthConfig": { "oAuth": { "authUrl": "https://xxxx.com/oauth2/authorize", "tokenUrl": "https://xxxx/oauth2/token", "scope": "testScope", "tokenEndpointAuthenticationScheme": "HTTP_BASIC", "oAuthCompleteRedirectUrl": "about:blank", "proactiveRefreshTokenRenewal": { "enabled": false, "DaysBeforeRenewal": 30 } } }, "CloudConnectorId": "<connectorId>", // The connectorID instance from response of Step 1. "SecretsManager": { "arn": "arn:aws:secretsmanager:*****:secret:*******", "versionId": "********" }, "ClientToken": "***" } Response: { "Id":"string" }

    Ablauf bei der Erstellung von Cloud-Zielen:

    CreateConnectorDestination API-Aufrufphase
    Anmerkung

    Verwenden Sie GetCloudConnector, UpdateCloudConnectorDeleteCloudConnector, und nach ListCloudConnectors APIs Bedarf für dieses Verfahren.

  3. CreateAccountAssociation

    Zuordnungen stellen die Beziehungen zwischen Cloud-Konten von Drittanbietern von Endbenutzern und einem Connector-Ziel dar. Nachdem Sie eine Zuordnung erstellt und Endbenutzer mit verwalteten Integrationen verknüpft haben, ist der Zugriff auf ihre Geräte über eine eindeutige Zuordnungs-ID möglich. Diese Integration ermöglicht drei Hauptfunktionen: das Erkennen von Geräten, das Senden von Befehlen und das Empfangen von Ereignissen.

    Voraussetzungen

    Bevor AccountAssociationSie eine erstellen, müssen Sie die folgenden Schritte ausführen:

    Beispiel für eine CreateAccountAssociation API-Anfrage und -Antwort:

    Request: { "Name": "CreateAccountAssociation", "Description": "CreateAccountAssociation", "ConnectorDestinationId": "<destinationId>", //The destinationID from destination creation. "ClientToken": "***" } Response: { "Id":"string" }
    Anmerkung

    Verwenden Sie für dieses Verfahren nach ListCloudConnectors APIs Bedarf DeleteCloudConnector,, und. GetCloudConnectorUpdateCloudConnector

    An AccountAssociationhat einen Status, der von GetAccountAssociationund abgefragt wird. ListAccountAssociations APIs Dies APIs zeigt den Status des Vereins. Die StartAccountAssociationRefreshAPI ermöglicht die Aktualisierung eines AccountAssociationStatus, wenn sein Aktualisierungstoken abläuft.

  4. Erkennung von Geräten

    Jedes verwaltete Objekt ist mit gerätespezifischen Details wie der Seriennummer und einem Datenmodell verknüpft. Das Datenmodell beschreibt die Funktionalität des Geräts und gibt an, ob es sich um eine Glühbirne, einen Schalter, einen Thermostat oder einen anderen Gerätetyp handelt. Um ein 3P-Gerät zu erkennen und ein ManagedThing für das 3P-Gerät zu erstellen, müssen Sie die folgenden Schritte nacheinander ausführen.

    1. Rufen Sie die StartDeviceDiscoveryAPI auf, um den Geräteerkennungsprozess zu starten.

      Beispiel für eine StartDeviceDiscovery API-Anfrage und -Antwort:

      Request: { "DiscoveryType": "CLOUD", "AccountAssociationId": "*****", "ClientToken": "abc" } Response: { "Id": "string", "StartedAt": number }
    2. Rufen Sie die GetDeviceDiscoveryAPI auf, um den Status des Erkennungsprozesses zu überprüfen.

    3. Rufen Sie die ListDiscoveredDevicesAPI auf, um die erkannten Geräte aufzulisten.

      Beispiel für eine ListDiscoveredDevices API-Anfrage und -Antwort:

      Request: //Empty body Response: { "Items": [ { "Brand": "string", "ConnectorDeviceId": "string", "ConnectorDeviceName": "string", "DeviceTypes": [ "string" ], "DiscoveredAt": number, "ManagedThingId": "string", "Model": "string", "Modification": "string" } ], "NextToken": "string" }
    4. Rufen Sie die CreateManagedThingAPI auf, um die Geräte aus der Discovery-Liste auszuwählen, die in verwaltete Integrationen importiert werden sollen.

      Beispiel für eine CreateManagedThing API-Anfrage und -Antwort:

      Request: { "Role": "DEVICE", "AuthenticationMaterial": "CLOUD:XXXX:<connectorDeviceId1>", "AuthenticationMaterialType": "DISCOVERED_DEVICE", "Name": "sample-device-name" "ClientToken": "xxx" } Response: { "Arn": "string", // This is the ARN of the managedThing "CreatedAt": number, "Id": "string" }
    5. Rufen Sie die GetManagedThingAPI auf, um diese neu erstellte managedThing Datei anzuzeigen. Der Status wird sein. UNASSOCIATED

    6. Rufen Sie die RegisterAccountAssociationAPI auf, um dies einer bestimmten managedThing accountAssociation Person zuzuordnen. Am Ende einer erfolgreichen RegisterAccountAssociationAPI managedThing ändert sich der ASSOCIATED Status.

      Beispiel für eine RegisterAccountAssociation API-Anfrage und -Antwort:

      Request: { "AccountAssociationId": "string", "DeviceDiscoveryId": "string", "ManagedThingId": "string" } Response: { "AccountAssociationId": "string", "DeviceDiscoveryId": "string", "ManagedThingId": "string" }
  5. Senden Sie einen Befehl an das 3P-Gerät

    Um ein neu integriertes Gerät zu steuern, verwenden Sie die SendManagedThingCommandAPI mit der zuvor erstellten Zuordnungs-ID und einer Steueraktion, die auf der vom Gerät unterstützten Funktion basiert. Der Connector verwendet gespeicherte Anmeldeinformationen aus dem Kontoverknüpfungsprozess, um sich bei der Drittanbieter-Cloud zu authentifizieren und den entsprechenden API-Aufruf für den Vorgang aufzurufen.

    Beispiel für eine SendManagedThingCommand API-Anfrage und -Antwort:

    Request: { "AccountAssociationId": "string", "ConnectorAssociationId": "string", "Endpoints": [ { "capabilities": [ { "actions": [ { "actionTraceId": "string", "name": "string", "parameters": JSON value, "ref": "string" } ], "id": "string", "name": "string", "version": "string" } ], "endpointId": "string" } ] } Response: { "TraceId": "string" }

    Befehl an den 3P-Gerätefluss senden:

    Befehl an 3P-Gerät senden
  6. Connector sendet Ereignisse an verwaltete Integrationen

    Die SendConnectorEventAPI erfasst vier Ereignistypen vom Connector bis hin zu verwalteten Integrationen, die durch die folgenden Aufzählungswerte für den Parameter Operation Type dargestellt werden:

    • DEVICE_COMMAND_RESPONSE: Die asynchrone Antwort, die der Connector als Antwort auf einen Befehl sendet.

    • DEVICE_DISCOVERY: Als Reaktion auf einen Geräteerkennungsprozess sendet der Connector die Liste der erkannten Geräte an verwaltete Integrationen und verwendet die API. SendConnectorEvent

    • DEVICE_EVENT: Sendet die empfangenen Geräteereignisse.

    • DEVICE_COMMAND_REQUEST: Vom Gerät initiierte Befehlsanfragen. Zum Beispiel WebRTC-Workflows.

    Der Connector kann mit einem optionalen userId Parameter auch Geräteereignisse mithilfe der SendConnectorEventAPI weiterleiten.

    • Für Geräteereignisse mit einemuserId:

      Beispiel für eine SendConnectorEvent API-Anfrage und -Antwort:

      Request: { "UserId": "*****", "Operation": "DEVICE_EVENT", "OperationVersion": "1.0", "StatusCode": 200, "ConnectorId": "****", "ConnectorDeviceId": "***", "TraceId": "***", "MatterEndpoint": { "id": "**", "clusters": [{ ..... } }] } } Response: { "ConnectorId": "string" }
    • Für Geräteereignisse ohneuserId:

      Beispiel für eine SendConnectorEvent API-Anfrage und -Antwort:

      Request: { "Operation": "DEVICE_EVENT", "OperationVersion": "1.0", "StatusCode": 200, "ConnectorId": "*****", "ConnectorDeviceId": "****", "TraceId": "****", "MatterEndpoint": { "id": "**", "clusters": [{ .... }] } } Response: { "ConnectorId": "string" }

    Verwenden Sie den Abmeldemechanismus, um die Verknüpfung zwischen einer bestimmten managedThing und einer Kontoverknüpfung zu entfernen:

    Beispiel für eine DeregisterAccountAssociation API-Anfrage und -Antwort:

    Request: { "AccountAssociationId": "****", "ManagedThingId": "****" } Response: HTTP/1.1 200 // Empty body

    Ereignisablauf senden:

    Ablauf der Ereignisse senden
  7. Aktualisieren Sie den Connector-Status auf „Gelistet“, um ihn für andere Kunden mit verwalteten Integrationen sichtbar zu machen

    Standardmäßig sind Konnektoren privat und nur für das AWS Konto sichtbar, mit dem sie erstellt wurden. Sie können wählen, ob ein Connector für andere Kunden mit verwalteten Integrationen sichtbar sein soll.

    Um Ihren Connector mit anderen Benutzern zu teilen, verwenden Sie die Option Sichtbar machen AWS Management Console auf der Seite mit den Connector-Details, um Ihre Connector-ID AWS zur Überprüfung einzureichen. Nach der Genehmigung steht der Connector allen Benutzern verwalteter Integrationen in derselben AWS-Region Version zur Verfügung. Darüber hinaus können Sie den Zugriff auf ein bestimmtes AWS Konto einschränken, IDs indem Sie die Zugriffsrichtlinie für die dem Connector zugeordnete AWS Lambda Funktion ändern. Um sicherzustellen, dass Ihr Connector von anderen Kunden verwendet werden kann, verwalten Sie die IAM-Zugriffsberechtigungen für Ihre Lambda-Funktion von anderen AWS Konten auf Ihren sichtbaren Connector.

    Lesen Sie die AWS-Service Bedingungen und Richtlinien Ihrer Organisation, die die gemeinsame Nutzung von Connectoren und die Zugriffsberechtigungen regeln, bevor Sie Connectors für andere Kunden mit verwalteten Integrationen sichtbar machen.