Usa un connettore C2C (Cloud-to-Cloud) - Integrazioni gestite per AWS IoT Device Management

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa un connettore C2C (Cloud-to-Cloud)

Un connettore C2C gestisce la traduzione dei messaggi di richiesta e risposta e consente la comunicazione tra le integrazioni gestite e il cloud di un fornitore terzo. Facilita il controllo unificato su diversi tipi di dispositivi, piattaforme e protocolli, consentendo l'onboarding e la gestione di dispositivi di terze parti.

La procedura seguente elenca i passaggi per utilizzare il connettore C2C.

Passaggi per utilizzare il connettore C2C:
  1. CreateCloudConnector

    Configura un connettore per abilitare la comunicazione bidirezionale tra le integrazioni gestite e i cloud di fornitori di terze parti.

    Durante la configurazione del connettore, fornisci i seguenti dettagli:

    • Nome: scegli un nome descrittivo per il connettore.

    • Descrizione: Fornisci un breve riepilogo dello scopo e delle funzionalità del connettore.

    • AWS Lambda ARN: specifica l'Amazon Resource Name (ARN) della AWS Lambda funzione che alimenterà il connettore.

    Crea e distribuisci una AWS Lambda funzione che comunichi con un fornitore APIs terzo per creare un connettore. Successivamente, richiama l'CreateCloudConnectorAPI all'interno delle integrazioni gestite e fornisci la AWS Lambda funzione ARN per la registrazione. Assicurati che la AWS Lambda funzione sia implementata nello stesso AWS account in cui crei il connettore nelle integrazioni gestite. Ti verrà assegnato un ID connettore univoco per identificare l'integrazione.

    Esempio di richiesta e risposta CreateCloudConnector API:

    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" }

    Flusso di creazione:

    Fase di creazione del connettore cloud
    Nota

    Usa GetCloudConnector, UpdateCloudConnectorDeleteCloudConnector, e ListCloudConnectors APIs se necessario per questa procedura.

  2. CreateConnectorDestination

    Configura le destinazioni per fornire le impostazioni e le credenziali di autenticazione necessarie ai connettori per stabilire connessioni sicure con i cloud di fornitori di terze parti. Utilizza Destinations per registrare le credenziali di autenticazione di terze parti con integrazioni gestite, ad esempio i dettagli di autorizzazione OAuth 2.0, tra cui l'URL di autorizzazione, lo schema di autenticazione e la posizione delle credenziali all'interno. AWS Secrets Manager

    Prerequisiti

    Prima di creare un ConnectorDestination, devi:

    • Chiama l'CreateCloudConnectorAPI per creare un connettore. L'ID restituito dalla funzione viene utilizzato nella chiamata CreateConnectorDestinationAPI API.

    • Recupera il tokenUrl file per la piattaforma 3P del connettore. (Puoi scambiare un AuthCode con un AccessToken).

    • Recupera l'AuthURL per la piattaforma 3P del connettore. (Gli utenti finali possono autenticarsi utilizzando nome utente e password).

    • Usa clientId e clientSecret (dalla piattaforma 3P) nel gestore segreto del tuo account.

    Esempio di richiesta e risposta CreateConnectorDestination API:

    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" }

    Flusso di creazione di destinazioni cloud:

    CreateConnectorDestination Fase di richiamo dell'API
    Nota

    Utilizzare GetCloudConnector, UpdateCloudConnectorDeleteCloudConnector, e ListCloudConnectors APIs se necessario per questa procedura.

  3. CreateAccountAssociation

    Le associazioni rappresentano le relazioni tra gli account cloud di terze parti degli utenti finali e una destinazione del connettore. Dopo aver creato un'associazione e aver collegato gli utenti finali alle integrazioni gestite, i loro dispositivi sono accessibili tramite un ID di associazione univoco. Questa integrazione abilita tre funzioni chiave: scoperta dei dispositivi, invio di comandi e ricezione di eventi.

    Prerequisiti

    Prima di creare un AccountAssociation, è necessario completare quanto segue:

    Esempio di richiesta e risposta CreateAccountAssociation API:

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

    Utilizzare GetCloudConnector, UpdateCloudConnectorDeleteCloudConnector, e ListCloudConnectors APIs se necessario per questa procedura.

    An AccountAssociationha uno stato che viene interrogato da GetAccountAssociatione. ListAccountAssociations APIs Questi APIs mostrano lo stato dell'Associazione. L'StartAccountAssociationRefreshAPI consente l'aggiornamento di uno AccountAssociationstato alla scadenza del relativo token di aggiornamento.

  4. Individuazione dei dispositivi

    Ogni elemento gestito è collegato a dettagli specifici del dispositivo, come il numero di serie e un modello di dati. Il modello di dati descrive la funzionalità del dispositivo, indicando se si tratta di una lampadina, un interruttore, un termostato o un altro tipo di dispositivo. Per scoprire un dispositivo 3P e creare un ManagedThing per il dispositivo 3P, è necessario seguire i passaggi seguenti in sequenza.

    1. Chiama StartDeviceDiscoveryl'API per avviare il processo di scoperta del dispositivo.

      Esempio di richiesta e risposta StartDeviceDiscovery API:

      Request: { "DiscoveryType": "CLOUD", "AccountAssociationId": "*****", "ClientToken": "abc" } Response: { "Id": "string", "StartedAt": number }
    2. Richiama GetDeviceDiscoveryl'API per verificare lo stato del processo di scoperta.

    3. Invoca ListDiscoveredDevicesl'API per elencare i dispositivi rilevati.

      Esempio di richiesta e risposta ListDiscoveredDevices API:

      Request: //Empty body Response: { "Items": [ { "Brand": "string", "ConnectorDeviceId": "string", "ConnectorDeviceName": "string", "DeviceTypes": [ "string" ], "DiscoveredAt": number, "ManagedThingId": "string", "Model": "string", "Modification": "string" } ], "NextToken": "string" }
    4. Richiama l'CreateManagedThingAPI per selezionare i dispositivi dall'elenco di rilevamento da importare nelle integrazioni gestite.

      Esempio di richiesta e risposta CreateManagedThing API:

      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. Invoca GetManagedThingl'API per visualizzare questa nuova creazionemanagedThing. Lo stato saràUNASSOCIATED.

    6. Invoca RegisterAccountAssociationl'API per associarlo managedThing a uno specificoaccountAssociation. Al termine di un'RegisterAccountAssociationAPI di successo, lo ASSOCIATED stato managedThing cambia.

      Esempio di richiesta e risposta RegisterAccountAssociation API:

      Request: { "AccountAssociationId": "string", "DeviceDiscoveryId": "string", "ManagedThingId": "string" } Response: { "AccountAssociationId": "string", "DeviceDiscoveryId": "string", "ManagedThingId": "string" }
  5. Invia un comando al dispositivo 3P

    Per controllare un dispositivo appena installato, utilizza l'SendManagedThingCommandAPI, con l'Association ID creato in precedenza e un'azione di controllo basata sulla funzionalità supportata dal dispositivo. Il connettore utilizza le credenziali memorizzate dal processo di collegamento dell'account, per autenticarsi con il cloud di terze parti e richiamare la chiamata API pertinente per l'operazione.

    Esempio di richiesta e risposta SendManagedThingCommand API:

    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" }

    Invia il comando al flusso del dispositivo 3P:

    Invia il comando al dispositivo 3P
  6. Il connettore invia eventi alle integrazioni gestite

    L'SendConnectorEventAPI acquisisce quattro tipi di eventi dal connettore alle integrazioni gestite, rappresentati dai seguenti valori enum per il parametro Operation Type:

    • DEVICE_COMMAND_RESPONSE: la risposta asincrona che il connettore invia in risposta a un comando.

    • DEVICE_DISCOVERY: in risposta a un processo di rilevamento dei dispositivi, il connettore invia l'elenco dei dispositivi rilevati alle integrazioni gestite, utilizza l'API. SendConnectorEvent

    • DEVICE_EVENT: invia gli eventi del dispositivo ricevuti.

    • DEVICE_COMMAND_REQUEST: richieste di comando avviate dal dispositivo. Ad esempio, i flussi di lavoro WebRTC.

    Il connettore può anche inoltrare gli eventi del dispositivo utilizzando l'SendConnectorEventAPI, con un parametro opzionale. userId

    • Per gli eventi dei dispositivi con unuserId:

      Esempio di richiesta e risposta SendConnectorEvent API:

      Request: { "UserId": "*****", "Operation": "DEVICE_EVENT", "OperationVersion": "1.0", "StatusCode": 200, "ConnectorId": "****", "ConnectorDeviceId": "***", "TraceId": "***", "MatterEndpoint": { "id": "**", "clusters": [{ ..... } }] } } Response: { "ConnectorId": "string" }
    • Per gli eventi relativi ai dispositivi senzauserId:

      Esempio di richiesta e risposta SendConnectorEvent API:

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

    Per rimuovere il collegamento tra una determinata associazione managedThing e un'associazione di account, utilizza il meccanismo di annullamento della registrazione:

    Esempio di richiesta e risposta DeregisterAccountAssociation API:

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

    Invia flusso di eventi:

    Invia flusso di eventi
  7. Aggiorna lo stato del connettore su «In elenco» per renderlo visibile agli altri clienti delle integrazioni gestite

    Per impostazione predefinita, i connettori sono privati e visibili solo all' AWS account che li ha creati. Puoi scegliere di rendere visibile un connettore agli altri clienti di Managed Integrations.

    Per condividere il connettore con altri utenti, utilizza l'opzione Rendi visibile nella AWS Management Console pagina dei dettagli del connettore per inviare il tuo ID del connettore AWS per la revisione. Una volta approvato, il connettore è disponibile per tutti gli utenti delle integrazioni gestite all'interno dello stesso Regione AWS dispositivo. Inoltre, puoi limitare l'accesso a un AWS account specifico IDs modificando la politica di accesso sulla funzione associata AWS Lambda al connettore. Per garantire che il connettore sia utilizzabile da altri clienti, gestisci le autorizzazioni di accesso IAM sulla tua funzione Lambda da AWS altri account al tuo connettore visibile.

    Consulta i Servizio AWS termini e le politiche della tua organizzazione che regolano la condivisione dei connettori e le autorizzazioni di accesso prima di rendere i connettori visibili agli altri clienti delle integrazioni gestite.