

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á.

# Baixe e configure o agente do Edge Manager manualmente
<a name="edge-device-fleet-manual"></a>

Baixe o agente do Edge Manager com base em seu sistema operacional, arquitetura e região AWS . O agente é atualizado periodicamente, então você tem a opção de escolher seu agente com base nas datas e versões de lançamento. Depois de ter o agente, crie um arquivo de configuração JSON. Especifique o nome do dispositivo de IoT, o nome da frota, as credenciais do dispositivo e outros pares de valores-chave. Veja [Instalando o agente do Edge Manager](#edge-device-fleet-running-agent) a lista completa das chaves que você deve especificar no arquivo de configuração. Você pode executar o agente como um binário executável ou vinculá-lo como um objeto compartilhado dinâmico (DSO).

## Como o agente trabalha
<a name="edge-device-fleet-how-agent-works"></a>

O agente é executado na CPU dos seus dispositivos. O agente executa inferência na framework e no hardware do dispositivo de destino que você especificou durante o trabalho de compilação. Por exemplo, se você compilou seu modelo para o Jetson Nano, o agente oferece apoio à GPU no [Tempo de execução do aprendizado profundo](https://github.com/neo-ai/neo-ai-dlr) (Aprendizado Profundo Runtime, DLR) fornecido.

O agente é lançado em formato binário para sistemas operacionais compatíveis. Verifique se seu sistema operacional é compatível e atende aos requisitos mínimos de sistema operacional na tabela a seguir:

------
#### [ Linux ]

**Versão:** Ubuntu 18.04

**Formatos binários suportados:** x86-64 bits (binário ELF) e ARMv8 64 bits (binário ELF)

------
#### [ Windows ]

**Versão:** Windows 10 versão 1909

**Formatos binários compatíveis:** x86-32 bits (DLL) e x86-64 bits (DLL)

------

## Instalando o agente do Edge Manager
<a name="edge-device-fleet-installation"></a>

Para usar o agente do Edge Manager, primeiro você deve obter os artefatos de lançamento e um certificado raiz. Os artefatos de lançamento são armazenados em um bucket do Amazon S3 na região `us-west-2`. Para baixar os artefatos, especifique seu sistema operacional (`<OS>`) e o `<VERSION>`.

Com base no seu sistema operacional, `<OS>` substitua por um dos seguintes procedimentos:


| Windows 32 bits | Windows 64 bits | Linux x86-64 | Linux ARMv8 | 
| --- | --- | --- | --- | 
| windows-x86 | windows-x64 | linux-x64 | linux-armv8 | 

O `VERSION` é dividido em três componentes: `<MAJOR_VERSION>.<YYYY-MM-DD>-<SHA-7>`, onde:
+ `<MAJOR_VERSION>`: a versão de lançamento. A versão de lançamento está atualmente definida como `1`.
+ `<YYYY-MM-DD>`: a carimbo de data/hora da liberação do artefato.
+ `<SHA-7>`: o ID de confirmação do repositório a partir do qual a versão foi criada.

Você deve fornecer o `<MAJOR_VERSION>` e o carimbo de data/hora no formato `YYYY-MM-DD`. Sugerimos que você use o carimbo de data/hora de lançamento do artefato mais recente.

Execute o seguinte na sua linha de comando para obter o carimbo de data/hora mais recente: Substitua `<OS>` pelo seu sistema operacional:

```
aws s3 ls s3://sagemaker-edge-release-store-us-west-2-<OS>/Releases/ | sort -r
```

Por exemplo, se você tiver um sistema operacional Windows de 32 bits, execute:

```
aws s3 ls s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/ | sort -r
```

Isso retorna:

```
2020-12-01 23:33:36 0 

                    PRE 1.20201218.81f481f/
                    PRE 1.20201207.02d0e97/
```

A saída de retorno neste exemplo mostra dois artefatos de lançamento. O primeiro arquivo de artefato de lançamento indica que a versão de lançamento tem uma versão principal de`1`, um registro de data e hora `20201218` (em YYYY-MM-DD formato) e um ID de confirmação do `81f481f` SHA-7.

**nota**  
O comando anterior pressupõe que você tenha configurado o AWS Command Line Interface. Para obter mais informações sobre como definir as configurações que o AWS CLI usa para interagir AWS, consulte [Configurando a AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/cli-chap-configure.html).

Com base no seu sistema operacional, use os seguintes comandos para instalar os artefatos:

------
#### [ Windows 32-bit ]

```
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/<VERSION>/<VERSION>.zip .
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/<VERSION>/sha256_hex.shasum .
```

------
#### [ Windows 64-bit ]

```
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x64/Releases/<VERSION>/<VERSION>.zip .
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x64/Releases/<VERSION>/sha256_hex.shasum .
```

------
#### [ Linux x86-64 ]

```
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/<VERSION>/<VERSION>.tgz .
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/<VERSION>/sha256_hex.shasum .
```

------
#### [ Linux ARMv8 ]

```
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-armv8/Releases/<VERSION>/<VERSION>.tgz .
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-armv8/Releases/<VERSION>/sha256_hex.shasum .
```

------

Você também deve baixar um certificado raiz. Esse certificado valida os artefatos do modelo assinados por AWS antes de carregá-los em seus dispositivos periféricos.

Substitua o `<OS>` correspondente à sua plataforma na lista de sistemas operacionais compatíveis e `<REGION>` substitua pela sua AWS região.

```
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-<OS>/Certificates/<REGION>/<REGION>.pem .
```

## Instalando o agente do Edge Manager
<a name="edge-device-fleet-running-agent"></a>

Você pode executar o agente do SageMaker AI Edge Manager como um processo autônomo na forma de um binário executável de formato executável e vinculável (ELF) ou vincular a ele como um objeto compartilhado dinâmico (.dll). O Linux é compatível com executá-lo como um binário executável independente e é o modo preferido. O Windows oferece apoio para executá-lo como um objeto compartilhado (.dll).

No Linux, recomendamos que você execute o binário por meio de um serviço que faz parte do seu sistema initialization (`init`). Se quiser executar o binário diretamente, você pode fazê-lo em um terminal, conforme mostrado no exemplo a seguir. Se você tiver um sistema operacional moderno, não serão necessárias outras instalações antes de executar o agente, pois todos os requisitos são incorporados estaticamente no executável. Isso lhe dá flexibilidade para executar o agente no terminal, como um serviço ou dentro de um contêiner.

Para executar o agente, crie um arquivo de configuração JSON. Especifique os seguintes pares de chave-valor:
+ `sagemaker_edge_core_device_name`: o nome do dispositivo. Esse nome de dispositivo precisa ser registrado junto com a frota de dispositivos no console do SageMaker Edge Manager.
+ `sagemaker_edge_core_device_fleet_name`: o nome da frota ao qual o dispositivo pertence.
+ `sagemaker_edge_core_region`: A AWS região associada ao dispositivo, à frota e aos buckets do Amazon S3. Isso corresponde à região em que o dispositivo está registrado e onde o bucket do Amazon S3 é criado (espera-se que sejam os mesmos). Os modelos em si podem ser compilados com SageMaker o Neo em uma região diferente, essa configuração não está relacionada à região de compilação do modelo.
+ `sagemaker_edge_core_root_certs_path`: o caminho absoluto da pasta para os certificados raiz. Isso é usado para validar o dispositivo com a AWS conta relevante.
+ `sagemaker_edge_provider_aws_ca_cert_file`: O caminho absoluto para o certificado Amazon Root CA (AmazonRootCA1.pem). Isso é usado para validar o dispositivo com a AWS conta relevante. `AmazonCA`é um certificado de propriedade de AWS.
+ `sagemaker_edge_provider_aws_cert_file`: o caminho absoluto para AWS IoT assinar o certificado raiz (`*.pem.crt`).
+ `sagemaker_edge_provider_aws_cert_pk_file`: O caminho absoluto para a chave AWS IoT privada. (`*.pem.key`).
+ `sagemaker_edge_provider_aws_iot_cred_endpoint`: O endpoint de AWS IoT credenciais (*identifier*.iot. *region*.amazonaws.com). Esse endpoint é usado para validação de credenciais. Consulte [Conectar dispositivos ao AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-connect-devices.html) para obter mais informações.
+ `sagemaker_edge_provider_provider`: indica a implementação da interface do provedor que está sendo usada. A interface do provedor se comunica com os serviços de rede final para uploads, pulsações e validação de registro. Por padrão, isso é definido como `"Aws"`. Nós permitimos implementações personalizadas da interface do provedor. Ele pode ser definido como `None` para nenhum provedor ou `Custom` para implementação personalizada com o caminho relevante do objeto compartilhado fornecido.
+ `sagemaker_edge_provider_provider_path`: fornece o caminho absoluto para o objeto compartilhado de implementação do provedor. (arquivo.so ou.dll). O arquivo .dll ou .so do provedor `"Aws"` é fornecido com a versão do agente. Este campo é obrigatório.
+ `sagemaker_edge_provider_s3_bucket_name`: o nome do bucket do Amazon S3 (não o URI do bucket do Amazon S3). O bucket deve ter uma string `sagemaker` em seu nome.
+ `sagemaker_edge_log_verbose` (Booliano): opcional. Isso define o log de depuração. Selecione um `True` ou `False`.
+ `sagemaker_edge_telemetry_libsystemd_path`: somente para Linux, `systemd` implementa a métrica do contador de falhas do agente. Defina o caminho absoluto do libsystemd para ativar a métrica do contador de falhas. Você pode descobrir que o caminho padrão do libsystemd pode ser encontrado executando `whereis libsystemd` no terminal do dispositivo.
+ `sagemaker_edge_core_capture_data_destination`: o destino para o upload dos dados de captura. Escolha `"Cloud"` ou `"Disk"`. O padrão é definido como `"Disk"`. Configurá-lo para `"Disk"` gravar o(s) tensor(es) de entrada e saída e os dados auxiliares no sistema de arquivos local em sua localização preferida. Ao escrever para `"Cloud"` usar o nome do bucket do Amazon S3 fornecido na `sagemaker_edge_provider_s3_bucket_name` configuração.
+ `sagemaker_edge_core_capture_data_disk_path`: defina o caminho absoluto no sistema de arquivos local, no qual os arquivos de dados de captura são gravados quando `"Disk"` for o destino. Esse campo não é usado quando `"Cloud"` for especificado como destino.
+ `sagemaker_edge_core_folder_prefix`: o prefixo principal no Amazon S3 em que os dados capturados são armazenados quando você `"Cloud"` especifica como destino dos dados de captura (`sagemaker_edge_core_capture_data_disk_path)`. Os dados capturados são armazenados em uma subpasta em `sagemaker_edge_core_capture_data_disk_path` se `"Disk"` estiver definido como o destino dos dados.
+ `sagemaker_edge_core_capture_data_buffer_size` (Valor inteiro): o tamanho do buffer circular dos dados de captura. Indica o número máximo de solicitações armazenadas no buffer.
+ `sagemaker_edge_core_capture_data_batch_size` (Valor inteiro): o tamanho do lote de dados de captura. Indica o tamanho de um lote de solicitações que são tratadas a partir do buffer. Esse valor deve ser igual ou menor que `sagemaker_edge_core_capture_data_buffer_size`. Recomenda-se no máximo metade do tamanho do buffer para o tamanho do lote.
+ `sagemaker_edge_core_capture_data_push_period_seconds` (Valor inteiro): o período de envio dos dados de captura em segundos. Um lote de solicitações no buffer é tratado quando há solicitações de tamanho de lote no buffer ou quando esse período é concluído (o que ocorrer primeiro). Essa configuração define esse período de tempo.
+ `sagemaker_edge_core_capture_data_base64_embed_limit`: o limite para carregar dados de captura em bytes. Valor inteiro.

O arquivo de configuração deve ser semelhante ao exemplo a seguir (com seus valores específicos especificados). Este exemplo usa o AWS provedor padrão (`"Aws"`) e não especifica um upload periódico.

```
{
    "sagemaker_edge_core_device_name": "device-name",
    "sagemaker_edge_core_device_fleet_name": "fleet-name",
    "sagemaker_edge_core_region": "region",
    "sagemaker_edge_core_root_certs_path": "<Absolute path to root certificates>",
    "sagemaker_edge_provider_provider": "Aws",
    "sagemaker_edge_provider_provider_path" : "/path/to/libprovider_aws.so",
    "sagemaker_edge_provider_aws_ca_cert_file": "<Absolute path to Amazon Root CA certificate>/AmazonRootCA1.pem",
    "sagemaker_edge_provider_aws_cert_file": "<Absolute path to AWS IoT signing root certificate>/device.pem.crt",
    "sagemaker_edge_provider_aws_cert_pk_file": "<Absolute path to AWS IoT private key.>/private.pem.key",
    "sagemaker_edge_provider_aws_iot_cred_endpoint": "https://<AWS IoT Endpoint Address>",
    "sagemaker_edge_core_capture_data_destination": "Cloud",
    "sagemaker_edge_provider_s3_bucket_name": "sagemaker-bucket-name",
    "sagemaker_edge_core_folder_prefix": "Amazon S3 folder prefix",
    "sagemaker_edge_core_capture_data_buffer_size": 30,
    "sagemaker_edge_core_capture_data_batch_size": 10,
    "sagemaker_edge_core_capture_data_push_period_seconds": 4000,
    "sagemaker_edge_core_capture_data_base64_embed_limit": 2,
    "sagemaker_edge_log_verbose": false
}
```

O artefato de lançamento inclui um executável binário chamado `sagemaker_edge_agent_binary` no `/bin` diretório. Para executar o binário, use o `-a` sinalizador para criar um descritor de arquivo de soquete (.sock) em um diretório de sua escolha e especifique o caminho do arquivo de configuração JSON do agente que você criou com o sinalizador `-c`.

```
./sagemaker_edge_agent_binary -a <ADDRESS_TO_SOCKET> -c <PATH_TO_CONFIG_FILE>
```

O seguinte exemplo mostra o trecho de código com um diretório e um caminho de arquivo especificados:

```
./sagemaker_edge_agent_binary -a /tmp/sagemaker_edge_agent_example.sock -c sagemaker_edge_config.json
```

Neste exemplo, um descritor de arquivo de soquete chamado `sagemaker_edge_agent_example.sock` é criado no `/tmp` diretório e aponta para um arquivo de configuração que está no mesmo diretório de trabalho do agente chamado `sagemaker_edge_config.json`.