Personalizza i tuoi componenti di machine learning - AWS IoT Greengrass

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Personalizza i tuoi componenti di machine learning

InAWS IoT Greengrass, puoi configurare componenti di machine learning di esempio per personalizzare il modo in cui esegui l'inferenza di machine learning sui tuoi dispositivi utilizzando i componenti di inferenza, modello e runtime come elementi costitutivi. AWS IoT Greengrassoffre inoltre la flessibilità necessaria per utilizzare i componenti di esempio come modelli e creare componenti personalizzati in base alle esigenze. È possibile combinare questo approccio modulare per personalizzare i componenti di inferenza dell'apprendimento automatico nei seguenti modi:

Utilizzo di componenti di inferenza di esempio
  • Modifica la configurazione dei componenti di inferenza quando li distribuisci.

  • Utilizzate un modello personalizzato con il componente di inferenza del campione sostituendo il componente sample model store con un componente del modello personalizzato. Il modello personalizzato deve essere addestrato utilizzando lo stesso runtime del modello di esempio.

Utilizzo di componenti di inferenza personalizzati
  • Usa codice di inferenza personalizzato con i modelli e i runtime di esempio aggiungendo componenti del modello pubblico e componenti di runtime come dipendenze dei componenti di inferenza personalizzati.

  • Crea e aggiungi componenti di modello personalizzati o componenti di runtime come dipendenze di componenti di inferenza personalizzati. È necessario utilizzare componenti personalizzati se si desidera utilizzare un codice di inferenza personalizzato o un runtime per il quale AWS IoT Greengrass non è disponibile un componente di esempio.

Modifica la configurazione di un componente di inferenza pubblica

Nella AWS IoT Greengrassconsole, la pagina del componente mostra la configurazione predefinita di quel componente. Ad esempio, la configurazione predefinita del componente di classificazione delle immagini TensorFlow Lite è simile alla seguente:

{ "accessControl": { "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/image-classification" ] } } }, "PublishResultsOnTopic": "ml/tflite/image-classification", "ImageName": "cat.jpeg", "InferenceInterval": 3600, "ModelResourceKey": { "model": "TensorFlowLite-Mobilenet" } }

Quando si distribuisce un componente di inferenza pubblica, è possibile modificare la configurazione predefinita per personalizzare la distribuzione. Per informazioni sui parametri di configurazione disponibili per ogni componente di inferenza pubblica, consulta l'argomento relativo al componente in. AWS-componenti di apprendimento automatico forniti

Questa sezione descrive come distribuire un componente modificato dalla AWS IoT Greengrass console. Per informazioni sulla distribuzione dei componenti utilizzando ilAWS CLI, vedere. Creare distribuzione

Per distribuire un componente di inferenza pubblica modificato (console)
  1. Accedi alla console AWS IoT Greengrass.

  2. Nel menu di navigazione, scegli Componenti.

  3. Nella pagina Componenti, nella scheda Componenti pubblici, scegli il componente che desideri distribuire.

  4. Nella pagina del componente, scegli Distribuisci.

  5. Da Aggiungi alla distribuzione, scegli una delle seguenti opzioni:

    1. Per unire questo componente a una distribuzione esistente sul dispositivo di destinazione, scegli Aggiungi alla distribuzione esistente, quindi seleziona la distribuzione che desideri modificare.

    2. Per creare una nuova distribuzione sul dispositivo di destinazione, scegli Crea nuova distribuzione. Se hai una distribuzione esistente sul tuo dispositivo, la scelta di questo passaggio sostituisce la distribuzione esistente.

  6. Nella pagina Specifica destinazione, procedi come segue:

    1. In Informazioni sulla distribuzione, inserisci o modifica il nome descrittivo della distribuzione.

    2. In Destinazione della distribuzione, seleziona una destinazione della distribuzione e scegli Avanti. Non è possibile modificare la destinazione della distribuzione se si sta revisionando una distribuzione esistente.

  7. Nella pagina Seleziona componenti, in Componenti pubblici, verifica che sia selezionato il componente di inferenza con la configurazione modificata e scegli Avanti.

  8. Nella pagina Configura componenti, procedi come segue:

    1. Selezionate il componente di inferenza e scegliete Configura componente.

    2. In Aggiornamento della configurazione, inserisci i valori di configurazione che desideri aggiornare. Ad esempio, inserisci il seguente aggiornamento di configurazione nella casella Configurazione da unire per modificare l'intervallo di inferenza a 15 secondi e chiedi al componente di cercare l'immagine denominata custom.jpg nella cartella. /custom-ml-inference/images/

      { "InferenceInterval": "15", "ImageName": "custom.jpg", "ImageDirectory": "/custom-ml-inference/images/" }

      Per ripristinare l'intera configurazione di un componente ai valori predefiniti, specificate una singola stringa vuota "" nella casella Reimposta percorsi.

    3. Seleziona Conferma e scegli Avanti.

  9. Nella pagina Configura impostazioni avanzate, mantieni le impostazioni di configurazione predefinite e scegli Avanti.

  10. Nella pagina di revisione, scegli Distribuisci

Utilizza un modello personalizzato con il componente di inferenza del campione

Se desideri utilizzare il componente di inferenza del campione con i tuoi modelli di machine learning per un runtime che AWS IoT Greengrass fornisce un componente di runtime di esempio, devi sostituire i componenti del modello pubblico con componenti che utilizzano tali modelli come artefatti. A un livello elevato, completate i seguenti passaggi per utilizzare un modello personalizzato con il componente di inferenza di esempio:

  1. Crea un componente del modello che utilizza un modello personalizzato in un bucket S3 come artefatto. Il modello personalizzato deve essere addestrato utilizzando lo stesso runtime del modello che si desidera sostituire.

  2. Modifica il parametro ModelResourceKey di configurazione nel componente di inferenza per utilizzare il modello personalizzato. Per informazioni sull'aggiornamento della configurazione del componente di inferenza, vedere Modifica la configurazione di un componente di inferenza pubblica

Quando si distribuisce il componente di inferenza, AWS IoT Greengrass cerca la versione più recente delle dipendenze dei componenti. Sostituisce il componente del modello pubblico dipendente se nello stesso e è presente una versione personalizzata successiva del componente. Account AWS Regione AWS

  1. Carica il tuo modello in un bucket S3. Per informazioni sul caricamento dei modelli in un bucket S3, consulta Working with Amazon S3 Buckets nella Amazon Simple Storage Service User Guide.

    Nota

    È necessario archiviare gli artefatti in bucket S3 che si trovano negli stessi componenti. Account AWS Regione AWS Per consentire l'accesso AWS IoT Greengrass a questi artefatti, il ruolo del dispositivo Greengrass deve consentire l'azione. s3:GetObject Per ulteriori informazioni sul ruolo del dispositivo, vedere. Autorizza i dispositivi principali a interagire con i servizi AWS

  2. Nel menu di navigazione della AWS IoT Greengrassconsole, scegli Componenti.

  3. Recupera la ricetta del componente Public Model Store.

    1. Nella pagina Componenti, nella scheda Componenti pubblici, cercate e scegliete il componente del modello pubblico per il quale desiderate creare una nuova versione. Ad esempio, variant.DLR.ImageClassification.ModelStore.

    2. Nella pagina del componente, scegli Visualizza ricetta e copia la ricetta JSON visualizzata.

  4. Nella pagina Componenti, nella scheda I miei componenti, scegli Crea componente.

  5. Nella pagina Crea componente, in Informazioni sui componenti, seleziona Inserisci la ricetta come JSON come origine del componente.

  6. Nella casella Ricetta, incolla la ricetta del componente che hai copiato in precedenza.

  7. Nella ricetta, aggiorna i seguenti valori:

    • ComponentVersion: Incrementa la versione secondaria del componente.

      Quando create un componente personalizzato per sostituire un componente del modello pubblico, dovete aggiornare solo la versione secondaria della versione del componente esistente. Ad esempio, se la versione del componente pubblico è2.1.0, puoi creare un componente personalizzato con version2.1.1.

    • Manifests.Artifacts.Uri: aggiorna ogni valore URI all'URI Amazon S3 del modello che desideri utilizzare.

    Nota

    Non modificare il nome del componente.

  8. Scegliete Crea componente.

  1. Carica il tuo modello in un bucket S3. Per informazioni sul caricamento dei modelli in un bucket S3, consulta Working with Amazon S3 Buckets nella Amazon Simple Storage Service User Guide.

    Nota

    È necessario archiviare gli artefatti in bucket S3 che si trovano negli stessi componenti. Account AWS Regione AWS Per consentire l'accesso AWS IoT Greengrass a questi artefatti, il ruolo del dispositivo Greengrass deve consentire l'azione. s3:GetObject Per ulteriori informazioni sul ruolo del dispositivo, vedere. Autorizza i dispositivi principali a interagire con i servizi AWS

  2. Eseguite il comando seguente per recuperare la ricetta del componente pubblico. Questo comando scrive la ricetta del componente nel file di output fornito nel comando. Convertite la stringa recuperata con codifica base64 in JSON o YAML, se necessario.

    Linux, macOS, or Unix
    aws greengrassv2 get-component \ --arn <arn> \ --recipe-output-format <recipe-format> \ --query recipe \ --output text | base64 --decode > <recipe-file>
    Windows Command Prompt (CMD)
    aws greengrassv2 get-component ^ --arn <arn> ^ --recipe-output-format <recipe-format> ^ --query recipe ^ --output text > <recipe-file>.base64 certutil -decode <recipe-file>.base64 <recipe-file>
    PowerShell
    aws greengrassv2 get-component ` --arn <arn> ` --recipe-output-format <recipe-format> ` --query recipe ` --output text > <recipe-file>.base64 certutil -decode <recipe-file>.base64 <recipe-file>
  3. Aggiorna il nome del file di ricetta in<component-name>-<component-version>, dove la versione del componente è la versione di destinazione del nuovo componente. Ad esempio, variant.DLR.ImageClassification.ModelStore-2.1.1.yaml.

  4. Nella ricetta, aggiorna i seguenti valori:

    • ComponentVersion: Incrementa la versione secondaria del componente.

      Quando create un componente personalizzato per sostituire un componente del modello pubblico, dovete aggiornare solo la versione secondaria della versione del componente esistente. Ad esempio, se la versione del componente pubblico è2.1.0, puoi creare un componente personalizzato con version2.1.1.

    • Manifests.Artifacts.Uri: aggiorna ogni valore URI all'URI Amazon S3 del modello che desideri utilizzare.

    Nota

    Non modificare il nome del componente.

  5. Esegui il seguente comando per creare un nuovo componente utilizzando la ricetta che hai recuperato e modificato.

    aws greengrassv2 create-component-version \ --inline-recipe fileb://path/to/component/recipe
    Nota

    Questo passaggio crea il componente nel AWS IoT Greengrass servizio in. Cloud AWS Puoi utilizzare la Greengrass CLI per sviluppare, testare e distribuire il componente localmente prima di caricarlo sul cloud. Per ulteriori informazioni, consulta Sviluppa AWS IoT Greengrass componenti.

Per ulteriori informazioni sulla creazione di componenti, vedere. Sviluppa AWS IoT Greengrass componenti

Crea componenti di machine learning personalizzati

È necessario creare componenti personalizzati se si desidera utilizzare un codice di inferenza personalizzato o un runtime per il quale AWS IoT Greengrass non è disponibile un componente di esempio. È possibile utilizzare il codice di inferenza personalizzato con i modelli e i runtime di apprendimento automatico di esempio AWS forniti oppure sviluppare una soluzione di inferenza di machine learning completamente personalizzata con modelli e runtime propri. Se i modelli utilizzano un runtime per il quale AWS IoT Greengrass è disponibile un componente di runtime di esempio, è possibile utilizzare tale componente di runtime e creare componenti personalizzati solo per il codice di inferenza e i modelli che si desidera utilizzare.

Recuperate la ricetta per un componente pubblico

È possibile utilizzare la ricetta di un componente pubblico di apprendimento automatico esistente come modello per creare un componente personalizzato. Per visualizzare la ricetta del componente per la versione più recente di un componente pubblico, usa la console o AWS CLI quanto segue:

  • Utilizzo della console

    1. Nella pagina Componenti, nella scheda Componenti pubblici, cerca e scegli il componente pubblico.

    2. Nella pagina del componente, scegli Visualizza ricetta.

  • Uso di AWS CLI

    Esegui il comando seguente per recuperare la ricetta del componente della variante pubblica. Questo comando scrive la ricetta del componente nel file di ricetta JSON o YAML fornito nel comando.

    Linux, macOS, or Unix
    aws greengrassv2 get-component \ --arn <arn> \ --recipe-output-format <recipe-format> \ --query recipe \ --output text | base64 --decode > <recipe-file>
    Windows Command Prompt (CMD)
    aws greengrassv2 get-component ^ --arn <arn> ^ --recipe-output-format <recipe-format> ^ --query recipe ^ --output text > <recipe-file>.base64 certutil -decode <recipe-file>.base64 <recipe-file>
    PowerShell
    aws greengrassv2 get-component ` --arn <arn> ` --recipe-output-format <recipe-format> ` --query recipe ` --output text > <recipe-file>.base64 certutil -decode <recipe-file>.base64 <recipe-file>

    Sostituisci i valori nel tuo comando come segue:

    • <arn>. L'Amazon Resource Name (ARN) del componente pubblico.

    • <recipe-format>. Il formato in cui si desidera creare il file delle ricette. I valori supportati sono JSON e YAML.

    • <recipe-file>. Il nome della ricetta nel formato<component-name>-<component-version>.

Recupera gli artefatti dei componenti di esempio

È possibile utilizzare gli artefatti utilizzati dai componenti pubblici di machine learning come modelli per creare artefatti di componenti personalizzati, come codice di inferenza o script di installazione in fase di esecuzione.

Per visualizzare gli artefatti di esempio inclusi nei componenti pubblici di machine learning, distribuisci il componente di inferenza pubblica e quindi visualizza gli artefatti sul tuo dispositivo nella cartella. /greengrass/v2/packages/artifacts-unarchived/component-name/component-version/

Carica gli artefatti dei componenti in un bucket S3

Prima di poter creare un componente personalizzato, devi caricare gli artefatti del componente in un bucket S3 e utilizzare gli URI S3 nella ricetta del componente. Ad esempio, per utilizzare il codice di inferenza personalizzato nel componente di inferenza, carica il codice in un bucket S3. Puoi quindi utilizzare l'URI Amazon S3 del tuo codice di inferenza come artefatto nel tuo componente.

Per informazioni sul caricamento di contenuti in un bucket S3, consulta Working with Amazon S3 Bucket nella Amazon Simple Storage Service User Guide.

Nota

È necessario archiviare gli artefatti in bucket S3 che si trovano negli stessi componenti. Account AWS Regione AWS Per consentire l'accesso AWS IoT Greengrass a questi artefatti, il ruolo del dispositivo Greengrass deve consentire l'azione. s3:GetObject Per ulteriori informazioni sul ruolo del dispositivo, vedere. Autorizza i dispositivi principali a interagire con i servizi AWS

Creare componenti personalizzati

Puoi utilizzare gli artefatti e le ricette recuperati per creare componenti di machine learning personalizzati. Per vedere un esempio, consulta Crea un componente di inferenza personalizzato.

Per informazioni dettagliate sulla creazione e la distribuzione di componenti sui dispositivi Greengrass, Sviluppa AWS IoT Greengrass componenti vedere e. Implementazione AWS IoT Greengrass dei componenti sui dispositivi

Crea un componente di inferenza personalizzato

Questa sezione mostra come creare un componente di inferenza personalizzato utilizzando il componente di classificazione delle immagini DLR come modello.

Carica il tuo codice di inferenza in un bucket Amazon S3

Crea il tuo codice di inferenza e poi caricalo in un bucket S3. Per informazioni sul caricamento di contenuti in un bucket S3, consulta Working with Amazon S3 Bucket nella Amazon Simple Storage Service User Guide.

Nota

È necessario archiviare gli artefatti in bucket S3 che si trovano negli stessi componenti. Account AWS Regione AWS Per consentire l'accesso AWS IoT Greengrass a questi artefatti, il ruolo del dispositivo Greengrass deve consentire l'azione. s3:GetObject Per ulteriori informazioni sul ruolo del dispositivo, vedere. Autorizza i dispositivi principali a interagire con i servizi AWS

Crea una ricetta per il tuo componente di inferenza

  1. Eseguite il comando seguente per recuperare la ricetta del componente di classificazione delle immagini DLR. Questo comando scrive la ricetta del componente nel file di ricetta JSON o YAML fornito nel comando.

    Linux, macOS, or Unix
    aws greengrassv2 get-component \ --arn arn:aws:greengrass:region:aws:components:aws.greengrass.DLRImageClassification:versions:version \ --recipe-output-format JSON | YAML \ --query recipe \ --output text | base64 --decode > <recipe-file>
    Windows Command Prompt (CMD)
    aws greengrassv2 get-component ^ --arn arn:aws:greengrass:region:aws:components:aws.greengrass.DLRImageClassification:versions:version ^ --recipe-output-format JSON | YAML ^ --query recipe ^ --output text > <recipe-file>.base64 certutil -decode <recipe-file>.base64 <recipe-file>
    PowerShell
    aws greengrassv2 get-component ` --arn arn:aws:greengrass:region:aws:components:aws.greengrass.DLRImageClassification:versions:version ` --recipe-output-format JSON | YAML ` --query recipe ` --output text > <recipe-file>.base64 certutil -decode <recipe-file>.base64 <recipe-file>

    Sostituisci <recipe-file>con il nome della ricetta nel formato. <component-name>-<component-version>

  2. ComponentDependenciesNell'oggetto della ricetta, effettuate una o più delle seguenti operazioni a seconda del modello e dei componenti di runtime che desiderate utilizzare:

    • Mantieni la dipendenza dai componenti DLR se desideri utilizzare modelli compilati con DLR. Potete anche sostituirlo con una dipendenza da un componente di runtime personalizzato, come illustrato nell'esempio seguente.

      Componente di runtime

      JSON
      { "<runtime-component>": { "VersionRequirement": "<version>", "DependencyType": "HARD" } }
      YAML
      <runtime-component>: VersionRequirement: "<version>" DependencyType: HARD
    • Mantieni la dipendenza dall'archivio del modello di classificazione delle immagini DLR per utilizzare i modelli ResNet -50 preaddestrati che AWS fornisce o modificalo per utilizzare un componente del modello personalizzato. Quando includete una dipendenza per un componente del modello pubblico, se nello stesso Account AWS componente esiste una versione personalizzata successivaRegione AWS, il componente di inferenza utilizza quel componente personalizzato. Specificate la dipendenza del componente del modello come illustrato negli esempi seguenti.

      Componente del modello pubblico

      JSON
      { "variant.DLR.ImageClassification.ModelStore": { "VersionRequirement": "<version>", "DependencyType": "HARD" } }
      YAML
      variant.DLR.ImageClassification.ModelStore: VersionRequirement: "<version>" DependencyType: HARD

      Componente del modello personalizzato

      JSON
      { "<custom-model-component>": { "VersionRequirement": "<version>", "DependencyType": "HARD" } }
      YAML
      <custom-model-component>: VersionRequirement: "<version>" DependencyType: HARD
  3. Nell'ComponentConfigurationoggetto, aggiungete la configurazione predefinita per questo componente. È possibile modificare questa configurazione in un secondo momento quando si distribuisce il componente. Il seguente estratto mostra la configurazione dei componenti per il componente di classificazione delle immagini DLR.

    Ad esempio, se utilizzate un componente del modello personalizzato come dipendenza per il componente di inferenza personalizzato, modificatelo per ModelResourceKey fornire i nomi dei modelli che state utilizzando.

    JSON
    { "accessControl": { "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.ImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/dlr/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/dlr/image-classification" ] } } }, "PublishResultsOnTopic": "ml/dlr/image-classification", "ImageName": "cat.jpeg", "InferenceInterval": 3600, "ModelResourceKey": { "armv7l": "DLR-resnet50-armv7l-cpu-ImageClassification", "x86_64": "DLR-resnet50-x86_64-cpu-ImageClassification", "aarch64": "DLR-resnet50-aarch64-cpu-ImageClassification" } }
    YAML
    accessControl: aws.greengrass.ipc.mqttproxy: 'aws.greengrass.ImageClassification:mqttproxy:1': policyDescription: 'Allows access to publish via topic ml/dlr/image-classification.' operations: - 'aws.greengrass#PublishToIoTCore' resources: - ml/dlr/image-classification PublishResultsOnTopic: ml/dlr/image-classification ImageName: cat.jpeg InferenceInterval: 3600 ModelResourceKey: armv7l: "DLR-resnet50-armv7l-cpu-ImageClassification" x86_64: "DLR-resnet50-x86_64-cpu-ImageClassification" aarch64: "DLR-resnet50-aarch64-cpu-ImageClassification"
  4. Nell'Manifestsoggetto, fornite informazioni sugli artefatti e sulla configurazione di questo componente che vengono utilizzati quando il componente viene distribuito su piattaforme diverse e qualsiasi altra informazione necessaria per eseguire correttamente il componente. Il seguente estratto mostra la configurazione dell'Manifestsoggetto per la piattaforma Linux nel componente di classificazione delle immagini DLR.

    JSON
    { "Manifests": [ { "Platform": { "os": "linux", "architecture": "arm" }, "Name": "32-bit armv7l - Linux (raspberry pi)", "Artifacts": [ { "URI": "s3://SAMPLE-BUCKET/sample-artifacts-directory/image_classification.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "Setenv": { "DLR_IC_MODEL_DIR": "{variant.DLR.ImageClassification.ModelStore:artifacts:decompressedPath}/{configuration:/ModelResourceKey/armv7l}", "DEFAULT_DLR_IC_IMAGE_DIR": "{artifacts:decompressedPath}/image_classification/sample_images/" }, "run": { "RequiresPrivilege": true, "script": ". {variant.DLR:configuration:/MLRootPath}/greengrass_ml_dlr_venv/bin/activate\npython3 {artifacts:decompressedPath}/image_classification/inference.py" } } } ] }
    YAML
    Manifests: - Platform: os: linux architecture: arm Name: 32-bit armv7l - Linux (raspberry pi) Artifacts: - URI: s3://SAMPLE-BUCKET/sample-artifacts-directory/image_classification.zip Unarchive: ZIP Lifecycle: Setenv: DLR_IC_MODEL_DIR: "{variant.DLR.ImageClassification.ModelStore:artifacts:decompressedPath}/{configuration:/ModelResourceKey/armv7l}" DEFAULT_DLR_IC_IMAGE_DIR: "{artifacts:decompressedPath}/image_classification/sample_images/" run: RequiresPrivilege: true script: |- . {variant.DLR:configuration:/MLRootPath}/greengrass_ml_dlr_venv/bin/activate python3 {artifacts:decompressedPath}/image_classification/inference.py

Per informazioni dettagliate sulla creazione delle ricette dei componenti, vedere. AWS IoT Greengrass riferimento alla ricetta del componente

Creare il componente di inferenza

Usa la AWS IoT Greengrass console o il AWS CLI per creare un componente usando la ricetta che hai appena definito. Dopo aver creato il componente, puoi distribuirlo per eseguire inferenze sul tuo dispositivo. Per un esempio di come implementare un componente di inferenza, vedi. Tutorial: eseguire l'inferenza della classificazione delle immagini di esempio utilizzando TensorFlow Lite

  1. Accedi alla console AWS IoT Greengrass.

  2. Nel menu di navigazione, scegli Componenti.

  3. Nella pagina Componenti, nella scheda I miei componenti, scegli Crea componente.

  4. Nella pagina Crea componente, in Informazioni sui componenti, seleziona Inserisci la ricetta come JSON o Inserisci la ricetta come YAML come origine del componente.

  5. Nella casella Ricetta, inserisci la ricetta personalizzata che hai creato.

  6. Fate clic su Crea componente.

Esegui il comando seguente per creare un nuovo componente personalizzato utilizzando la ricetta che hai creato.

aws greengrassv2 create-component-version \ --inline-recipe fileb://path/to/recipe/file
Nota

Questo passaggio crea il componente nel AWS IoT Greengrass servizio inCloud AWS. Puoi utilizzare la Greengrass CLI per sviluppare, testare e distribuire il componente localmente prima di caricarlo sul cloud. Per ulteriori informazioni, consulta Sviluppa AWS IoT Greengrass componenti.