

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

# Execute o agente
<a name="edge-getting-started-step5"></a>

Nesta seção, você executará o agente como um binário usando o gRPC e verificará se o dispositivo e a frota estão funcionando e coletando dados de amostra.

1. **Inicie o agente.**

   O agente do SageMaker Edge Manager pode ser executado como um processo independente na forma de um binário executável de formato executável e vinculável (ELF) ou pode ser vinculado como um objeto compartilhado dinâmico (.dll). Executar como um binário executável autônomo é o modo preferido e é compatível no Linux.

   Este exemplo usa o gRPC para executar o agente. O gRPC é uma estrutura de Chamada de Procedimento Remoto (RPC) de alto desempenho de código aberto que pode ser executada em qualquer ambiente. Para obter mais informações sobre o gRPC, consulte a [documentação do gRPC](https://grpc.io/docs/).

   Para usar o gRPC, execute as seguintes etapas: 

   1. Defina um serviço em um arquivo.proto.

   1. Gere código de servidor e cliente usando o compilador de buffer de protocolo.

   1. Use a API gRPC do Python (ou outras linguagens compatíveis com o gRPC) para gravar o servidor para seu serviço.

   1. Use a API gRPC do Python (ou outros idiomas compatíveis com o gRPC) para gravar o servidor para seu serviço. 

   O artefato de lançamento que você baixou contém uma aplicação gRPC pronto para executar o agente. O exemplo está localizado no diretório `/bin` do seu artefato de lançamento. O executável binário `sagemaker_edge_agent_binary` está nesse diretório.

   Para executar o agente com este exemplo, forneça o caminho para o arquivo de soquete (.sock) e o arquivo de configuração JSON:

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

1. **Verifique seu dispositivo.**

   Verifique se o dispositivo está conectado e está coletando dados. Fazer verificações periódicas, manual ou automaticamente, permite que você verifique se seu dispositivo ou frota está funcionando corretamente.

   Forneça o nome da frota à qual o dispositivo pertence e o identificador exclusivo do dispositivo. A partir da máquina local, execute o seguinte:

   ```
   sagemaker_client.describe_device(
       DeviceName=device_name,
       DeviceFleetName=device_fleet_name
   )
   ```

   Para o modelo fornecido, você pode ver o nome, a versão do modelo, o horário da última amostra e quando a última inferência foi feita.

   ```
   { 
     "DeviceName": "sample-device",
     "DeviceFleetName": "demo-device-fleet",
     "IoTThingName": "sample-thing-name-1",
     "RegistrationTime": 1600977370,
     "LatestHeartbeat": 1600977370,
     "Models":[
       {
           "ModelName": "mobilenet_v2.tar.gz", 
           "ModelVersion": "1.1",
           "LatestSampleTime": 1600977370,
           "LatestInference": 1600977370 
       }
     ]
   }
   ```

   O timestamp fornecido por `LastetHeartbeat` indica o último sinal recebido do dispositivo. `LatestSampleTime` e `LatestInference` descrevem o carimbo de data/hora da última amostra de dados e inferência, respectivamente.

1. **Verifique sua frota.**

   Verifique se sua frota está funcionando com `GetDeviceFleetReport`. Forneça o nome da frota ao qual o dispositivo pertence.

   ```
   sagemaker_client.get_device_fleet_report(
       DeviceFleetName=device_fleet_name
   )
   ```

   Para um determinado modelo, você pode ver o nome, a versão do modelo, o horário da amostra mais recente e quando a última inferência foi feita, juntamente com o URI do bucket do Amazon S3 onde as amostras de dados estão armazenadas.

   ```
   # Sample output
   {
    "DeviceFleetName": "sample-device-fleet",
    "DeviceFleetArn": "arn:aws:sagemaker:us-west-2:9999999999:device-fleet/sample-fleet-name",
    "OutputConfig": {
                 "S3OutputLocation": "s3://fleet-bucket/package_output",
     },
    "AgentVersions":[{"Version": "1.1", "AgentCount": 2}]}
    "DeviceStats": {"Connected": 2, "Registered": 2}, 
    "Models":[{
               "ModelName": "sample-model", 
               "ModelVersion": "1.1",
               "OfflineDeviceCount": 0,
               "ConnectedDeviceCount": 2,
               "ActiveDeviceCount": 2, 
               "SamplingDeviceCount": 100
               }]
   }
   ```