File di configurazione CLI del Greengrass Development Kit - 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à.

File di configurazione CLI del Greengrass Development Kit

L'interfaccia a riga di comando del AWS IoT Greengrass Development Kit (GDK CLI) legge da un file di configurazione gdk-config.json denominato per creare e pubblicare componenti. Questo file di configurazione deve essere presente nella radice del repository dei componenti. Puoi usare il comando init della CLI GDK per inizializzare i repository dei componenti con questo file di configurazione.

Formato del file di configurazione GDK CLI

Quando definisci un file di configurazione GDK CLI per un componente, specifichi le seguenti informazioni in formato JSON.

gdk_version

La versione minima della CLI GDK compatibile con questo componente. Questo valore deve essere una delle versioni della CLI di GDK delle release.

component

La configurazione per questo componente.

componentName
author

L'autore o l'editore del componente.

version

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.

build

La configurazione da utilizzare per creare il codice sorgente di questo componente in artefatti. Questo oggetto contiene le seguenti informazioni:

build_system

Il sistema di compilazione da utilizzare. Seleziona una delle opzioni seguenti:

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

custom_build_command

(Facoltativo) Il comando custom build da eseguire per un sistema di build personalizzato. È necessario specificare questo parametro se si specifica custom perbuild_system.

Importante

Questo comando deve creare una ricetta e degli artefatti nelle seguenti cartelle all'interno della cartella del componente. La CLI GDK crea queste cartelle per te quando esegui il comando component build.

  • Cartella delle ricette: greengrass-build/recipes

  • Cartella Artifacts: greengrass-build/artifacts/componentName/componentVersion

    Sostituisci componentName con il nome del componente e sostituisci componentVersion con la versione del componente o. NEXT_PATCH

È possibile specificare una singola stringa o un elenco di stringhe, in cui ogni stringa è una parola del comando. Ad esempio, per eseguire un comando di compilazione personalizzato per un componente C++, puoi specificare cmake --build build --config Release o. ["cmake", "--build", "build", "--config", "Release"]

Per visualizzare un esempio di sistema di compilazione personalizzato, vedi aws.greengrass.labs.LocalWebServer community componenton GitHub.

options

(Facoltativo) Opzioni di configurazione aggiuntive utilizzate durante il processo di creazione del componente.

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

excludes

Un elenco di pattern a glob che definiscono quali file escludere dalla directory dei componenti durante la creazione del file zip. Valido solo quando build_system èzip.

Nota

Nelle versioni 1.4.0 e precedenti della CLI di GDK, qualsiasi file che corrisponde a una voce nell'elenco delle esclusioni viene escluso da tutte le sottodirectory del componente. Per ottenere lo stesso comportamento nelle versioni 1.5.0 e successive della CLI di GDK, **/ anteponi le voci esistenti nell'elenco delle esclusioni. Ad esempio, *.txt escluderà i file di testo solo dalla directory; **/*.txt escluderà i file di testo da tutte le directory e sottodirectory.

Nelle versioni 1.5.0 e successive della CLI di GDK, potresti visualizzare un avviso durante la compilazione del componente excludes quando è definito nel file di configurazione GDK. Per disabilitare questo avviso, imposta la variabile di ambiente su. GDK_EXCLUDES_WARN_IGNORE true

La CLI GDK esclude sempre i seguenti file dal file zip:

  • Il file gdk-config.json

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

  • Crea cartelle, come greengrass-build

I seguenti file sono esclusi per impostazione predefinita. Tuttavia, puoi controllare quali di questi file sono esclusi con l'excludesopzione.

  • Qualsiasi cartella che inizia con il prefisso «test» () test*

  • Tutti i file nascosti

  • La cartella node_modules

Se specificate l'excludesopzione, la CLI di GDK esclude solo i file impostati con l'opzione. excludes Se non specificate l'excludesopzione, la CLI di GDK esclude i file e le cartelle predefiniti precedentemente indicati.

zip_name

Il nome del file zip da usare quando si crea un elemento zip durante il processo di compilazione. Valido solo quando è. build_system zip Se build_system è vuoto, il nome del componente viene utilizzato per il nome del file zip.

publish

La configurazione da utilizzare per pubblicare questo componente nel AWS IoT Greengrass servizio.

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.

Questo oggetto contiene le seguenti informazioni:

bucket

Il nome del bucket S3 da usare per ospitare gli artefatti dei componenti.

region

Il Regione AWS punto in cui la CLI di GDK pubblica questo componente.

Questa proprietà è facoltativa se si utilizza GDK CLI v1.3.0 o versione successiva.

options

(Facoltativo) Opzioni di configurazione aggiuntive utilizzate durante la creazione della versione del componente.

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

file_upload_args

Una struttura JSON contenente argomenti inviati ad Amazon S3 durante il caricamento di file in un bucket, come metadati e meccanismi di crittografia. Per un elenco degli argomenti consentiti, consulta la S3Transferclasse nella documentazione di Boto3. .

test-e2e

(Facoltativo) La configurazione da utilizzare durante il end-to-end test del componente. Questa funzionalità è disponibile per GDK CLI v1.3.0 e versioni successive.

build

build_system— Il sistema di compilazione da utilizzare. L'opzione predefinita èmaven. Seleziona una delle opzioni seguenti:

  • maven— Esegue il mvn package comando per creare il modulo di test. Scegli questa opzione per creare il modulo di test che utilizza Maven.

  • gradle— Esegue il gradle build comando per creare il modulo di test. Scegliete questa opzione per il modulo di test che utilizza Gradle.

gtf_version

(Facoltativo) La versione del Greengrass Testing Framework (GTF) da usare come dipendenza del modulo di end-to-end test quando inizializzi il progetto GDK con GTF. Questo valore deve essere una delle versioni GTF delle release. L'impostazione predefinita è GTF versione 1.1.0.

gtf_options

(Facoltativo) Opzioni di configurazione aggiuntive utilizzate durante il end-to-end test del componente.

L'elenco seguente include le opzioni che è possibile utilizzare con la versione 1.1.0 di GTF.

  • additional-plugins— (Opzionale) Plugin aggiuntivi per Cucumber

  • aws-region— Si rivolge a endpoint regionali specifici per i servizi. AWS L'impostazione predefinita è ciò che rileva l'AWSSDK.

  • credentials-path— Percorso opzionale AWS delle credenziali del profilo. L'impostazione predefinita sono le credenziali rilevate nell'ambiente host.

  • credentials-path-rotation— Durata di rotazione opzionale per le credenziali. AWS Il valore predefinito è 15 minuti o. PT15M

  • csr-path— Il percorso della CSR con cui verrà generato il certificato del dispositivo.

  • device-mode— Il dispositivo bersaglio sottoposto a test. L'impostazione predefinita è il dispositivo locale.

  • env-stage— Si rivolge all'ambiente di implementazione di Greengrass. L'impostazione predefinita è la produzione.

  • existing-device-cert-arn— L'arn di un certificato esistente che desideri utilizzare come certificato del dispositivo per Greengrass.

  • feature-path— File o directory contenente file di funzionalità aggiuntivi. L'impostazione predefinita è che non vengono utilizzati file di feature aggiuntivi.

  • gg-cli-version— Sostituisce la versione della CLI di Greengrass. Il valore predefinito è il valore trovato in. ggc.version

  • gg-component-bucket— Il nome di un bucket Amazon S3 esistente che contiene componenti Greengrass.

  • gg-component-overrides— Un elenco di componenti sostituiti da Greengrass.

  • gg-persist— Un elenco di elementi di test che devono persistere dopo l'esecuzione di un test. Il comportamento predefinito consiste nel non rendere persistente nulla. I valori accettati sono: aws.resourcesinstalled.software, egenerated.files.

  • gg-runtime— Un elenco di valori per influenzare il modo in cui il test interagisce con le risorse di test. Questi valori sostituiscono il parametro. gg.persist Se l'impostazione predefinita è vuota, presuppone che tutte le risorse di test siano gestite per test case, incluso il runtime Greengrass installato. I valori accettati sono:aws.resources, einstalled.software. generated.files

  • ggc-archive— Il percorso verso il componente Greengrass nucleus archiviato.

  • ggc-install-root— Directory per installare il componente Greengrass nucleus. I valori predefiniti sono test.temp.path e test run.

  • ggc-log-level— Imposta il livello di registro del nucleo di Greengrass per l'esecuzione del test. L'impostazione predefinita è «INFO».

  • ggc-tes-rolename— Il ruolo IAM che AWS IoT Greengrass Core assumerà per accedere ai AWS servizi. Se non esiste un ruolo con un nome specifico, ne verrà creato uno e una politica di accesso predefinita.

  • ggc-trusted-plugins— L'elenco separato da virgole dei percorsi (sull'host) dei plugin affidabili che devono essere aggiunti a Greengrass. Per fornire il percorso sul DUT stesso, inserisci il prefisso 'dut: '

  • ggc-user-name— Il valore PosixUser user:group per il nucleo Greengrass. Il valore predefinito è il nome utente corrente a cui è stato effettuato l'accesso.

  • ggc-version— Sostituisce la versione del componente Greengrass nucleus in esecuzione. Il valore predefinito è il valore trovato in ggc.archive.

  • log-level— Livello di registro dell'esecuzione del test. Il valore predefinito è «INFO».

  • parallel-config— Set di indice di batch e numero di batch come stringa JSON. Il valore predefinito dell'indice batch è 0 e il numero di batch è 1.

  • proxy-url— Configura tutti i test per indirizzare il traffico attraverso questo URL.

  • tags— Esegui solo tag di funzionalità. Può essere intersecato con '&'

  • test-id-prefix— Un prefisso comune applicato a tutte le risorse specifiche del test, inclusi i nomi e i tag AWS delle risorse. L'impostazione predefinita è il prefisso «gg».

  • test-log-path— Directory che conterrà i risultati dell'intera esecuzione del test. Il valore predefinito è «testResults».

  • test-results-json— Contrassegno per determinare se viene generato un report Cucumber JSON risultante scritto su disco. Il valore predefinito è true.

  • test-results-log— Contrassegno per determinare se l'output della console viene generato scritto su disco. Il valore predefinito è false (falso).

  • test-results-xml— Contrassegno per determinare se un report XML JUnit risultante viene generato e scritto su disco. Il valore predefinito è true.

  • test-temp-path— Directory per generare artefatti di test locali. Il valore predefinito è una directory temporanea casuale con il prefisso gg-testing.

  • timeout-multiplier— Moltiplicatore fornito a tutti i timeout dei test. Il valore predefinito è 1.0.

Esempi di file di configurazione CLI GDK

Puoi fare riferimento ai seguenti esempi di file di configurazione della CLI GDK per aiutarti a configurare gli ambienti dei componenti Greengrass.

Ciao mondo (Python)

Il seguente file di configurazione GDK CLI supporta un componente Hello World che esegue uno script Python. Questo file di configurazione utilizza il sistema di zip compilazione per impacchettare lo script Python del componente in un file ZIP che la CLI di GDK carica come artefatto.

{ "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip", "options": { "excludes": [".*"] } }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "some-key": "some-value" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }

Hello World (Java)

Il seguente file di configurazione GDK CLI supporta un componente Hello World che esegue un'applicazione Java. Questo file di configurazione utilizza il sistema di maven compilazione per impacchettare il codice sorgente Java del componente in un file JAR che la CLI GDK carica come artefatto.

{ "component": { "com.example.JavaHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "maven" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "some-key": "some-value" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }

Componenti della community

Diversi componenti della community nel Greengrass Software Catalog utilizzano la CLI GDK. Puoi esplorare i file di configurazione della CLI di GDK nei repository di questi componenti.

Per visualizzare i file di configurazione della CLI GDK dei componenti della community
  1. Esegui il comando seguente per elencare i componenti della community che utilizzano la CLI GDK.

    gdk component list --repository

    La risposta elenca il nome del GitHub repository per ogni componente della comunità che utilizza la CLI GDK. Ogni repository esiste nell'organizzazione. awslabs

    [2022-02-22 17:27:31] INFO - Listing all the available component repositories from Greengrass Software Catalog. [2022-02-22 17:27:31] INFO - Found '6' component repositories to display. 1. aws-greengrass-labs-database-influxdb 2. aws-greengrass-labs-telemetry-influxdbpublisher 3. aws-greengrass-labs-dashboard-grafana 4. aws-greengrass-labs-dashboard-influxdb-grafana 5. aws-greengrass-labs-local-web-server 6. aws-greengrass-labs-lookoutvision-gstreamer
  2. Apri l' GitHub archivio di un componente della community al seguente URL. Sostituiscilo community-component-namecon il nome di un componente della community del passaggio precedente.

    https://github.com/awslabs/community-component-name