componente - 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à.

componente

Utilizzate il component comando nell'interfaccia a riga di comando del AWS IoT Greengrass Development Kit (GDKCLI) per creare, creare e pubblicare componenti Greengrass personalizzati.

init

Inizializza una cartella di componenti Greengrass da un modello di componente o da un componente della community.

GDKCLIRecupera i componenti della community dal Greengrass Software Catalog e i modelli di componenti dal AWS IoT Greengrass repository Component Templates in poi. GitHub

Nota

Se si utilizza la GDK CLI versione 1.0.0, è necessario eseguire questo comando in una cartella vuota. Quindi GDK CLI scarica il modello o il componente della community nella cartella corrente.

Se si utilizza la GDK CLI versione 1.1.0 o successiva, è possibile specificare l'--nameargomento per specificare la cartella in cui GDK CLI scaricare il modello o il componente della community. Se usi questo argomento, specifica una cartella che non esiste. Quindi GDK CLI crea la cartella per te. Se non si specifica questo argomento, GDK CLI utilizza la cartella corrente, che deve essere vuota.

Se il componente utilizza il sistema di compilazione zip, comprime determinati file nella cartella del componente in un file zip con lo stesso nome della cartella del componente. GDK CLI Ad esempio, se il nome della cartella del componente èHelloWorld, GDK CLI crea un file zip denominatoHelloWorld.zip. Nella ricetta del componente, il nome dell'artefatto zip deve corrispondere al nome della cartella del componente. Se si utilizza la GDK CLI versione 1.0.0 su un dispositivo Windows, i nomi della cartella del componente e dei file zip devono contenere solo lettere minuscole.

Se inizializzi un modello o un componente della community che utilizza il sistema di compilazione zip in una cartella con un nome diverso dal modello o dal componente, devi modificare il nome dell'artefatto zip nella ricetta del componente. Aggiorna le Lifecycle definizioni Artifacts and in modo che il nome del file zip corrisponda al nome della cartella del componente. L'esempio seguente evidenzia il nome del file zip nelle Lifecycle definizioni Artifacts and.

JSON
{ ... "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}" } } ] }
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}"
Riepilogo
$ gdk component init [--language] [--template] [--repository] [--name]
Argomenti (inizializzati dal modello del componente)
  • -l, --language — Il linguaggio di programmazione da utilizzare per il modello specificato.

    È necessario specificare --repository o --language e--template.

  • -t, --template — Il modello di componente da utilizzare per un progetto di componente locale. Per visualizzare i modelli disponibili, utilizzate il comando list.

    È necessario specificare --repository o --language e--template.

  • -n, --name — (Facoltativo) Il nome della cartella locale in cui GDK CLI inizializza il componente. Specificate una cartella che non esiste. Quindi GDK CLI crea la cartella per te.

    Questa funzionalità è disponibile per la versione GDK CLI 1.1.0 e successive.

Argomenti (inizializzati dal componente della community)
  • -r, --repository — Il componente della community da archiviare nella cartella locale. Per visualizzare i componenti della community disponibili, utilizzate il comando list.

    È necessario specificare --repository o --language e--template.

  • -n, --name — (Facoltativo) Il nome della cartella locale in cui GDK CLI inizializza il componente. Specificate una cartella che non esiste. Quindi GDK CLI crea la cartella per te.

    Questa funzionalità è disponibile per la versione GDK CLI 1.1.0 e successive.

Output

L'esempio seguente mostra l'output prodotto quando si esegue questo comando per inizializzare una cartella di componenti dal modello Python Hello World.

$ gdk component init -l python -t HelloWorld [2021-11-29 12:51:40] INFO - Initializing the project directory with a python component template - 'HelloWorld'. [2021-11-29 12:51:40] INFO - Fetching the component template 'HelloWorld-python' from Greengrass Software Catalog.

L'esempio seguente mostra l'output prodotto quando si esegue questo comando per inizializzare una cartella di componenti da un componente della comunità.

$ gdk component init -r aws-greengrass-labs-database-influxdb [2022-01-24 15:44:33] INFO - Initializing the project directory with a component from repository catalog - 'aws-greengrass-labs-database-influxdb'. [2022-01-24 15:44:33] INFO - Fetching the component repository 'aws-greengrass-labs-database-influxdb' from Greengrass Software Catalog.

build

Crea il codice sorgente di un componente in una ricetta e in artefatti da pubblicare sul servizio. AWS IoT Greengrass GDKCLIEsegue il sistema di compilazione specificato nel file di GDK CLI configurazione,. gdk-config.json È necessario eseguire questo comando nella stessa cartella in cui si trova il gdk-config.json file.

Quando si esegue questo comando, GDK CLI crea una ricetta e degli artefatti nella greengrass-build cartella della cartella del componente. GDKCLISalva la ricetta nella greengrass-build/recipes cartella e salva gli artefatti nella cartella. greengrass-build/artifacts/componentName/componentVersion

Se usi la GDK CLI versione 1.1.0 o successiva, la ricetta del componente può specificare artefatti che esistono in un bucket S3 ma non nella cartella di build del componente locale. È possibile utilizzare questa funzionalità per ridurre l'utilizzo della larghezza di banda quando si sviluppano componenti con artefatti di grandi dimensioni, come i modelli di machine learning.

Dopo aver creato un componente, puoi eseguire una delle seguenti operazioni per testarlo su un dispositivo centrale Greengrass:

  • Se sviluppi su un dispositivo diverso da quello su cui esegui il software AWS IoT Greengrass Core, devi pubblicare il componente per distribuirlo su un dispositivo principale Greengrass. Pubblica il componente sul AWS IoT Greengrass servizio e distribuiscilo sul dispositivo principale Greengrass. Per ulteriori informazioni, vedete il comando publish e. Creare distribuzione

  • Se sviluppate sullo stesso dispositivo su cui eseguite il software AWS IoT Greengrass Core, potete pubblicare il componente sul AWS IoT Greengrass servizio da distribuire oppure potete creare una distribuzione locale per installare ed eseguire il componente. Per creare una distribuzione locale, usa GreengrassCLI. Per ulteriori informazioni, consulta Interfaccia a riga di comando Greengrass e Testare AWS IoT Greengrass i componenti con distribuzioni locali. Quando crei la distribuzione locale, specifica greengrass-build/recipes come cartella recipes e greengrass-build/artifacts come cartella artifacts.

Riepilogo
$ gdk component build
Arguments (Argomenti)

Nessuno

Output

L'esempio seguente mostra l'output prodotto quando si esegue questo comando.

$ gdk component build [2021-11-29 13:18:49] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:18:49] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:18:49] INFO - Building the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:18:49] INFO - Using 'zip' build system to build the component. [2021-11-29 13:18:49] WARNING - This component is identified as using 'zip' build system. If this is incorrect, please exit and specify custom build command in the 'gdk-config.json'. [2021-11-29 13:18:49] INFO - Zipping source code files of the component. [2021-11-29 13:18:49] INFO - Copying over the build artifacts to the greengrass component artifacts build folder. [2021-11-29 13:18:49] INFO - Updating artifact URIs in the recipe. [2021-11-29 13:18:49] INFO - Creating component recipe in 'C:\Users\MyUser\Documents\greengrass-components\python\HelloWorld\greengrass-build\recipes'.

pubblicazione

Pubblica questo componente nel AWS IoT Greengrass servizio. Questo comando carica gli elementi della build in un bucket S3, aggiorna l'artefatto URI nella ricetta e crea una nuova versione del componente dalla ricetta. GDKCLIutilizza il bucket S3 e la AWS regione specificati nel file di configurazione,. GDK CLI gdk-config.json È necessario eseguire questo comando nella stessa cartella in cui si trova il gdk-config.json file.

Se utilizzi la GDK CLI versione 1.1.0 o successiva, puoi specificare l'--bucketargomento per specificare il bucket S3 in cui GDK CLI caricare gli artefatti del componente. Se non specifichi questo argomento, i caricamenti vengono GDK CLI caricati nel bucket S3 il cui nome èbucket-region-accountId, dove bucket e region sono i valori in cui specifichi e rappresenta il tuo ID. gdk-config.json accountId Account AWS GDKCLICrea il bucket se non esiste.

Se si utilizza la GDK CLI versione 1.2.0 o successiva, è possibile sovrascrivere Regione AWS quanto specificato nel file di GDK CLI configurazione utilizzando il parametro. --region È inoltre possibile specificare opzioni aggiuntive utilizzando il parametro. --options Per un elenco delle opzioni disponibili, vedereFile di configurazione CLI del Greengrass Development Kit.

Quando esegui questo comando, GDK CLI pubblica il componente con la versione specificata nella ricetta. Se lo specificateNEXT_PATCH, GDK CLI utilizza la versione della patch successiva che non esiste già. Le versioni semantiche utilizzano una major. minore. sistema di numerazione delle patch. Per ulteriori informazioni, consulta la specifica della versione semantica.

Nota

Se si utilizza la GDK CLI versione 1.1.0 o successiva, quando si esegue questo comando, GDK CLI verifica se il componente è stato creato. Se il componente non è stato creato, lo GDK CLI crea prima di pubblicarlo.

Riepilogo
$ gdk component publish [--bucket] [--region] [--options]
Arguments (Argomenti)
  • -b, --bucket — (Facoltativo) Specificate il nome del bucket S3 in cui vengono pubblicati gli artefatti del GDK CLI componente.

    Se non specifichi questo argomento, i caricamenti vengono GDK CLI caricati nel bucket S3 il cui nome èbucket-region-accountId, dove bucket e region sono i valori in cui specifichi e rappresenta il tuo ID. gdk-config.json accountId Account AWS GDKCLICrea il bucket se non esiste.

    GDKCLICrea il bucket se non esiste.

    Questa funzionalità è disponibile per la versione GDK CLI 1.1.0 e successive.

  • -r, --region — (Facoltativo) Specificate il nome del punto Regione AWS al momento della creazione del componente. Questo argomento sostituisce il nome della regione nella GDK CLI configurazione.

    Questa funzionalità è disponibile per la versione GDK CLI 1.2.0 e successive.

  • -o, --options (Facoltativo) Specificate un elenco di opzioni per la pubblicazione di un componente. L'argomento deve essere una JSON stringa valida o il percorso di un JSON file contenente le opzioni di pubblicazione. Questo argomento ha la precedenza sulle opzioni della configurazione. GDK CLI

    Questa funzionalità è disponibile per la versione GDK CLI 1.2.0 e successive.

Output

L'esempio seguente mostra l'output prodotto quando si esegue questo comando.

$ gdk component publish [2021-11-29 13:45:29] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:45:29] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:45:29] INFO - Found credentials in shared credentials file: ~/.aws/credentials [2021-11-29 13:45:30] INFO - Publishing the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:45:30] INFO - No private version of the component 'com.example.PythonHelloWorld' exist in the account. Using '1.0.0' as the next version to create. [2021-11-29 13:45:30] INFO - Uploading the component built artifacts to s3 bucket. [2021-11-29 13:45:30] INFO - Uploading component artifacts to S3 bucket: {bucket}. If this is your first time using this bucket, add the 's3:GetObject' permission to each core device's token exchange role to allow it to download the component artifacts. For more information, see https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html. [2021-11-29 13:45:30] INFO - Not creating an artifacts bucket as it already exists. [2021-11-29 13:45:30] INFO - Updating the component recipe com.example.PythonHelloWorld-1.0.0. [2021-11-29 13:45:30] INFO - Creating a new greengrass component com.example.PythonHelloWorld-1.0.0 [2021-11-29 13:45:30] INFO - Created private version '1.0.0' of the component in the account.'com.example.PythonHelloWorld'.

elenco

Recupera l'elenco dei modelli di componenti e dei componenti della community disponibili.

GDKCLIRecupera i componenti della community dal Greengrass Software Catalog e i modelli di componenti dal AWS IoT Greengrass repository Component Templates in poi. GitHub

È possibile passare l'output di questo comando al comando init per inizializzare i repository di componenti dai modelli e dai componenti della community.

Riepilogo
$ gdk component list [--template] [--repository]
Arguments (Argomenti)
  • -t, --template — (Facoltativo) Specificate questo argomento per elencare i modelli di componenti disponibili. Questo comando restituisce il nome e la lingua di ogni modello nel formatoname-language. Ad esempio, inHelloWorld-python, il nome del modello è HelloWorld e la lingua èpython.

  • -r, --repository — (Facoltativo) Specificate questo argomento per elencare gli archivi di componenti della community disponibili.

Output

L'esempio seguente mostra l'output prodotto quando si esegue questo comando.

$ gdk component list --template [2021-11-29 12:29:04] INFO - Listing all the available component templates from Greengrass Software Catalog. [2021-11-29 12:29:04] INFO - Found '2' component templates to display. 1. HelloWorld-python 2. HelloWorld-java