

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utiliser un connecteur C2C (Cloud-to-Cloud)
<a name="use-c2c-create-cloud-connector"></a>

 Un connecteur C2C gère la traduction des messages de demande et de réponse et permet la communication entre les intégrations gérées et le cloud d'un fournisseur tiers. Il facilite le contrôle unifié entre différents types d'appareils, plateformes et protocoles, permettant d'intégrer et de gérer des appareils tiers. 

La procédure suivante répertorie les étapes d'utilisation du connecteur C2C.

**Étapes d'utilisation du connecteur C2C :**

1. **CreateCloudConnector**

   Configurez un connecteur pour permettre une communication bidirectionnelle entre vos intégrations gérées et les clouds de fournisseurs tiers.

   Lors de la configuration du connecteur, fournissez les informations suivantes :
   + **Nom** : Choisissez un nom descriptif pour le connecteur.
   + **Description** : fournissez un bref résumé de l'objectif et des fonctionnalités du connecteur.
   + **AWS Lambda ARN** : Spécifiez l'Amazon Resource Name (ARN) de la AWS Lambda fonction qui alimentera le connecteur.

    Créez et déployez une AWS Lambda fonction qui communique avec un fournisseur tiers APIs pour créer un connecteur. Ensuite, appelez l'[CreateCloudConnector](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateCloudConnector.html)API dans les intégrations gérées et fournissez la AWS Lambda fonction ARN pour l'enregistrement. Assurez-vous que la AWS Lambda fonction est déployée dans le AWS compte où vous avez créé le connecteur dans les intégrations gérées. Un **identifiant de connecteur** unique vous sera attribué pour identifier l'intégration. 

   **Exemple de demande et de réponse à l' 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"
   }
   ```

   **Flux de création :**  
![Phase de création du connecteur cloud](http://docs.aws.amazon.com/fr_fr/iot-mi/latest/devguide/images/iot-managedintegrations-createcloudconnector.png)
**Note**  
 Utilisez le [GetCloudConnector](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetCloudConnector.html), [UpdateCloudConnector[DeleteCloudConnector](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_DeleteCloudConnector.html)](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_UpdateCloudConnector.html), et selon [ListCloudConnectors](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_ListCloudConnectors.html) APIs les besoins pour cette procédure. 

1. **CreateConnectorDestination**

   Configurez les destinations pour fournir les paramètres et les informations d'authentification dont les connecteurs ont besoin pour établir des connexions sécurisées avec les clouds de fournisseurs tiers. Utilisez Destinations pour enregistrer vos informations d'authentification tierces avec des intégrations gérées, telles que les détails d'autorisation OAuth 2.0, y compris l'URL d'autorisation, le schéma d'authentification et l'emplacement des informations d'identification qu'ils contiennent. AWS Secrets Manager

   **Conditions préalables**

   Avant de créer un **ConnectorDestination**, vous devez :
   + Appelez l'[CreateCloudConnector](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateCloudConnector.html)API pour créer un connecteur. L'ID renvoyé par la fonction est utilisé dans l'appel d'[CreateConnectorDestination](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateConnectorDestination.html)API.
   + Récupérez le `tokenUrl` pour la plate-forme 3P du connecteur. (Vous pouvez échanger un **AuthCode** contre un **AccessToken**).
   + Récupérez l'**AuthURL** de la plate-forme 3P du connecteur. (Les utilisateurs finaux peuvent s'authentifier à l'aide de leur nom d'utilisateur et de leur mot de passe).
   + Utilisez le `clientId` et `clientSecret` (depuis la plateforme 3P) dans le gestionnaire secret de votre compte.

   **Exemple de demande et de réponse à l' 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"
   }
   ```

   **Flux de création de destinations cloud :**  
![CreateConnectorDestination Phase d'appel de l'API](http://docs.aws.amazon.com/fr_fr/iot-mi/latest/devguide/images/iot-managedintegrations-createconnectordestination.png)
**Note**  
 Utilisez le [GetCloudConnector](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetCloudConnector.html), [UpdateCloudConnector[DeleteCloudConnector](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_DeleteCloudConnector.html)](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_UpdateCloudConnector.html), et selon [ListCloudConnectors](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_ListCloudConnectors.html) APIs les besoins pour cette procédure. 

1. **CreateAccountAssociation**

   Les associations représentent les relations entre les comptes cloud tiers des utilisateurs finaux et une destination de connecteur. Après avoir créé une association et lié les utilisateurs finaux à des intégrations gérées, leurs appareils sont accessibles via un **identifiant d'association** unique. Cette intégration permet trois fonctions clés : la découverte d'appareils, l'envoi de commandes et la réception d'événements. 

   **Conditions préalables**

   Avant de créer un, **AccountAssociation**vous devez effectuer les opérations suivantes :
   + Appelez l'[CreateConnectorDestination](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateConnectorDestination.html)API pour créer une destination. L'ID renvoyé par la fonction est utilisé dans l'appel [CreateAccountAssociation](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateAccountAssociation.html)d'API.
   + Appelez l'[CreateAccountAssociation](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateAccountAssociation.html)API.

   **Exemple de demande et de réponse à l' CreateAccountAssociation API :**

   ```
   Request:
   
   {
       "Name": "CreateAccountAssociation",
       "Description": "CreateAccountAssociation",
       "ConnectorDestinationId": "<{{destinationId}}>", //The destinationID from destination creation.
       "ClientToken": "***"
   }
           
   Response:
   
   {
       "Id":"string"
   }
   ```
**Note**  
 Utilisez le [GetCloudConnector](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetCloudConnector.html), [UpdateCloudConnector[DeleteCloudConnector](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_DeleteCloudConnector.html)](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_UpdateCloudConnector.html), et selon [ListCloudConnectors](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_ListCloudConnectors.html) APIs les besoins pour cette procédure. 

    An **AccountAssociation**possède un état qui est demandé à partir [GetAccountAssociation](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetAccountAssociation.html)de et. [ListAccountAssociations](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_ListAccountAssociations.html) APIs Cela APIs montre l'état de l'**association**. L'[StartAccountAssociationRefresh](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_StartAccountAssociationRefresh.html)API permet d'actualiser un **AccountAssociation**état lorsque son jeton d'actualisation expire. 

1. **Découverte des appareils**

    Chaque objet géré est lié à des informations spécifiques à l'appareil, telles que son numéro de série et un modèle de données. Le modèle de données décrit les fonctionnalités de l'appareil, indiquant s'il s'agit d'une ampoule, d'un interrupteur, d'un thermostat ou d'un autre type d'appareil. Pour découvrir un appareil 3P et créer un ManagedThing pour l'appareil 3P, vous devez suivre les étapes ci-dessous dans l'ordre. 

   1.  Appelez [StartDeviceDiscovery](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_StartDeviceDiscovery.html)l'API pour démarrer le processus de découverte des appareils. 

      **Exemple de demande et de réponse à l' StartDeviceDiscovery API :**

      ```
      Request:
      
      {
          "DiscoveryType": "CLOUD",
          "AccountAssociationId": "*****",
          "ClientToken": "abc"
      }
      
      Response:
      
      {
          "Id": "string",
          "StartedAt": number
      }
      ```

   1.  Appelez [GetDeviceDiscovery](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetDeviceDiscovery.html)l'API pour vérifier l'état du processus de découverte. 

   1.  Appelez [ListDiscoveredDevices](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_ListDiscoveredDevices.html)l'API pour répertorier les appareils découverts. 

      **Exemple de demande et de réponse à l' 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"
      }
      ```

   1.  Appelez [CreateManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateManagedThing.html)l'API pour sélectionner les appareils de la liste de découverte à importer dans les intégrations gérées. 

      **Exemple de demande et de réponse à l' 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" 
      }
      ```

   1.  Appelez [GetManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetManagedThing.html)l'API pour afficher cette nouvelle création`managedThing`. Le statut sera`UNASSOCIATED`. 

   1.  Appelez [RegisterAccountAssociation](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterAccountAssociation.html)l'API pour l'associer `managedThing` à un élément spécifique`accountAssociation`. À la fin d'une [RegisterAccountAssociation](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterAccountAssociation.html)API réussie, l'état `managedThing` passe à `ASSOCIATED` l'état. 

      **Exemple de demande et de réponse à l' RegisterAccountAssociation API :**

      ```
      Request:
      
      {
          "AccountAssociationId": "string",
          "DeviceDiscoveryId": "string",
          "ManagedThingId": "string"
      }
      
      Response:
      
      {
          "AccountAssociationId": "string",
          "DeviceDiscoveryId": "string",
          "ManagedThingId": "string"
      }
      ```

1. **Envoyer une commande à l'appareil 3P**

    Pour contrôler un appareil récemment intégré, utilisez l'[SendManagedThingCommand](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_SendManagedThingCommand.html)API, avec l'**ID d'association** créé précédemment et une action de contrôle basée sur les fonctionnalités prises en charge par l'appareil. Le connecteur utilise les informations d'identification stockées lors du processus de liaison des comptes pour s'authentifier auprès du cloud tiers et appeler l'appel d'API correspondant à l'opération. 

   **Exemple de demande et de réponse à l' 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"
   }
   ```

   **Envoyer la commande au flux de périphériques 3P :**  
![Envoyer la commande à un appareil 3P](http://docs.aws.amazon.com/fr_fr/iot-mi/latest/devguide/images/iot-managedintegrations-send-to-device.png)

1. **Le connecteur envoie des événements aux intégrations gérées**

   L'[SendConnectorEvent](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_SendConnectorEvent.html)API capture quatre types d'événements, du connecteur aux intégrations gérées, représentés par les valeurs d'énumération suivantes pour le paramètre **Operation Type :**
   + **DEVICE\_COMMAND\_RESPONSE : réponse** asynchrone envoyée par le connecteur en réponse à une commande.
   + **DEVICE\_DISCOVERY** : En réponse à un processus de découverte d'appareils, le connecteur envoie la liste des appareils découverts aux intégrations gérées, il utilise l'API. [SendConnectorEvent](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_SendConnectorEvent.html) 
   + **DEVICE\_EVENT** : envoie les événements de l'appareil reçus.
   + **DEVICE\_COMMAND\_REQUEST : demandes** de commande lancées depuis le périphérique. Par exemple, les flux de travail WebRTC.

    Le connecteur peut également transmettre les événements de l'appareil à l'aide de l'[SendConnectorEvent](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_SendConnectorEvent.html)API, avec un `userId` paramètre facultatif. 
   + Pour les événements liés à un appareil avec `userId` :

     **Exemple de demande et de réponse à l' SendConnectorEvent API :**

     ```
     Request:
     
     {
         "UserId": "*****",
         "Operation": "DEVICE_EVENT",
         "OperationVersion": "1.0",
         "StatusCode": 200,
         "ConnectorId": "****",
         "ConnectorDeviceId": "***",
         "TraceId": "***",
         "MatterEndpoint": {
             "id": "**",
             "clusters": [{
                 .....
                 }
             }]
         }
     }
     
     Response:
     
     {
         "ConnectorId": "string"
     }
     ```
   + Pour les événements liés à un appareil sans `userId` :

     **Exemple de demande et de réponse à l' SendConnectorEvent API :**

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

    Pour supprimer le lien entre un compte en particulier `managedThing` et une association de comptes, utilisez le mécanisme de désenregistrement : 

   **Exemple de demande et de réponse à l' DeregisterAccountAssociation API :**

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

   **Envoyer le flux d'événements :**  
![Envoyer un flux d'événements](http://docs.aws.amazon.com/fr_fr/iot-mi/latest/devguide/images/iot-managedintegrations-send-events.png)

1. **Mettez à jour le statut du connecteur sur « Listé » pour le rendre visible aux autres clients des intégrations gérées**

   Par défaut, les connecteurs sont privés et ne sont visibles que par le AWS compte qui les a créés. Vous pouvez choisir de rendre un connecteur visible pour les autres clients des intégrations gérées.

   Pour partager votre connecteur avec d'autres utilisateurs, utilisez l'option **Rendre visible** AWS Management Console sur la page de détails du connecteur pour soumettre votre identifiant de connecteur à des AWS fins de révision. Une fois approuvé, le connecteur est accessible à tous les utilisateurs des intégrations gérées de la même manière Région AWS. En outre, vous pouvez restreindre l'accès à un AWS compte spécifique IDs en modifiant la politique d'accès relative à la AWS Lambda fonction associée au connecteur. Pour vous assurer que votre connecteur est utilisable par d'autres clients, gérez les autorisations d'accès IAM sur votre fonction Lambda depuis AWS d'autres comptes vers votre connecteur visible.

   Passez en revue les Service AWS conditions et les politiques de votre organisation qui régissent le partage des connecteurs et les autorisations d'accès avant de rendre les connecteurs visibles aux autres clients des intégrations gérées.