Crear el componente de la aplicación cliente - Amazon Lookout for Vision

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.

Crear el componente de la aplicación cliente

Puedes crear el componente de la aplicación cliente una vez que hayas generado los stubs de gRPC y tengas listo el código de la aplicación cliente. El componente que cree es un componente personalizado con el que se implementa en un dispositivo AWS IoT Greengrass Version 2 principal. AWS IoT Greengrass V2 Una receta que cree describe su componente personalizado. La receta incluye todas las dependencias que también deban implementarse. En este caso, se especifica el componente de modelo en el que se creaEmpaquetado del modelo Amazon Lookout for Vision. Para obtener más información sobre estas recetas de componentes, consulte la AWS IoT Greengrass Version 2Referencia de receta de componentes.

Los procedimientos de este tema muestran cómo crear el componente de la aplicación cliente a partir de un archivo de recetas y publicarlo como un componente AWS IoT Greengrass V2 personalizado. Puede usar la AWS IoT Greengrass V2 consola o el AWS SDK para publicar el componente.

Para obtener información detallada sobre la creación de un componente personalizado, consulte lo siguiente en la AWS IoT Greengrass V2documentación.

Permisos de IAM para publicar un componente de una aplicación cliente

Para crear y publicar el componente de la aplicación cliente, necesita los siguientes permisos de IAM:

  • greengrass:CreateComponentVersion

  • greengrass:DescribeComponent

  • s3:PutObject

Creación de la receta

En este procedimiento, creará la receta para un componente de aplicación cliente sencillo. El código lookoutvision_edge_agent_example.py muestra los modelos que se implementan en el dispositivo y se ejecutan automáticamente después de implementar el componente en el dispositivo principal. Para ver el resultado, compruebe el registro del componente después de implementarlo. Para obtener más información, consulte Despliegue de sus componentes en un dispositivo. Cuando esté listo, utilice este procedimiento para crear la receta de código que implemente su lógica empresarial.

La receta se crea como un archivo con formato JSON o YAML. También cargue el código de la aplicación del cliente a un bucket de Amazon S3.

Para crear la receta del componente de la aplicación cliente
  1. Si no lo ha hecho aún, debe crear los archivos de código auxiliar de gRPC. Para obtener más información, consulte Configuración de gRPC.

  2. Guarde el siguiente código en un archivo denominado 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. Cree un bucket de Amazon S3 (o utilice uno existente) para almacenar los archivos fuente del componente de la aplicación cliente. El bucket debe estar en tu AWS cuenta y en la misma AWS región en la que utilizas AWS IoT Greengrass Version 2 Amazon Lookout for Vision.

  4. Cargue lookoutvision_edge_agent_example.py, edge_agent_pb2_grpc.py and edge_agent_pb2.py en el bucket de Amazon S3 que creó en el paso anterior. Anote la ruta de Amazon S3 de cada archivo. Usted creó edge_agent_pb2_grpc.py y edge_agent_pb2.py enConfiguración de gRPC.

  5. En un editor, crea el siguiente archivo de recetas JSON o YAML.

    • model_componental nombre del componente del modelo. Para obtener más información, consulte Configuración de los componentes.

    • Cambie las entradas del URI por las rutas S3 de lookoutvision_edge_agent_example.pyedge_agent_pb2_grpc.py, yedge_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. Guarde el archivo JSON o YAML en su computadora.

  7. Cree el componente de aplicación de cliente de la siguiente manera:

Publicar el componente de la aplicación cliente (consola)

Puede utilizar la AWS IoT Greengrass V2 consola para publicar el componente de la aplicación cliente.

Para publicar el componente de la aplicación cliente
  1. Si aún no lo ha hecho, cree la receta para el componente de la aplicación de su cliente de la siguiente manera. Creación de la receta

  2. Abra la consola de AWS IoT Greengrass en https://console.aws.amazon.com/iot/.

  3. En el panel de navegación de la izquierda, en Greengrass, elija Componentes.

  4. En Mis componentes, elija Crear componente.

  5. En la página Crear componente, seleccione Introducir receta como JSON si desea utilizar una receta en formato JSON. Selecciona Introducir receta como YAML si quieres usar una receta en formato YAML.

  6. En Receta, reemplaza la receta existente por la receta JSON o YAML en la que la creaste. Creación de la receta

  7. Selecciona Crear componente.

  8. A continuación, implemente el componente de la aplicación cliente.

Publicar el componente de aplicación cliente (SDK)

Puede publicar el componente de la aplicación cliente mediante la API CreateComponentVersion.

Para publicar el componente de aplicación cliente (SDK)
  1. Si aún no lo ha hecho, cree la receta para el componente de la aplicación de su cliente de la siguiente manera. Creación de la receta

  2. En el símbolo del sistema, escriba el siguiente comando para crear el componente de aplicación de cliente. recipe-fileSustitúyalo por el nombre del archivo de recetas en el que creóCreación de la receta.

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

    Anote el ARN del componente en la respuesta. Lo necesitará en el siguiente paso.

  3. Utilice el siguiente comando para obtener el estado del componente de la aplicación de cliente. Sustituya component-arn por el ARN de la política anotado en el paso anterior. El componente de la aplicación cliente está listo si el valor de componentState esDEPLOYABLE.

    aws greengrassv2 describe-component --arn component-arn
  4. A continuación, implemente el componente de la aplicación cliente.