Crea AWS IoT Greengrass componenti - 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à.

Crea AWS IoT Greengrass componenti

È possibile sviluppare AWS IoT Greengrass componenti personalizzati su un computer di sviluppo locale o su un dispositivo principale Greengrass. AWS IoT Greengrass fornisce l'interfaccia a riga di comando del AWS IoT Greengrass Development Kit (GDK CLI) per aiutarti a creare, creare e pubblicare componenti da modelli di componenti predefiniti e componenti della community. È inoltre possibile eseguire comandi shell incorporati per creare, creare e pubblicare componenti. Scegliete tra le seguenti opzioni per creare componenti Greengrass personalizzati:

  • Usa la CLI del Greengrass Development Kit

    Usa la CLI GDK per sviluppare componenti su un computer di sviluppo locale. La CLI GDK compila e impacchetta il codice sorgente dei componenti in una ricetta e in artefatti che puoi pubblicare come componente privato del servizio. AWS IoT Greengrass Puoi configurare la CLI di GDK per aggiornare automaticamente la versione del componente e gli URI degli artefatti quando pubblichi il componente, in modo da non dover aggiornare la ricetta ogni volta. Per sviluppare un componente utilizzando la CLI GDK, puoi iniziare da un modello o da un componente della community dal Greengrass Software Catalog. Per ulteriori informazioni, consulta AWS IoT GreengrassInterfaccia a riga di comando del Development Kit.

  • Esegui i comandi della shell incorporati

    È possibile eseguire comandi shell integrati per sviluppare componenti su un computer di sviluppo locale o su un dispositivo principale Greengrass. Utilizzate i comandi della shell per copiare o creare il codice sorgente dei componenti in artefatti. Ogni volta che create una nuova versione di un componente, dovete creare o aggiornare la ricetta con la nuova versione del componente. Quando pubblicate il componente sul AWS IoT Greengrass servizio, dovete aggiornare l'URI per ogni elemento del componente nella ricetta.

Creare un componente (GDK CLI)

Segui le istruzioni in questa sezione per creare e creare un componente utilizzando la CLI GDK.

Sviluppare un componente Greengrass (GDK CLI)
  1. Se non l'hai già fatto, installa la CLI GDK sul tuo computer di sviluppo. Per ulteriori informazioni, consulta Installare o aggiornare l'interfaccia a riga di comando del AWS IoT Greengrass Development Kit.

  2. Passa alla cartella in cui desideri creare le cartelle dei componenti.

    Linux or Unix
    mkdir ~/greengrassv2 cd ~/greengrassv2
    Windows Command Prompt (CMD)
    mkdir %USERPROFILE%\greengrassv2 cd %USERPROFILE%\greengrassv2
    PowerShell
    mkdir ~/greengrassv2 cd ~/greengrassv2
  3. Scegliete un modello di componente o un componente della community da scaricare. La CLI di GDK scarica il modello o il componente della community, quindi puoi iniziare da un esempio funzionale. Utilizzate il comando component list per recuperare l'elenco dei modelli disponibili o dei componenti della community.

    • Per elencare i modelli dei componenti, esegui il comando seguente. Ogni riga della risposta include il nome e il linguaggio di programmazione di un modello.

      gdk component list --template
    • Per elencare i componenti della community, esegui il comando seguente.

      gdk component list --repository
  4. Crea e passa a una cartella di componenti in cui la CLI di GDK scarica il modello o il componente della community. Sostituisci HelloWorldcon il nome del componente o un altro nome che ti aiuti a identificare la cartella del componente.

    Linux or Unix
    mkdir HelloWorld cd HelloWorld
    Windows Command Prompt (CMD)
    mkdir HelloWorld cd HelloWorld
    PowerShell
    mkdir HelloWorld cd HelloWorld
  5. Scarica il modello o il componente della community nella cartella corrente. Usa il comando component init.

    • Per creare una cartella di componenti da un modello, esegui il comando seguente. Sostituisci HelloWorldcon il nome del modello e sostituisci python con il nome del linguaggio di programmazione.

      gdk component init --template HelloWorld --language python
    • Per creare una cartella di componenti da un componente della comunità, esegui il comando seguente. Sostituisci ComponentNamecon il nome del componente della community.

      gdk component init --repository ComponentName
    Nota

    Se usi GDK CLI v1.0.0, devi eseguire questo comando in una cartella vuota. La CLI GDK scarica il modello o il componente della community nella cartella corrente.

    Se utilizzi GDK CLI v1.1.0 o versione successiva, puoi specificare --name l'argomento per specificare la cartella in cui la CLI di GDK scarica il modello o il componente della community. Se usi questo argomento, specifica una cartella che non esiste. La CLI GDK crea la cartella per te. Se non specificate questo argomento, la CLI di GDK utilizza la cartella corrente, che deve essere vuota.

  6. La CLI GDK legge dal file di configurazione GDK CLI, gdk-config.json denominato, per creare e pubblicare componenti. Questo file di configurazione esiste nella radice della cartella del componente. Il passaggio precedente crea questo file automaticamente. In questo passaggio, si aggiorna gdk-config.json con le informazioni sul componente. Esegui questa operazione:

    1. Aprire gdk-config.json in un editor di testo.

    2. (Facoltativo) Modifica il nome del componente. Il nome del componente è la chiave dell'componentoggetto.

    3. Cambia l'autore del componente.

    4. (Facoltativo) Modifica la versione del componente. Specifica una delle seguenti proprietà:

      • NEXT_PATCH— Quando scegliete questa opzione, la CLI di GDK imposta la versione quando pubblicate il componente. La CLI GDK interroga AWS IoT Greengrass il servizio per identificare l'ultima versione pubblicata del componente. Quindi, imposta la versione alla versione della patch successiva a quella versione. Se non hai mai pubblicato il componente prima, la CLI di GDK utilizza la versione. 1.0.0

        Se scegli questa opzione, non puoi utilizzare la CLI di Greengrass per distribuire e testare localmente il componente sul tuo computer di sviluppo locale che esegue il software Core. AWS IoT Greengrass Per abilitare le distribuzioni locali, devi invece specificare una versione semantica.

      • Una versione semantica, ad esempio. 1.0.0 Le versioni semantiche utilizzano un major. minore. sistema di numerazione delle patch. Per ulteriori informazioni, consulta la specifica della versione semantica.

        Se sviluppate componenti su un dispositivo Greengrass core su cui desiderate distribuire e testare il componente, scegliete questa opzione. È necessario creare il componente con una versione specifica per creare distribuzioni locali con la Greengrass CLI.

    5. (Facoltativo) Modificate la configurazione di compilazione per il componente. La configurazione di build definisce come la CLI di GDK crea il sorgente del componente in artefatti. Scegliete tra le seguenti opzioni per: build_system

      • zip— Impacchetta la cartella del componente in un file ZIP da definire come unico elemento del componente. Scegliete questa opzione per i seguenti tipi di componenti:

        • Componenti che utilizzano linguaggi di programmazione interpretati, come Python o. JavaScript

        • Componenti che impacchettano file diversi dal codice, come modelli di apprendimento automatico o altre risorse.

        La CLI GDK comprime la cartella del componente in un file zip con lo stesso nome della cartella del componente. Ad esempio, se il nome della cartella del componente èHelloWorld, la CLI GDK crea un file zip denominato. HelloWorld.zip

        Nota

        Se si utilizza la versione 1.0.0 della CLI di GDK su un dispositivo Windows, i nomi delle cartelle dei componenti e dei file zip devono contenere solo lettere minuscole.

        Quando la CLI di GDK comprime la cartella del componente in un file zip, salta i seguenti file:

        • Il file gdk-config.json

        • Il file della ricetta (o) recipe.json recipe.yaml

        • Crea cartelle, come greengrass-build

      • maven— Esegue il mvn clean package comando per creare il codice sorgente del componente in artefatti. Scegli questa opzione per i componenti che utilizzano Maven, come i componenti Java.

        Sui dispositivi Windows, questa funzionalità è disponibile per GDK CLI v1.1.0 e versioni successive.

      • gradle— Esegue il gradle build comando per creare il codice sorgente del componente in artefatti. Scegliete questa opzione per i componenti che utilizzano Gradle. Questa funzionalità è disponibile per GDK CLI v1.1.0 e versioni successive.

        Il sistema di gradle build supporta Kotlin DSL come file di build. Questa funzionalità è disponibile per GDK CLI v1.2.0 e versioni successive.

      • gradlew— Esegue il gradlew comando per creare il codice sorgente del componente in artefatti. Scegliete questa opzione per i componenti che utilizzano il Gradle Wrapper.

        Questa funzionalità è disponibile per GDK CLI v1.2.0 e versioni successive.

      • custom— Esegue un comando personalizzato per creare il codice sorgente del componente in una ricetta e in artefatti. Specificate il comando personalizzato nel custom_build_command parametro.

    6. Se specificate custom forbuild_system, aggiungete il custom_build_command all'buildoggetto. Incustom_build_command, specificate una singola stringa o un elenco di stringhe, dove ogni stringa è una parola nel comando. Ad esempio, per eseguire un comando di compilazione personalizzato per un componente C++, è possibile specificare. ["cmake", "--build", "build", "--config", "Release"]

    7. Se utilizzi GDK CLI v1.1.0 o versione successiva, puoi specificare --bucket l'argomento per specificare il bucket S3 in cui la CLI di GDK carica gli artefatti del componente. Se non specifichi questo argomento, la CLI di GDK viene caricata nel bucket S3 il cui nome bucket-region-accountId è, dove bucket e region sono i valori specificati e AccountID è il tuo IDgdk-config.json. Account AWS La CLI GDK crea il bucket se non esiste.

      Modifica la configurazione di pubblicazione per il componente. Esegui questa operazione:

      1. Specificate il nome del bucket S3 da utilizzare per ospitare gli artefatti dei componenti.

      2. Specificate Regione AWS dove la CLI di GDK pubblica il componente.

    Al termine di questo passaggio, il gdk-config.json file potrebbe essere simile all'esempio seguente.

    { "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2" } } }, "gdk_version": "1.0.0" }
  7. Aggiornate il file di ricetta del componente, denominato recipe.yaml orecipe.json. Esegui questa operazione:

    1. Se hai scaricato un modello o un componente della community che utilizza il sistema di zip compilazione, verifica che il nome dell'artefatto zip corrisponda al nome della cartella del componente. La CLI GDK comprime la cartella del componente in un file zip con lo stesso nome della cartella del componente. La ricetta contiene il nome dell'artefatto zip nell'elenco degli artefatti dei componenti e negli script del ciclo di vita che utilizzano i file nell'elemento zip. Aggiorna le Lifecycle definizioni Artifacts e in modo che il nome del file zip corrisponda al nome della cartella del componente. I seguenti esempi di ricette parziali evidenziano il nome del file zip nelle Lifecycle definizioni Artifacts and.

      JSON
      { ... "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://{COMPONENT_NAME}/{COMPONENT_VERSION}/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
      YAML
      --- ... Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
    2. (Facoltativo) Aggiornate la descrizione del componente, la configurazione predefinita, gli artefatti, gli script del ciclo di vita e il supporto della piattaforma. Per ulteriori informazioni, consulta AWS IoT Greengrass riferimento alla ricetta del componente.

    Al termine di questo passaggio, il file delle ricette potrebbe essere simile ai seguenti esempi.

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "{COMPONENT_NAME}", "ComponentVersion": "{COMPONENT_VERSION}", "ComponentDescription": "This is a simple Hello World component written in Python.", "ComponentPublisher": "{COMPONENT_AUTHOR}", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "World" } }, "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://{COMPONENT_NAME}/{COMPONENT_VERSION}/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
    YAML
    --- RecipeFormatVersion: "2020-01-25" ComponentName: "{COMPONENT_NAME}" ComponentVersion: "{COMPONENT_VERSION}" ComponentDescription: "This is a simple Hello World component written in Python." ComponentPublisher: "{COMPONENT_AUTHOR}" ComponentConfiguration: DefaultConfiguration: Message: "World" Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
  8. Sviluppa e costruisci il componente Greengrass. Il comando component build produce una ricetta e degli artefatti nella greengrass-build cartella della cartella del componente. Esegui il comando seguente.

    gdk component build

Quando sei pronto per testare il tuo componente, usa la CLI di GDK per pubblicarlo AWS IoT Greengrass sul servizio. Quindi, puoi distribuire il componente sui dispositivi principali Greengrass. Per ulteriori informazioni, consulta Pubblica componenti da distribuire sui tuoi dispositivi principali.

Crea un componente (comandi shell)

Segui le istruzioni in questa sezione per creare cartelle di ricette e artefatti che contengono codice sorgente e artefatti per più componenti.

Sviluppare un componente Greengrass (comandi di shell)
  1. Crea una cartella per i tuoi componenti con sottocartelle per ricette e artefatti. Esegui i seguenti comandi sul tuo dispositivo principale Greengrass per creare queste cartelle e passare alla cartella dei componenti. Sostituisci ~/greengrassv2 o %USERPROFILE%\ greengrassv2 con il percorso della cartella da utilizzare per lo sviluppo locale.

    Linux or Unix
    mkdir -p ~/greengrassv2/{recipes,artifacts} cd ~/greengrassv2
    Windows Command Prompt (CMD)
    mkdir %USERPROFILE%\greengrassv2\\recipes, %USERPROFILE%\greengrassv2\\artifacts cd %USERPROFILE%\greengrassv2
    PowerShell
    mkdir ~/greengrassv2/recipes, ~/greengrassv2/artifacts cd ~/greengrassv2
  2. Usa un editor di testo per creare un file di ricette che definisca i metadati, i parametri, le dipendenze, il ciclo di vita e le funzionalità della piattaforma del componente. Includi la versione del componente nel nome del file di ricetta in modo da poter identificare quale ricetta riflette quale versione del componente. Puoi scegliere il formato YAML o JSON per la tua ricetta.

    Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.

    JSON
    nano recipes/com.example.HelloWorld-1.0.0.json
    YAML
    nano recipes/com.example.HelloWorld-1.0.0.yaml
    Nota

    AWS IoT Greengrass utilizza versioni semantiche per i componenti. Le versioni semantiche seguono una delle principali. minore. sistema di numerazione delle patch. Ad esempio, la versione 1.0.0 rappresenta la prima release principale di un componente. Per ulteriori informazioni, consultate la specifica della versione semantica.

  3. Definite la ricetta per il componente. Per ulteriori informazioni, consulta AWS IoT Greengrass riferimento alla ricetta del componente.

    La tua ricetta potrebbe essere simile alla seguente ricetta di esempio di Hello World.

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.HelloWorld", "ComponentVersion": "1.0.0", "ComponentDescription": "My first AWS IoT Greengrass component.", "ComponentPublisher": "Amazon", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "world" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "run": "python3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } }, { "Platform": { "os": "windows" }, "Lifecycle": { "run": "py -3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } } ] }
    YAML
    --- RecipeFormatVersion: '2020-01-25' ComponentName: com.example.HelloWorld ComponentVersion: '1.0.0' ComponentDescription: My first AWS IoT Greengrass component. ComponentPublisher: Amazon ComponentConfiguration: DefaultConfiguration: Message: world Manifests: - Platform: os: linux Lifecycle: run: | python3 -u {artifacts:path}/hello_world.py "{configuration:/Message}" - Platform: os: windows Lifecycle: run: | py -3 -u {artifacts:path}/hello_world.py "{configuration:/Message}"

    Questa ricetta esegue uno script Hello World Python, che potrebbe essere simile allo script di esempio seguente.

    import sys message = "Hello, %s!" % sys.argv[1] # Print the message to stdout, which Greengrass saves in a log file. print(message)
  4. Crea una cartella per lo sviluppo della versione del componente. Ti consigliamo di utilizzare una cartella separata per gli artefatti di ogni versione del componente in modo da poter identificare quali artefatti sono per ogni versione del componente. Esegui il comando seguente.

    Linux or Unix
    mkdir -p artifacts/com.example.HelloWorld/1.0.0
    Windows Command Prompt (CMD)
    mkdir artifacts/com.example.HelloWorld/1.0.0
    PowerShell
    mkdir artifacts/com.example.HelloWorld/1.0.0
    Importante

    È necessario utilizzare il seguente formato per il percorso della cartella degli artefatti. Includete il nome e la versione del componente specificati nella ricetta.

    artifacts/componentName/componentVersion/
  5. Create gli artefatti per il componente nella cartella creata nel passaggio precedente. Gli artefatti possono includere software, immagini e qualsiasi altro file binario utilizzato dal componente.

    Quando il componente è pronto, testalo.