

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configuração de integração do hub
<a name="managedintegrations-sdk-v2-cookbook-hubsetup"></a>

Conclua essas etapas de configuração para cada dispositivo de hub antes de iniciar o processo de integração do provisionamento da frota. Esta seção descreve como criar itens gerenciados, configurar estruturas de diretórios e configurar os certificados necessários.

**Topics**
+ [Etapa 1: registrar um endpoint personalizado](#managedintegrations-sdk-v2-cookbook-acc)
+ [Etapa 2: criar um perfil de aprovisionamento](#managedintegrations-sdk-v2-cookbook-fleet-provision)
+ [Etapa 3: criar uma coisa gerenciada (provisionamento de frota)](#managedintegrations-sdk-v2-cookbook-managedthing)
+ [Etapa 4: criar a estrutura de diretórios](#managedintegrations-sdk-v2-cookbook-hubdir)
+ [Etapa 5: Adicionar materiais de autenticação ao dispositivo hub](#managedintegrations-sdk-v2-cookbook-copycert)
+ [Etapa 6: criar o arquivo de configuração do dispositivo](#managedintegrations-sdk-v2-cookbook-genconfig)
+ [Etapa 7: Copie o arquivo de configuração para o seu hub](#managedintegrations-sdk-v2-cookbook-copyconfig)

## Etapa 1: registrar um endpoint personalizado
<a name="managedintegrations-sdk-v2-cookbook-acc"></a>

Crie um terminal de comunicação dedicado que seus dispositivos usem para trocar dados com integrações gerenciadas. Esse endpoint estabelece um ponto de conexão seguro para todas as mensagens do dispositivo para a nuvem, incluindo comandos do dispositivo, atualizações de status e notificações.

**Para registrar um endpoint**
+ Use a [RegisterCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterCustomEndpoint.html)API para criar um endpoint para comunicação de integrações entre dispositivos e gerenciados.

  **RegisterCustomEndpointExemplo de solicitação**

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

  **Resposta:**

  ```
  {
    [{{ACCOUNT-PREFIX}}]-ats.iot.{{AWS-REGION}}.amazonaws.com
  }
  ```
**nota**  
Armazene o endereço do endpoint. Você precisará dele para a futura comunicação com dispositivos.

  Para retornar as informações do endpoint, use a `GetCustomEndpoint` API.

  Para obter mais informações, consulte a [RegisterCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterCustomEndpoint.html)API e a [GetCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetCustomEndpoint.html)API no *Guia de referência da API* de integrações gerenciadas.

## Etapa 2: criar um perfil de aprovisionamento
<a name="managedintegrations-sdk-v2-cookbook-fleet-provision"></a>

Um perfil de provisionamento contém as credenciais de segurança e as configurações de que seus dispositivos precisam para se conectar às integrações gerenciadas. 

**Para criar um perfil de aprovisionamento de frota**
+ <a name="managedintegrations-sdk-v2-cookbook-provisioning"></a>Chame a [CreateProvisioningProfile](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateProvisioningProfile.html)API para gerar o seguinte:
  + Um modelo de provisionamento que define as configurações de conexão do dispositivo
  + Um certificado de solicitação e uma chave privada para autenticação de dispositivos
**Importante**  
Armazene o certificado de solicitação, a chave privada e o ID do modelo com segurança. Você precisará dessas credenciais para integrar dispositivos às integrações gerenciadas. Se você perder essas credenciais, deverá criar um novo perfil de aprovisionamento.

**`CreateProvisioningProfile`exemplo de solicitação**

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

**Resposta:**

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

## Etapa 3: criar uma coisa gerenciada (provisionamento de frota)
<a name="managedintegrations-sdk-v2-cookbook-managedthing"></a>

Use a `CreateManagedThing` API para criar algo gerenciado para seu dispositivo hub. Cada hub exige sua própria coisa gerenciada com materiais de autenticação exclusivos. Para obter mais informações, consulte a [CreateManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateManagedThing.html)API na *Referência da API* de integrações gerenciadas.

Ao criar uma coisa gerenciada, especifique estes parâmetros:
+ `Role`: defina esse valor `CONTROLLER` para hubs que não oferecem suporte a comando e controle, caso contrário, defina `DEVICE` como.
+ `AuthenticationMaterialType`: defina esse valor como`WIFI_SETUP_QR_BAR_CODE`.
+ `AuthenticationMaterial`: inclua os seguintes campos. Você pode usar um `UPC` ou`EAN`, mas não os dois.
  + `SN`: O número de série exclusivo deste dispositivo
  + `UPC`: O código de produto universal para este dispositivo
  + `EAN`: O número internacional do artigo deste dispositivo

**Importante**  
Cada dispositivo deve ter um número de série (SN) exclusivo em seu material de autenticação.

**`CreateManagedThing`Exemplo de solicitação**:

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

Para obter mais informações, consulte [CreateManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateManagedThing.html)a *Referência da API* de integrações gerenciadas.

### (Opcional) Get Managed Thing
<a name="managedintegrations-sdk-v2-cookbook-managedthing-get"></a>

O que `ProvisioningStatus` você gerencia deve ser `PRE_ASSOCIATED` antes que você possa continuar. Para obter mais informações sobre ProvisioningStatus, consulte [Provisionamento de dispositivos](https://docs.aws.amazon.com/iot-mi/latest/devguide/device-provisioning.html). Use a `GetManagedThing` API para verificar se sua coisa gerenciada existe e está pronta para provisionamento. Para obter mais informações, consulte [GetManagedThing](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_GetManagedThing.html)a *Referência da API* de integrações gerenciadas.

## Etapa 4: criar a estrutura de diretórios
<a name="managedintegrations-sdk-v2-cookbook-hubdir"></a>

Crie diretórios para seus arquivos de configuração e certificados. Por padrão, o processo de integração do hub usa o. `/data/aws/iotmi/config/iotmi_config.json`

Você pode especificar caminhos personalizados para certificados e chaves privadas no arquivo de configuração. Este guia usa o caminho padrão`/data/aws/iotmi/certs`.

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

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

## Etapa 5: Adicionar materiais de autenticação ao dispositivo hub
<a name="managedintegrations-sdk-v2-cookbook-copycert"></a>

Copie certificados e chaves para seu dispositivo hub e, em seguida, crie um arquivo de configuração específico do dispositivo. Esses arquivos estabelecem uma comunicação segura entre seu hub e as integrações gerenciadas durante o processo de provisionamento.

**Para copiar o certificado de reclamação e a chave**
+ Copie esses arquivos de autenticação da sua resposta de `CreateProvisioningProfile` API para o seu dispositivo hub:
  + `claim_cert.pem`: O certificado de solicitação (comum a todos os dispositivos)
  + `claim_pk.key`: a chave privada para o certificado de solicitação

  Coloque os dois arquivos no `/data/aws/iotmi/certs` diretório.
**Importante**  
 Ao armazenar certificados e chaves privadas no formato PEM, garanta a formatação adequada manipulando os caracteres de nova linha corretamente. Para PEM-encoded arquivos, os caracteres de nova linha `(\n)` devem ser substituídos por separadores de linha reais, pois o simples armazenamento de novas linhas com escape não será recuperado corretamente posteriormente. 
**nota**  
Se você usa armazenamento seguro, armazene essas credenciais em seu local de armazenamento seguro em vez de no sistema de arquivos. Para obter mais informações, consulte [Crie um manipulador de certificados personalizado para armazenamento seguro](managedintegrations-sdk-v2-cookbook-certhandler.md).

## Etapa 6: criar o arquivo de configuração do dispositivo
<a name="managedintegrations-sdk-v2-cookbook-genconfig"></a>

Crie um arquivo de configuração que contenha identificadores exclusivos de dispositivos, locais de certificados e configurações de provisionamento. O SDK usa esse arquivo durante a integração do hub para autenticar seu dispositivo, gerenciar o status do provisionamento e armazenar as configurações de conexão.

**nota**  
Cada dispositivo hub exige seu próprio arquivo de configuração com valores exclusivos específicos do dispositivo.

Use o procedimento a seguir para criar ou modificar seu arquivo de configuração e copiá-lo para o hub.
+ <a name="managedintegrations-sdk-v2-cookbook-modifyconfig-fleet"></a>**Crie ou modifique o arquivo de configuração (provisionamento da frota)**. 

  Configure esses campos obrigatórios no arquivo de configuração do dispositivo:
  + Caminhos de certificado

    1. `iot_claim_cert_path`: Localização do seu certificado de reclamação (`claim_cert.pem`)

    1. `iot_claim_pk_path`: Localização da sua chave privada (`claim_pk.key`)

    1. Use `SECURE_STORAGE` para ambos os campos ao implementar o Secure Storage Cert Handler
  + Configurações de conexão

    1. `fp_template_name`: O `ProvisioningProfile` nome anterior.

    1. `endpoint_url`: o URL do endpoint de integrações gerenciadas da resposta da `RegisterCustomEndpoint` API (o mesmo para todos os dispositivos em uma região).
  + Identificadores de dispositivo

    1. `SN`: número de série do dispositivo que corresponde à sua chamada de `CreateManagedThing` API (exclusivo por dispositivo)

    1. `UPC`Código de produto universal da sua chamada de `CreateManagedThing` API (o mesmo para todos os dispositivos deste produto) 

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

### Conteúdo do arquivo de configuração
<a name="managedintegrations-sdk-v2-cookbook-config-contents"></a>

Revise o conteúdo do `iotmi_config.json` arquivo.


**Conteúdo**  

| Chave | Valores | Adicionado pelo cliente? | Observações | 
| --- | --- | --- | --- | 
| iot\_provisioning\_method | FLEET\_PROVISIONING | Sim | Especifique o método de aprovisionamento que você deseja usar. | 
| iot\_claim\_cert\_path | O caminho do arquivo que você especifica ouSECURE\_STORAGE. Por exemplo, /data/aws/iotmi/certs/claim\_cert.pem. | Sim | Especifique o caminho do arquivo que você deseja usar ouSECURE\_STORAGE. | 
| iot\_claim\_pk\_path | O caminho do arquivo que você especifica ouSECURE\_STORAGE. Por exemplo, /data/aws/iotmi/certs/claim\_pk.pem. | Sim | Especifique o caminho do arquivo que você deseja usar ouSECURE\_STORAGE. | 
| fp\_template\_name | O nome do modelo de aprovisionamento da frota deve ser igual ao nome do ProvisioningProfile que foi usado anteriormente. | Sim | Igual ao nome do ProvisioningProfile que foi usado anteriormente | 
| endpoint\_url | O URL do endpoint para integrações gerenciadas. | Sim | Seus dispositivos usam esse URL para se conectar à nuvem de integrações gerenciadas. Para obter essas informações, use a [RegisterCustomEndpoint](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_RegisterCustomEndpoint.html)API. | 
| SN | O número de série do dispositivo. Por exemplo, .AIDACKCEVSQ6C2EXAMPLE | Sim | Você deve fornecer essas informações exclusivas para cada dispositivo. | 
| UPC | Código de produto universal do dispositivo. Por exemplo, .841667145075 | Sim | Você deve fornecer essas informações para o dispositivo. | 
| managed\_thing\_id | O ID da coisa gerenciada. | Não | Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub. | 
| iot\_provisioning\_state | O estado de aprovisionamento. | Sim | O estado de provisionamento deve ser definido como. NOT\_PROVISIONED | 
| iot\_permanent\_cert\_path | O caminho do certificado de IoT. Por exemplo, ./data/aws/iotmi/iot\_cert.pem | Não | Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub. | 
| iot\_permanent\_pk\_path | O caminho do arquivo da chave privada da IoT. Por exemplo, ./data/aws/iotmi/iot\_pk.pem | Não | Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub. | 
| client\_id | O ID do cliente que será usado para conexões MQTT. | Não | Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub, para que outros componentes sejam consumidas. | 
| mqtt\_keep\_alive\_interval | O alcance é de 30 a 1200 e as unidades estão em segundos. O valor padrão é 300. | Sim | Use isso para definir um intervalo de manutenção de atividade para conexões MQTT. | 
| event\_manager\_upper\_bound | O valor padrão é 500. | Não | Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub, para que outros componentes sejam consumidas. | 

## Etapa 7: Copie o arquivo de configuração para o seu hub
<a name="managedintegrations-sdk-v2-cookbook-copyconfig"></a>

Copie seu arquivo de configuração `/data/aws/iotmi/config` ou seu caminho de diretório personalizado. Você fornecerá esse caminho para o `HubOnboarding` binário durante o processo de integração.

**Para provisionamento de frotas**

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