

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de incorporación del hub
<a name="managedintegrations-sdk-v2-cookbook-hubsetup"></a>

Complete estos pasos de configuración para cada dispositivo central antes de comenzar el proceso de incorporación del aprovisionamiento de la flota. En esta sección se describe cómo crear elementos gestionados, configurar las estructuras de directorios y configurar los certificados necesarios.

**Topics**
+ [Paso 1: Registrar un punto final personalizado](#managedintegrations-sdk-v2-cookbook-acc)
+ [Paso 2: Crear un perfil de aprovisionamiento](#managedintegrations-sdk-v2-cookbook-fleet-provision)
+ [Paso 3: Crear un elemento gestionado (aprovisionamiento de flota)](#managedintegrations-sdk-v2-cookbook-managedthing)
+ [Paso 4: Crear la estructura de directorios](#managedintegrations-sdk-v2-cookbook-hubdir)
+ [Paso 5: Añadir materiales de autenticación al dispositivo hub](#managedintegrations-sdk-v2-cookbook-copycert)
+ [Paso 6: Cree el archivo de configuración del dispositivo](#managedintegrations-sdk-v2-cookbook-genconfig)
+ [Paso 7: copia el archivo de configuración en tu hub](#managedintegrations-sdk-v2-cookbook-copyconfig)

## Paso 1: Registrar un punto final personalizado
<a name="managedintegrations-sdk-v2-cookbook-acc"></a>

Cree un punto final de comunicación dedicado que sus dispositivos utilicen para intercambiar datos con las integraciones gestionadas. Este terminal establece un punto de conexión seguro para todos los mensajes del dispositivo a la nube, incluidos los comandos del dispositivo, las actualizaciones de estado y las notificaciones.

**Para registrar un punto de conexión**
+ Utilice la [RegisterCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterCustomEndpoint.html)API para crear un punto final para la comunicación entre el dispositivo y las integraciones gestionadas.

  **RegisterCustomEndpointEjemplo de solicitud**

  ```
  aws iot-managed-integrations register-custom-endpoint  
  ```

  **Respuesta**:

  ```
  {
    [{{ACCOUNT-PREFIX}}]-ats.iot.{{AWS-REGION}}.amazonaws.com
  }
  ```
**nota**  
Guarde la dirección del punto final. Lo necesitarás para comunicarte con tus dispositivos en el futuro.

  Para devolver la información del punto final, usa la `GetCustomEndpoint` API.

  Para obtener más información, consulte la [RegisterCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterCustomEndpoint.html)API y la [GetCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetCustomEndpoint.html)API en la *Guía de referencia de la API* de integraciones gestionadas.

## Paso 2: Crear un perfil de aprovisionamiento
<a name="managedintegrations-sdk-v2-cookbook-fleet-provision"></a>

Un perfil de aprovisionamiento contiene las credenciales de seguridad y los ajustes de configuración que sus dispositivos necesitan para conectarse a las integraciones gestionadas. 

**Para crear un perfil de aprovisionamiento de flota**
+ <a name="managedintegrations-sdk-v2-cookbook-provisioning"></a>Llame a la [CreateProvisioningProfile](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateProvisioningProfile.html)API para generar lo siguiente:
  + Una plantilla de aprovisionamiento que define la configuración de conexión del dispositivo
  + Un certificado de reclamación y una clave privada para la autenticación del dispositivo
**importante**  
Guarde el certificado de reclamación, la clave privada y el ID de plantilla de forma segura. Necesitará estas credenciales para incorporar los dispositivos a las integraciones gestionadas. Si pierde estas credenciales, debe crear un nuevo perfil de aprovisionamiento.

**`CreateProvisioningProfile`solicitud de ejemplo**

```
aws iot-managed-integrations create-provisioning-profile \
    --provisioning-type FLEET_PROVISIONING \
    --name PROFILE_NAME
```

**Respuesta**:

```
{
"Arn":"arn:aws:iotmanagedintegrations:{{AWS-REGION}}:{{ACCOUNT-ID}}:provisioning-profile/{{PROFILE-ID}}",
    "ClaimCertificate":
  "-----BEGIN CERTIFICATE-----
  MIICiTCCAfICCQD6m7.....w3rrszlaEXAMPLE=
  -----END CERTIFICATE-----",
    "ClaimCertificatePrivateKey":
  "-----BEGIN RSA PRIVATE KEY-----
  MIICiTCCAfICCQ...3rrszlaEXAMPLE=
 -----END RSA PRIVATE KEY-----",
    "Id": "{{PROFILE-ID}}",
    "{{PROFILE-NAME}}",
         "ProvisioningType": "FLEET_PROVISIONING"
}
```

## Paso 3: Crear un elemento gestionado (aprovisionamiento de flota)
<a name="managedintegrations-sdk-v2-cookbook-managedthing"></a>

Usa la `CreateManagedThing` API para crear un elemento gestionado para tu dispositivo hub. Cada hub requiere su propio dispositivo gestionado con materiales de autenticación únicos. Para obtener más información, consulte la [CreateManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateManagedThing.html)API en la *referencia de la API* de integraciones gestionadas.

Al crear un elemento gestionado, especifique estos parámetros:
+ `Role`: Establezca este valor en `CONTROLLER` para los concentradores que no admiten comando y control; de lo contrario, establézcalo en. `DEVICE`
+ `AuthenticationMaterialType`: Establezca este valor en. `WIFI_SETUP_QR_BAR_CODE`
+ `AuthenticationMaterial`: incluya los siguientes campos. Puede usar uno `UPC` o ambos`EAN`, pero no ambos.
  + `SN`: el número de serie exclusivo de este dispositivo
  + `UPC`: El código de producto universal de este dispositivo
  + `EAN`: El número de artículo internacional de este dispositivo

**importante**  
Cada dispositivo debe tener un número de serie (SN) único en su material de autenticación.

**`CreateManagedThing`Ejemplo de solicitud**:

```
{ 
 "Role": "CONTROLLER",
 "AuthenticationMaterialType": "WIFI_SETUP_QR_BAR_CODE",
 "AuthenticationMaterial": "SN:123456789524;UPC:829576019524"
}
```

Para obtener más información, consulte la *referencia [CreateManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateManagedThing.html)de la API* de integraciones gestionadas.

### (Opcional) Obtenga algo gestionado
<a name="managedintegrations-sdk-v2-cookbook-managedthing-get"></a>

Lo que debe gestionar debe ser `PRE_ASSOCIATED` antes de que pueda continuar. `ProvisioningStatus` Para obtener más información ProvisioningStatus, consulte [Aprovisionamiento de dispositivos](https://docs.aws.amazon.com/iot-mi/latest/devguide/device-provisioning.html). Usa la `GetManagedThing` API para comprobar que el dispositivo gestionado existe y está listo para el aprovisionamiento. Para obtener más información, consulta la referencia [GetManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetManagedThing.html)de la *API* de integraciones gestionadas.

## Paso 4: Crear la estructura de directorios
<a name="managedintegrations-sdk-v2-cookbook-hubdir"></a>

Cree directorios para sus certificados y archivos de configuración. De forma predeterminada, el proceso de incorporación del hub utiliza el`/data/aws/iotmi/config/iotmi_config.json`.

Puede especificar rutas personalizadas para los certificados y las claves privadas en el archivo de configuración. En esta guía se utiliza la ruta predeterminada`/data/aws/iotmi/certs`.

```
mkdir -p /data/aws/iotmi/config
mkdir -p /data/aws/iotmi/certs

/data/
    aws/
        iotmi/
            config/
            certs/
```

## Paso 5: Añadir materiales de autenticación al dispositivo hub
<a name="managedintegrations-sdk-v2-cookbook-copycert"></a>

Copie los certificados y las claves en su dispositivo concentrador y, a continuación, cree un archivo de configuración específico para el dispositivo. Estos archivos establecen una comunicación segura entre tu hub y las integraciones gestionadas durante el proceso de aprovisionamiento.

**Para copiar el certificado de reclamación y la clave**
+ Copia estos archivos de autenticación de la respuesta de la `CreateProvisioningProfile` API a tu dispositivo hub:
  + `claim_cert.pem`: El certificado de reclamación (común a todos los dispositivos)
  + `claim_pk.key`: la clave privada del certificado de reclamación

  Coloque ambos archivos en el `/data/aws/iotmi/certs` directorio.
**importante**  
 Al almacenar los certificados y las claves privadas en formato PEM, asegúrese de formatear correctamente los caracteres de nueva línea. En el PEM-encoded caso de los archivos, los caracteres de nueva línea `(\n)` deben sustituirse por separadores de línea reales, ya que el simple hecho de almacenar las líneas nuevas escapadas no se recuperará correctamente más adelante. 
**nota**  
Si utiliza un almacenamiento seguro, guarde estas credenciales en su ubicación de almacenamiento segura en lugar de en el sistema de archivos. Para obtener más información, consulte [Cree un controlador de certificados personalizado para un almacenamiento seguro](managedintegrations-sdk-v2-cookbook-certhandler.md).

## Paso 6: Cree el archivo de configuración del dispositivo
<a name="managedintegrations-sdk-v2-cookbook-genconfig"></a>

Cree un archivo de configuración que contenga identificadores de dispositivo únicos, ubicaciones de certificados y ajustes de aprovisionamiento. El SDK utiliza este archivo durante la incorporación del hub para autenticar el dispositivo, gestionar el estado del aprovisionamiento y almacenar la configuración de la conexión.

**nota**  
Cada dispositivo hub requiere su propio archivo de configuración con valores únicos específicos del dispositivo.

Utilice el siguiente procedimiento para crear o modificar el archivo de configuración y cópielo en el hub.
+ <a name="managedintegrations-sdk-v2-cookbook-modifyconfig-fleet"></a>**Cree o modifique el archivo de configuración (aprovisionamiento de flota).** 

  Configure estos campos obligatorios en el archivo de configuración del dispositivo:
  + Rutas de certificado

    1. `iot_claim_cert_path`: Ubicación de su certificado de reclamación (`claim_cert.pem`)

    1. `iot_claim_pk_path`: Ubicación de su clave privada (`claim_pk.key`)

    1. `SECURE_STORAGE`Utilícelo para ambos campos al implementar el controlador de certificados de almacenamiento seguro
  + Configuraciones de conexión

    1. `fp_template_name`: El `ProvisioningProfile` nombre de antes.

    1. `endpoint_url`: la URL del punto final de Managed Integrations de la respuesta de la `RegisterCustomEndpoint` API (la misma para todos los dispositivos de una región).
  + Identificadores de dispositivos

    1. `SN`: número de serie del dispositivo que coincide con su llamada a la `CreateManagedThing` API (único por dispositivo)

    1. `UPC`Código de producto universal de tu llamada a la `CreateManagedThing` API (el mismo para todos los dispositivos de este producto) 

  ```
  {
      "ro": {
          "iot_provisioning_method": "FLEET_PROVISIONING",
          "iot_claim_cert_path": "{{<SPECIFY_THIS_FIELD>}}",
          "iot_claim_pk_path": "{{<SPECIFY_THIS_FIELD>}}",
          "fp_template_name": "{{<SPECIFY_THIS_FIELD>}}",        
          "endpoint_url": "{{<SPECIFY_THIS_FIELD>}}",
          "SN": "{{<SPECIFY_THIS_FIELD>}}",
          "UPC": "{{<SPECIFY_THIS_FIELD>}}"        
      },
      "rw": {
          "iot_provisioning_state": "NOT_PROVISIONED"
      }
  }
  ```

### Contenido del archivo de configuración
<a name="managedintegrations-sdk-v2-cookbook-config-contents"></a>

Revise el contenido del `iotmi_config.json` archivo.


**Contenido**  

| Key | Valores | ¿Agregado por el cliente? | Notas | 
| --- | --- | --- | --- | 
| iot\_provisioning\_method | FLEET\_PROVISIONING | Sí | Especifique el método de aprovisionamiento que quiere usar. | 
| iot\_claim\_cert\_path | La ruta del archivo que especifique oSECURE\_STORAGE. Por ejemplo, /data/aws/iotmi/certs/claim\_cert.pem | Sí | Especifique la ruta del archivo que desee utilizar oSECURE\_STORAGE. | 
| iot\_claim\_pk\_path | La ruta del archivo que especifique oSECURE\_STORAGE. Por ejemplo, /data/aws/iotmi/certs/claim\_pk.pem | Sí | Especifique la ruta del archivo que desee utilizar oSECURE\_STORAGE. | 
| fp\_template\_name | El nombre de la plantilla de aprovisionamiento de flota debe ser igual al nombre de ProvisioningProfile la plantilla utilizada anteriormente. | Sí | Igual al nombre de la ProvisioningProfile que se usó anteriormente | 
| endpoint\_url | La URL del punto final de las integraciones gestionadas. | Sí | Sus dispositivos utilizan esta URL para conectarse a la nube de integraciones gestionadas. Para obtener esta información, utilice la [RegisterCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterCustomEndpoint.html)API. | 
| SN | El número de serie del dispositivo. Por ejemplo, AIDACKCEVSQ6C2EXAMPLE. | Sí | Debe proporcionar esta información única para cada dispositivo. | 
| UPC | Código de producto universal del dispositivo. Por ejemplo, 841667145075. | Sí | Debe proporcionar esta información para el dispositivo. | 
| managed\_thing\_id | El ID del elemento gestionado. | No | Esta información se añade posteriormente mediante el proceso de incorporación, tras el aprovisionamiento del hub. | 
| iot\_provisioning\_state | El estado del aprovisionamiento. | Sí | El estado de aprovisionamiento debe estar establecido como. NOT\_PROVISIONED | 
| iot\_permanent\_cert\_path | La ruta del certificado de IoT. Por ejemplo, /data/aws/iotmi/iot\_cert.pem. | No | Esta información se agrega más adelante mediante el proceso de incorporación, tras el aprovisionamiento del hub. | 
| iot\_permanent\_pk\_path | La ruta del archivo de clave privada de IoT. Por ejemplo, /data/aws/iotmi/iot\_pk.pem. | No | Esta información se agrega más adelante mediante el proceso de incorporación, tras el aprovisionamiento del hub. | 
| client\_id | El ID de cliente que se utilizará para las conexiones MQTT. | No | Esta información se añade posteriormente durante el proceso de incorporación, tras el aprovisionamiento del hub, para que la consuman otros componentes. | 
| mqtt\_keep\_alive\_interval | El rango es de 30 a 1200 y las unidades están en segundos. El valor predeterminado es 300. | Sí | Utilice esta opción para establecer un intervalo de mantenimiento de las conexiones MQTT. | 
| event\_manager\_upper\_bound | El valor predeterminado es 500. | No | Esta información se añade posteriormente durante el proceso de incorporación, tras el aprovisionamiento del hub, para que la consuman otros componentes. | 

## Paso 7: copia el archivo de configuración en tu hub
<a name="managedintegrations-sdk-v2-cookbook-copyconfig"></a>

Copie el archivo de configuración `/data/aws/iotmi/config` o la ruta de directorio personalizada. Proporcionarás esta ruta al `HubOnboarding` binario durante el proceso de incorporación.

**Para el aprovisionamiento de flotas**

```
/data/
    aws/
        iotmi/
            config/
                iotmi_config.json
            certs/
                claim_cert.pem
                claim_pk.key
```