Criando o componente do aplicativo cliente - Amazon Lookout for Vision

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

Criando o componente do aplicativo cliente

Você pode criar o componente do aplicativo cliente depois de gerar os stubs do gRPC e ter o código do aplicativo cliente pronto. O componente que você cria é um componente personalizado com o qual você implanta em um dispositivo AWS IoT Greengrass Version 2 principal AWS IoT Greengrass V2. Uma receita que você cria descreve seu componente personalizado. A receita inclui todas as dependências que também precisam ser implantadas. Nesse caso, você especifica o componente de modelo que você cria em Empacotar seu modelo Amazon Lookout for Vision. Para obter mais informações sobre receitas de componentes, consulte Referência de receitas de componentes AWS IoT Greengrass Version 2.

Os procedimentos neste tópico mostram como criar o componente do aplicativo cliente a partir de um arquivo de receita e publicá-lo como um componente AWS IoT Greengrass V2 personalizado. Você pode usar o AWS IoT Greengrass V2 console ou o AWS SDK para publicar o componente.

Para obter informações detalhadas sobre a criação de um componente personalizado, consulte o seguinte na AWS IoT Greengrass V2documentação.

Permissões do IAM para publicar um componente do aplicativo cliente

Para criar e publicar seu componente de aplicativo cliente, você precisa das seguintes permissões do IAM:

  • greengrass:CreateComponentVersion

  • greengrass:DescribeComponent

  • s3:PutObject

Criando a receita

Neste procedimento, você cria a receita para um componente simples do aplicativo cliente. O código em lookoutvision_edge_agent_example.py lista os modelos que são implantados no dispositivo e são executados automaticamente após a implantação do componente no dispositivo principal. Para visualizar a saída, verifique o registro do componente depois de implantar o componente. Para obter mais informações, consulte Implantando seus componentes em um dispositivo. Quando estiver pronto, use esse procedimento para criar a receita do código que implementa sua lógica de negócios.

Você cria a receita como um arquivo no formato JSON ou YAML. Você também faz upload do código do aplicativo do cliente para um bucket do Amazon S3.

Para criar a receita do componente do aplicativo cliente
  1. Caso ainda não tenha feito isso, crie os arquivos stub do gRPC. Para obter mais informações, consulte Configurar o gRPC.

  2. Salve o código a seguir em um arquivo chamado lookoutvision_edge_agent_example.py.

    import grpc from edge_agent_pb2_grpc import EdgeAgentStub import edge_agent_pb2 as pb2 # Creating stub. with grpc.insecure_channel("unix:///tmp/aws.iot.lookoutvision.EdgeAgent.sock") as channel: stub = EdgeAgentStub(channel) # Add additional code that works with Edge Agent in this block to prevent resources leakage models_list_response = stub.ListModels( pb2.ListModelsRequest() ) for model in models_list_response.models: print(f"Model Details {model}")
  3. Crie um bucket do Amazon S3 (ou use um bucket existente) para armazenar os arquivos de origem do seu componente de aplicativo cliente. O bucket deve estar na sua AWS conta e na mesma AWS região em que você usa AWS IoT Greengrass Version 2 o Amazon Lookout for Vision.

  4. Faça upload de lookoutvision_edge_agent_example.py, edge_agent_pb2_grpc.py and edge_agent_pb2.py para o bucket do Amazon S3 que você criou na etapa anterior. Observe o caminho do Amazon S3 de cada arquivo. Você criou edge_agent_pb2_grpc.py e edge_agent_pb2.py em Configurar o gRPC.

  5. Em um editor, crie o seguinte arquivo de receita JSON ou YAML.

    • model_component ao nome do componente do seu modelo. Para obter mais informações, consulte Configurações do componente.

    • Altere as entradas do URI para os caminhos S3 de lookoutvision_edge_agent_example.py, edge_agent_pb2_grpc.py e. edge_agent_pb2.py

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.lookoutvision.EdgeAgentPythonExample", "ComponentVersion": "1.0.0", "ComponentType": "aws.greengrass.generic", "ComponentDescription": "Lookout for Vision Edge Agent Sample Application", "ComponentPublisher": "Sample App Publisher", "ComponentDependencies": { "model_component": { "VersionRequirement": ">=1.0.0", "DependencyType": "HARD" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "install": "pip3 install grpcio grpcio-tools protobuf Pillow", "run": { "script": "python3 {artifacts:path}/lookoutvision_edge_agent_example.py" } }, "Artifacts": [ { "Uri": "S3 path to lookoutvision_edge_agent_example.py" }, { "Uri": "S3 path to edge_agent_pb2_grpc.py" }, { "Uri": "S3 path to edge_agent_pb2.py" } ] } ], "Lifecycle": {} }
    YAML
    --- RecipeFormatVersion: 2020-01-25 ComponentName: com.lookoutvison.EdgeAgentPythonExample ComponentVersion: 1.0.0 ComponentDescription: Lookout for Vision Edge Agent Sample Application ComponentPublisher: Sample App Publisher ComponentDependencies: model_component: VersionRequirement: '>=1.0.0' DependencyType: HARD Manifests: - Platform: os: linux Lifecycle: install: |- pip3 install grpcio pip3 install grpcio-tools pip3 install protobuf pip3 install Pillow run: script: |- python3 {artifacts:path}/lookout_vision_agent_example.py Artifacts: - URI: S3 path to lookoutvision_edge_agent_example.py - URI: S3 path to edge_agent_pb2_grpc.py - URI: S3 path to edge_agent_pb2.py
  6. Salve o arquivo JSON ou YAML em seu computador.

  7. Crie o componente do aplicativo cliente seguindo um destes procedimentos:

Publicando o componente do aplicativo cliente (Console)

Você pode usar o AWS IoT Greengrass V2 console para publicar o componente do aplicativo cliente.

Para publicar o componente do aplicativo cliente
  1. Caso ainda não tenha feito isso, crie a receita para seu componente de aplicativo de cliente fazendo. Criando a receita

  2. Abra o console AWS IoT Greengrass em https://console.aws.amazon.com/iot/

  3. No painel de navegação à esquerda, em Greengrass, escolha Components.

  4. Em Meus componentes, escolha Criar componente.

  5. Na página Criar componente, escolha Inserir receita como JSON se quiser usar uma receita no formato JSON. Escolha Inserir receita como YAML se quiser usar uma receita no formato YAML.

  6. Em Receita, substitua a receita existente pela receita JSON ou YAML que você criou em. Criando a receita

  7. Escolha Criar componente.

  8. Em seguida, implante seu componente de aplicativo cliente.

Publicação do componente do aplicativo cliente (SDK)

Você pode publicar o componente do aplicativo cliente usando a API createComponentVersion.

Para publicar o componente do aplicativo cliente (SDK)
  1. Caso ainda não tenha feito isso, crie a receita para seu componente de aplicativo de cliente fazendo. Criando a receita

  2. No prompt de comando, insira o comando a seguir para criar o componente do aplicativo cliente. Substitua o recipe-file pelo nome do arquivo de receita que você criou em Criando a receita.

    aws greengrassv2 create-component-version --inline-recipe fileb://recipe-file

    Observe o ARN do componente na resposta. Você precisa dele na próxima etapa.

  3. Use o comando a seguir para obter o status do componente do aplicativo do cliente. Substitua o component-arn pelo ARN que você anotou na etapa anterior. O componente do aplicativo cliente está pronto se o valor de componentState forDEPLOYABLE.

    aws greengrassv2 describe-component --arn component-arn
  4. Em seguida, implante seu componente de aplicativo cliente.