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à.
AWS IoT Greengrass riferimento alla ricetta dei componenti
La ricetta del componente è un file che definisce i dettagli, le dipendenze, gli artefatti e i cicli di vita di un componente. Il ciclo di vita del componente specifica i comandi da eseguire per installare, eseguire e chiudere il componente, ad esempio. Il AWS IoT Greengrass core utilizza i cicli di vita definiti nella ricetta per installare ed eseguire i componenti. Il AWS IoT Greengrass servizio utilizza la ricetta per identificare le dipendenze e gli artefatti da distribuire nei dispositivi principali quando si distribuisce il componente.
Nella ricetta, puoi definire dipendenze e cicli di vita unici per ogni piattaforma supportata da un componente. È possibile utilizzare questa funzionalità per distribuire un componente su dispositivi con più piattaforme con requisiti diversi. Puoi anche utilizzarla per AWS IoT Greengrass impedire l'installazione di un componente su dispositivi che non lo supportano.
Ogni ricetta contiene un elenco di manifesti. Ogni manifesto specifica una serie di requisiti di piattaforma, il ciclo di vita e gli artefatti da utilizzare per i dispositivi principali la cui piattaforma soddisfa tali requisiti. Il dispositivo principale utilizza il primo manifest con i requisiti di piattaforma che il dispositivo soddisfa. Specifica un manifesto senza requisiti di piattaforma che corrisponda a qualsiasi dispositivo principale.
Puoi anche specificare un ciclo di vita globale che non è incluso in un manifesto. Nel ciclo di vita globale, è possibile utilizzare i tasti di selezione che identificano le sottosezioni del ciclo di vita. Quindi, puoi specificare questi tasti di selezione all'interno di un manifesto per utilizzare quelle sezioni del ciclo di vita globale in aggiunta al ciclo di vita del manifesto. Il dispositivo principale utilizza i tasti di selezione del manifesto solo se il manifesto non definisce un ciclo di vita. È possibile utilizzare la all selezione in un manifesto per abbinare sezioni del ciclo di vita globale senza tasti di selezione.
Dopo aver selezionato un manifest corrispondente al dispositivo AWS IoT Greengrass principale, il software principale effettua le seguenti operazioni per identificare le fasi del ciclo di vita da utilizzare:
-
Se il manifesto selezionato definisce un ciclo di vita, il dispositivo principale utilizza quel ciclo di vita.
-
Se il manifesto selezionato non definisce un ciclo di vita, il dispositivo principale utilizza il ciclo di vita globale. Il dispositivo principale effettua le seguenti operazioni per identificare le sezioni del ciclo di vita globale da utilizzare:
-
Se il manifesto definisce le chiavi di selezione, il dispositivo principale utilizza le sezioni del ciclo di vita globale che contengono le chiavi di selezione del manifesto.
-
Se il manifesto non definisce le chiavi di selezione, il dispositivo principale utilizza le sezioni del ciclo di vita globale che non dispongono di chiavi di selezione. Questo comportamento è equivalente a un manifesto che definisce la
allselezione.
-
Importante
Un dispositivo principale deve soddisfare almeno i requisiti di piattaforma di un manifesto per installare il componente. Se nessun manifest corrisponde al dispositivo principale, il software AWS IoT Greengrass Core non installa il componente e la distribuzione non riesce.
Puoi definire le ricette in formato JSON
Convalida delle ricette
Greengrass convalida una ricetta di componente JSON o YAML durante la creazione di una versione del componente. Questa convalida della ricetta verifica la presenza di errori comuni nella composizione del componente JSON o YAML, al fine di prevenire potenziali problemi di distribuzione. La convalida verifica la presenza di errori comuni nella ricetta (ad esempio, virgole, parentesi graffe e campi mancanti) e per assicurarsi che la ricetta sia ben formata.
Se ricevi un messaggio di errore di convalida della ricetta, controlla la presenza di virgole, parentesi o campi mancanti. Verifica che non manchi alcun campo controllando il formato della ricetta.
Formato della ricetta
Quando si definisce una ricetta per un componente, si specificano le seguenti informazioni nel documento della ricetta. La stessa struttura si applica alle ricette nei formati YAML e JSON.
RecipeFormatVersion-
La versione modello per la ricetta. Scegli la seguente opzione:
-
2020-01-25
-
ComponentName-
Il nome del componente definito da questa ricetta. Il nome del componente deve essere univoco Account AWS in ciascuna regione.
Suggerimenti
-
Utilizza il formato inverso del nome di dominio per evitare la collisione dei nomi all'interno della tua azienda. Ad esempio, se la tua azienda possiede
example.come lavori a un progetto di energia solare, puoi assegnare un nome al tuo componente Hello World.com.example.solar.HelloWorldQuesto aiuta a evitare conflitti tra i nomi dei componenti all'interno dell'azienda. -
Evitate il
aws.greengrassprefisso nei nomi dei componenti. AWS IoT Greengrass utilizza questo prefisso per i componenti pubblici che fornisce. Se scegli lo stesso nome di un componente pubblico, il tuo componente sostituisce quel componente. Quindi, AWS IoT Greengrass fornisce il componente anziché il componente pubblico quando distribuisce componenti con una dipendenza da quel componente pubblico. Questa funzionalità consente di sovrascrivere il comportamento dei componenti pubblici, ma può anche interrompere altri componenti se non si intende sovrascrivere un componente pubblico.
-
ComponentVersion-
La versione del componente. Il valore massimo per i valori principali, secondari e della patch è 999999.
Nota
AWS IoT Greengrass utilizza versioni semantiche per i componenti. Le versioni semantiche seguono una principale. minore. sistema di numerazione delle patch. Ad esempio, la versione
1.0.0rappresenta la prima release principale di un componente. Per ulteriori informazioni, consultate la specifica https://semver.org/semantica della versione. ComponentDescription-
(Facoltativo) La descrizione del componente.
ComponentPublisher-
L'editore o l'autore del componente.
ComponentConfiguration-
(Facoltativo) Un oggetto che definisce la configurazione o i parametri del componente. Si definisce la configurazione predefinita e quindi, quando si distribuisce il componente, è possibile specificare l'oggetto di configurazione da fornire al componente. La configurazione dei componenti supporta parametri e strutture annidati. Questo oggetto contiene le seguenti informazioni:
DefaultConfiguration-
Un oggetto che definisce la configurazione predefinita per il componente. Definisci la struttura di questo oggetto.
Nota
AWS IoT Greengrass utilizza JSON per i valori di configurazione. JSON specifica un tipo di numero ma non distingue tra numeri interi e float. Di conseguenza, i valori di configurazione potrebbero essere convertiti in float in. AWS IoT Greengrass Per garantire che il componente utilizzi il tipo di dati corretto, ti consigliamo di definire i valori di configurazione numerici come stringhe. Quindi, chiedi al tuo componente di analizzarli come numeri interi o float. Ciò garantisce che i valori di configurazione siano dello stesso tipo nella configurazione e sul dispositivo principale.
ComponentDependencies-
(Facoltativo) Un dizionario di oggetti che definisce ciascuno una dipendenza del componente. La chiave per ogni oggetto identifica il nome della dipendenza del componente. AWS IoT Greengrass installa le dipendenze dei componenti durante l'installazione del componente. AWS IoT Greengrass attende l'inizio delle dipendenze prima di avviare il componente. Ogni oggetto contiene le seguenti informazioni:
VersionRequirement-
Il vincolo di versione semantica in stile npm che definisce le versioni dei componenti compatibili per questa dipendenza. È possibile specificare una versione o un intervallo di versioni. Per ulteriori informazioni, consulta il calcolatore della versione semantica di npm.
DependencyType-
(Facoltativo) Il tipo di questa dipendenza. Scegliere tra le seguenti opzioni.
-
SOFT: il componente non si riavvia se la dipendenza cambia stato. -
HARD: il componente viene riavviato se la dipendenza cambia stato.
L’impostazione predefinita è
HARD. -
ComponentType-
(Facoltativo) Il tipo di componente.
Nota
Non è consigliabile specificare il tipo di componente in una ricetta. AWS IoT Greengrass imposta il tipo per te quando crei un componente.
Il tipo può essere uno dei seguenti tipi:
-
aws.greengrass.generic— Il componente esegue comandi o fornisce artefatti. -
aws.greengrass.lambda— Il componente esegue una funzione Lambda utilizzando il componente Lambda Launcher. IlComponentSourceparametro specifica l'ARN della funzione Lambda eseguita da questo componente.Non è consigliabile utilizzare questa opzione, perché è impostata da AWS IoT Greengrass quando si crea un componente da una funzione Lambda. Per ulteriori informazioni, consulta Esegui AWS Lambda funzioni.
-
aws.greengrass.plugin— Il componente viene eseguito nella stessa Java Virtual Machine (JVM) del nucleo di Greengrass. Se si distribuisce o si riavvia un componente del plugin, il nucleo di Greengrass si riavvia.I componenti del plugin utilizzano lo stesso file di log del nucleo di Greengrass. Per ulteriori informazioni, consulta Monitora AWS IoT Greengrass i registri.
Non è consigliabile utilizzare questa opzione nelle ricette dei componenti, poiché è destinata ai componenti AWS forniti e scritti in Java che si interfacciano direttamente con il nucleo di Greengrass. Per ulteriori informazioni su quali componenti pubblici sono plugin, consultate. AWS-componenti forniti
-
aws.greengrass.nucleus— Il componente del nucleo. Per ulteriori informazioni, consulta Nucleo di Greengrass.Non è consigliabile utilizzare questa opzione nelle ricette dei componenti. È destinato al componente Greengrass nucleus, che fornisce le funzionalità minime del software AWS IoT Greengrass Core.
L'impostazione predefinita è
aws.greengrass.genericquando si crea un componente da una ricetta oaws.greengrass.lambdaquando si crea un componente da una funzione Lambda.Per ulteriori informazioni, consulta Tipi di componenti.
-
ComponentSource-
(Facoltativo) L'ARN della funzione Lambda eseguita da un componente.
Non è consigliabile specificare l'origine del componente in una ricetta. AWS IoT Greengrass imposta questo parametro per te quando crei un componente da una funzione Lambda. Per ulteriori informazioni, consulta Esegui AWS Lambda funzioni.
-
Manifests -
Un elenco di oggetti che definiscono ciascuno il ciclo di vita, i parametri e i requisiti del componente per una piattaforma. Se un dispositivo principale soddisfa i requisiti di piattaforma di più manifesti, AWS IoT Greengrass utilizza il primo manifest a cui corrisponde il dispositivo principale. Per garantire che i dispositivi principali utilizzino il manifesto corretto, definisci prima i manifesti con requisiti di piattaforma più rigorosi. Un manifesto che si applica a tutte le piattaforme deve essere l'ultimo manifesto dell'elenco.
Importante
Un dispositivo principale deve soddisfare almeno i requisiti di piattaforma di un manifesto per installare il componente. Se nessun manifest corrisponde al dispositivo principale, il software AWS IoT Greengrass Core non installa il componente e la distribuzione non riesce.
Ogni oggetto contiene le seguenti informazioni:
Name-
(Facoltativo) Un nome descrittivo per la piattaforma definita da questo manifesto.
Se si omette questo parametro, AWS IoT Greengrass crea un nome dalla piattaforma
osearchitecture. -
Platform -
(Facoltativo) Un oggetto che definisce la piattaforma a cui si applica questo manifesto. Ometti questo parametro per definire un manifesto che si applica a tutte le piattaforme.
Questo oggetto specifica le coppie chiave-valore relative alla piattaforma su cui viene eseguito un dispositivo principale. Quando si distribuisce questo componente, il software AWS IoT Greengrass Core confronta queste coppie chiave-valore con gli attributi della piattaforma sul dispositivo principale. Il software AWS IoT Greengrass principale definisce sempre
osearchitecture, e potrebbe definire attributi aggiuntivi. È possibile specificare attributi di piattaforma personalizzati per un dispositivo principale quando si distribuisce il componente Greengrass nucleus. Per ulteriori informazioni, consultate il parametro platform override del componente Greengrass nucleus. Nucleo di GreengrassPer ogni coppia chiave-valore, è possibile specificare uno dei seguenti valori:
-
Un valore esatto, ad esempio o.
linuxwindowsI valori esatti devono iniziare con una lettera o un numero. -
*, che corrisponde a qualsiasi valore. Ciò corrisponde anche quando un valore non è presente. -
Un'espressione Java-style regolare, ad esempio
/windows|linux/. L'espressione regolare deve iniziare e terminare con una barra (/). Ad esempio, l'espressione regolare/.+/corrisponde a qualsiasi valore non vuoto.
Questo oggetto contiene le seguenti informazioni:
runtime-
Il runtime Greengrass nucleus per la piattaforma supportata da questo manifesto. Quando si definiscono più manifesti con platform
runtime, i valori di runtime supportati in una ricetta sonoaws_nucleus_litee solo.*Per scegliere come target un dispositivo classico, il campo runtime NON DEVE essere specificato nella ricetta. I runtime Greengrass Nucleus supportati includono i seguenti valori:-
* -
aws_nucleus_lite
-
os-
(Facoltativo) Il nome del sistema operativo per la piattaforma supportata da questo manifesto. Le piattaforme comuni includono i seguenti valori:
-
linux -
windows -
darwin(macOS)
-
architecture-
(Facoltativo) L'architettura del processore per la piattaforma supportata da questo manifesto. Le architetture comuni includono i seguenti valori:
-
amd64 -
arm -
aarch64 -
x86
-
architecture.detail-
(Facoltativo) Dettagli dell'architettura del processore per la piattaforma supportata da questo manifesto. I dettagli di architettura comuni includono i seguenti valori:
-
arm61 -
arm71 -
arm81
-
key-
(Facoltativo) Un attributo di piattaforma definito dall'utente per questo manifesto. Sostituiscilo
Keycon il nome dell'attributo platform. Il software AWS IoT Greengrass principale abbina questo attributo di piattaforma alle coppie chiave-valore specificate nella configurazione del componente Greengrass nucleus. Per ulteriori informazioni, vedete il parametro platform override del componente Greengrass nucleus. Nucleo di GreengrassSuggerimento
Utilizzate il formato inverso dei nomi di dominio per evitare la collisione dei nomi all'interno della vostra azienda. Ad esempio, se la tua azienda possiede
example.come lavori a un progetto radiofonico, puoi assegnare un nome a un attributo di piattaforma personalizzato.com.example.radio.RadioModuleQuesto aiuta a evitare le collisioni tra i nomi degli attributi della piattaforma all'interno dell'azienda.Ad esempio, è possibile definire un attributo di piattaforma
com.example.radio.RadioModule, per specificare un manifesto diverso in base al modulo radio disponibile su un dispositivo principale. Ogni manifesto può includere diversi artefatti che si applicano a diverse configurazioni hardware, in modo da distribuire il set minimo di software nel dispositivo principale.
-
-
Lifecycle -
Un oggetto o una stringa che definisce come installare ed eseguire il componente sulla piattaforma definita da questo manifesto. È inoltre possibile definire un ciclo di vita globale che si applica a tutte le piattaforme. Il dispositivo principale utilizza il ciclo di vita globale solo se il manifesto da utilizzare non specifica un ciclo di vita.
Nota
Questo ciclo di vita viene definito all'interno di un manifesto. Le fasi del ciclo di vita specificate qui si applicano solo alla piattaforma definita da questo manifesto. È inoltre possibile definire un ciclo di vita globale che si applica a tutte le piattaforme.
Questo oggetto o stringa contiene le seguenti informazioni:
-
Setenv -
(Facoltativo) Un dizionario di variabili di ambiente da fornire a tutti gli script del ciclo di vita. È possibile sovrascrivere queste variabili di ambiente
Setenvin ogni script del ciclo di vita. -
install -
(Facoltativo) Un oggetto o una stringa che definisce lo script da eseguire durante l'installazione del componente. Il software AWS IoT Greengrass principale esegue anche questa fase del ciclo di vita ogni volta che il software viene avviato.
Se lo
installscript termina con un codice di successo, il componente entra nello stato.INSTALLEDQuesto oggetto o stringa contiene le seguenti informazioni:
Script-
Lo script da eseguire.
RequiresPrivilege-
(Facoltativo) Se impostate questa opzione su
true, il software AWS IoT Greengrass principale esegue questo script del ciclo di vita come utente che esegue il nucleo Greengrass anziché come utente di sistema configurato per questo componente. Quando il nucleus viene eseguito come root, vengono concessi i privilegi di root allo script. L’impostazione predefinita èfalse. Skipif-
(Facoltativo) Il controllo per determinare se eseguire o meno lo script. È possibile definire per verificare se nel percorso è presente un file eseguibile o se esiste un file. Se l'output è vero, il software AWS IoT Greengrass Core salta il passaggio. Scegli uno dei seguenti controlli:
-
onpath— Controlla se nel percorso del sistema è presente un runnable. Ad esempio, usarunnableonpath python3per saltare questa fase del ciclo di vita se Python 3 è disponibile. -
exists— Controlla se esiste un file. Ad esempio, usafileexists /tmp/my-configuration.dbper saltare questa fase del ciclo di vita, se/tmp/my-configuration.dbpresente.
-
Timeout-
(Facoltativo) Il tempo massimo in secondi che lo script può eseguire prima che il software AWS IoT Greengrass Core termini il processo.
Impostazione predefinita: 120 secondi
Setenv-
(Facoltativo) Il dizionario delle variabili di ambiente da fornire allo script. Queste variabili di ambiente sovrascrivono le variabili fornite in
Lifecycle.Setenv.
-
run -
(Facoltativo) Un oggetto o una stringa che definisce lo script da eseguire all'avvio del componente.
Il componente entra nello
RUNNINGstato quando viene eseguita questa fase del ciclo di vita. Se lorunscript termina con un codice di successo, il componente entra nello stato.STOPPINGSe viene specificato unoshutdownscript, viene eseguito; in caso contrario, il componente entra nelloFINISHEDstato.I componenti che dipendono da questo componente iniziano quando viene eseguita questa fase del ciclo di vita. Per eseguire un processo in background, ad esempio un servizio utilizzato dai componenti dipendenti, utilizzate invece la fase del
startupciclo di vita.Quando distribuisci componenti con un
runciclo di vita, il dispositivo principale può segnalare che la distribuzione è completa non appena viene eseguito questo script del ciclo di vita. Di conseguenza, la distribuzione può essere completa e corretta anche se lo script del ciclo di vita ha esito negativo subito dopo l'runesecuzione. Se desideri che lo stato di distribuzione dipenda dal risultato dello script di avvio del componente, utilizza invece la fase del ciclo di vita.startupNota
Puoi definirne solo uno
startupo il ciclo di vita.runQuesto oggetto o stringa contiene le seguenti informazioni:
Script-
Lo script da eseguire.
RequiresPrivilege-
(Facoltativo) Se impostate questa opzione su
true, il software AWS IoT Greengrass principale esegue questo script del ciclo di vita come utente che esegue il nucleo Greengrass anziché come utente di sistema configurato per questo componente. Quando il nucleus viene eseguito come root, vengono concessi i privilegi di root allo script. L’impostazione predefinita èfalse. Skipif-
(Facoltativo) Il controllo per determinare se eseguire o meno lo script. È possibile definire per verificare se nel percorso è presente un file eseguibile o se esiste un file. Se l'output è vero, il software AWS IoT Greengrass Core salta il passaggio. Scegli uno dei seguenti controlli:
-
onpath— Controlla se nel percorso del sistema è presente un runnable. Ad esempio, usarunnableonpath python3per saltare questa fase del ciclo di vita se Python 3 è disponibile. -
exists— Controlla se esiste un file. Ad esempio, usafileexists /tmp/my-configuration.dbper saltare questa fase del ciclo di vita, se/tmp/my-configuration.dbpresente.
-
Timeout-
(Facoltativo) Il tempo massimo in secondi che lo script può eseguire prima che il software AWS IoT Greengrass Core termini il processo.
Questa fase del ciclo di vita non è soggetta a timeout per impostazione predefinita. Se si omette questo timeout, lo
runscript viene eseguito fino alla chiusura. Setenv-
(Facoltativo) Il dizionario delle variabili di ambiente da fornire allo script. Queste variabili di ambiente sovrascrivono le variabili fornite in
Lifecycle.Setenv.
-
startup -
(Facoltativo) Un oggetto o una stringa che definisce il processo in background da eseguire all'avvio del componente.
startupConsente di eseguire un comando che deve terminare correttamente o di aggiornare lo stato del componenteRUNNINGprima che i componenti dipendenti possano essere avviati. Utilizzate l'operazione UpdateState IPC per impostare lo stato del componente suRUNNINGoERROREDquando il componente avvia uno script che non esce. Ad esempio, potresti definire unstartuppassaggio che avvia il processo MySQL con./etc/init.d/mysqld startIl componente entra
STARTINGnello stato in cui viene eseguita questa fase del ciclo di vita. Se lostartupscript termina con un codice di successo, il componente entra nello stato.RUNNINGQuindi, i componenti dipendenti possono iniziare.Quando si distribuiscono componenti con un
startupciclo di vita, il dispositivo principale può segnalare che la distribuzione è completa dopo la chiusura dello script del ciclo di vita o ne segnala lo stato. In altre parole, lo stato della distribuzione èIN_PROGRESSfinché gli script di avvio di tutti i componenti non escono o segnalano uno stato.Nota
È possibile definirne solo uno
startupo il ciclo di vita.runQuesto oggetto o stringa contiene le seguenti informazioni:
Script-
Lo script da eseguire.
RequiresPrivilege-
(Facoltativo) Se impostate questa opzione su
true, il software AWS IoT Greengrass principale esegue questo script del ciclo di vita come utente che esegue il nucleo Greengrass anziché come utente di sistema configurato per questo componente. Quando il nucleus viene eseguito come root, vengono concessi i privilegi di root allo script. L’impostazione predefinita èfalse. Skipif-
(Facoltativo) Il controllo per determinare se eseguire o meno lo script. È possibile definire per verificare se nel percorso è presente un file eseguibile o se esiste un file. Se l'output è vero, il software AWS IoT Greengrass Core salta il passaggio. Scegli uno dei seguenti controlli:
-
onpath— Controlla se nel percorso del sistema è presente un runnable. Ad esempio, usatelorunnableonpath python3per saltare questa fase del ciclo di vita se Python 3 è disponibile. -
exists— Controlla se esiste un file. Ad esempio, usafileexists /tmp/my-configuration.dbper saltare questa fase del ciclo di vita, se/tmp/my-configuration.dbpresente.
-
Timeout-
(Facoltativo) Il tempo massimo in secondi che lo script può eseguire prima che il software AWS IoT Greengrass Core termini il processo.
Impostazione predefinita: 120 secondi
Setenv-
(Facoltativo) Il dizionario delle variabili di ambiente da fornire allo script. Queste variabili di ambiente sovrascrivono le variabili fornite in
Lifecycle.Setenv.
-
shutdown -
(Facoltativo) Un oggetto o una stringa che definisce lo script da eseguire quando il componente viene spento. Utilizzate il ciclo di vita di spegnimento per eseguire il codice da eseguire quando il componente è nello stato.
STOPPINGIl ciclo di vita dello spegnimento può essere utilizzato per interrompere un processo avviato dagli script or.startuprunSe avvii un processo in background in
startup, utilizza ilshutdownpassaggio per interrompere il processo quando il componente si spegne. Ad esempio, potresti definire unshutdownpassaggio che interrompe il processo MySQL con./etc/init.d/mysqld stopLo
shutdownscript viene eseguito dopo che il componente è entrato nelloSTOPPINGstato. Se lo script viene completato correttamente, il componente entra nelloFINISHEDstato.Questo oggetto o stringa contiene le seguenti informazioni:
Script-
Lo script da eseguire.
RequiresPrivilege-
(Facoltativo) Se impostate questa opzione su
true, il software AWS IoT Greengrass principale esegue questo script del ciclo di vita come utente che esegue il nucleo Greengrass anziché come utente di sistema configurato per questo componente. Quando il nucleus viene eseguito come root, vengono concessi i privilegi di root allo script. L’impostazione predefinita èfalse. Skipif-
(Facoltativo) Il controllo per determinare se eseguire o meno lo script. È possibile definire per verificare se nel percorso è presente un file eseguibile o se esiste un file. Se l'output è vero, il software AWS IoT Greengrass Core salta il passaggio. Scegli uno dei seguenti controlli:
-
onpath— Controlla se nel percorso del sistema è presente un runnable. Ad esempio, usatelorunnableonpath python3per saltare questa fase del ciclo di vita se Python 3 è disponibile. -
exists— Controlla se esiste un file. Ad esempio, usafileexists /tmp/my-configuration.dbper saltare questa fase del ciclo di vita, se/tmp/my-configuration.dbpresente.
-
Timeout-
(Facoltativo) Il tempo massimo in secondi che lo script può eseguire prima che il software AWS IoT Greengrass Core termini il processo.
Impostazione predefinita: 15 secondi.
Setenv-
(Facoltativo) Il dizionario delle variabili di ambiente da fornire allo script. Queste variabili di ambiente sovrascrivono le variabili fornite in
Lifecycle.Setenv.
-
uninstall -
(Facoltativo) Un oggetto o una stringa che definisce lo script da eseguire quando il componente viene rimosso definitivamente dal dispositivo. Il software AWS IoT Greengrass principale esegue questo passaggio quando una distribuzione rimuove un componente. Questo passaggio non viene eseguito durante gli aggiornamenti della versione dei componenti.
Nota
Questa funzionalità richiede Greengrass nucleus versione 2.17.0 o successiva. Nelle versioni precedenti di Nucleus, il software AWS IoT Greengrass Core non esegue la fase del ciclo di vita della disinstallazione quando rimuove un componente.
Il componente entra nello
UNINSTALLINGstato quando viene eseguita questa fase del ciclo di vita. Se lo script di disinstallazione non riesce o scade, il componente viene comunque rimosso. Gli errori di disinstallazione non determinano l'esito negativo della distribuzione.Questo oggetto o stringa contiene le seguenti informazioni:
Script-
Lo script da eseguire.
RequiresPrivilege-
(Facoltativo) Se impostate questa opzione su
true, il software AWS IoT Greengrass principale esegue questo script del ciclo di vita come utente che esegue il nucleo Greengrass anziché come utente di sistema configurato per questo componente. Quando il nucleus viene eseguito come root, vengono concessi i privilegi di root allo script. L’impostazione predefinita èfalse. Skipif-
(Facoltativo) Il controllo per determinare se eseguire o meno lo script. È possibile definire per verificare se nel percorso è presente un file eseguibile o se esiste un file. Se l'output è vero, il software AWS IoT Greengrass Core salta il passaggio. Scegli uno dei seguenti controlli:
-
onpath— Controlla se nel percorso del sistema è presente un runnable. Ad esempio, usatelorunnableonpath python3per saltare questa fase del ciclo di vita se Python 3 è disponibile. -
exists— Controlla se esiste un file. Ad esempio, usafileexists /tmp/my-configuration.dbper saltare questa fase del ciclo di vita, se/tmp/my-configuration.dbpresente.
-
Timeout-
(Facoltativo) Il tempo massimo in secondi che lo script può eseguire prima che il software AWS IoT Greengrass Core termini il processo.
Impostazione predefinita: 120 secondi
Setenv-
(Facoltativo) Il dizionario delle variabili di ambiente da fornire allo script. Queste variabili di ambiente sovrascrivono le variabili fornite in
Lifecycle.Setenv.
-
recover -
(Facoltativo) Un oggetto o una stringa che definisce lo script da eseguire quando il componente rileva un errore.
Questo passaggio viene eseguito quando un componente entra nello
ERROREDstato. Se il componente vieneERROREDripristinato tre volte senza riuscire a ripristinarlo, passa alloBROKENstato. Per correggere unBROKENcomponente, è necessario distribuirlo nuovamente.Questo oggetto o stringa contiene le seguenti informazioni:
Script-
Lo script da eseguire.
RequiresPrivilege-
(Facoltativo) Se impostate questa opzione su
true, il software AWS IoT Greengrass principale esegue questo script del ciclo di vita come utente che esegue il nucleo Greengrass anziché come utente di sistema configurato per questo componente. Quando il nucleus viene eseguito come root, vengono concessi i privilegi di root allo script. L’impostazione predefinita èfalse. Skipif-
(Facoltativo) Il controllo per determinare se eseguire o meno lo script. È possibile definire per verificare se nel percorso è presente un file eseguibile o se esiste un file. Se l'output è vero, il software AWS IoT Greengrass Core salta il passaggio. Scegli uno dei seguenti controlli:
-
onpath— Controlla se nel percorso del sistema è presente un runnable. Ad esempio, usatelorunnableonpath python3per saltare questa fase del ciclo di vita se Python 3 è disponibile. -
exists— Controlla se esiste un file. Ad esempio, usafileexists /tmp/my-configuration.dbper saltare questa fase del ciclo di vita, se/tmp/my-configuration.dbpresente.
-
Timeout-
(Facoltativo) Il tempo massimo in secondi che lo script può eseguire prima che il software AWS IoT Greengrass Core termini il processo.
Default: 60 secondi.
Setenv-
(Facoltativo) Il dizionario delle variabili di ambiente da fornire allo script. Queste variabili di ambiente sovrascrivono le variabili fornite in
Lifecycle.Setenv.
-
bootstrap -
(Facoltativo) Un oggetto o una stringa che definisce uno script che richiede il riavvio del software AWS IoT Greengrass Core o del dispositivo principale. Ciò consente di sviluppare un componente che esegue un riavvio dopo l'installazione degli aggiornamenti del sistema operativo o degli aggiornamenti di runtime, ad esempio.
Nota
Per installare aggiornamenti o dipendenze che non richiedono il riavvio del software o del dispositivo AWS IoT Greengrass Core, utilizza il ciclo di vita dell'installazione.
Questa fase del ciclo di vita viene eseguita prima della fase del ciclo di vita dell'installazione nei seguenti casi in cui il software Core distribuisce il componente: AWS IoT Greengrass
-
Il componente viene implementato nel dispositivo principale per la prima volta.
-
La versione del componente cambia.
-
Lo script bootstrap cambia a seguito di un aggiornamento della configurazione del componente.
Dopo che il software AWS IoT Greengrass principale ha completato la fase di avvio per tutti i componenti che hanno una fase di avvio in una distribuzione, il software viene riavviato.
Nota
Il software AWS IoT Greengrass principale ignora la politica di gestione degli errori per le distribuzioni bootstrap. Se una distribuzione che esegue le fasi del ciclo di vita del bootstrap ha esito negativo, il dispositivo principale torna alla configurazione precedente. Il rollback avviene anche se si imposta la politica di gestione degli errori su.
DO_NOTHINGPer ulteriori informazioni, consulta Creare distribuzione.Importante
È necessario configurare il software AWS IoT Greengrass Core come servizio di sistema per riavviare il software AWS IoT Greengrass Core o il dispositivo principale. Se non si configura il software AWS IoT Greengrass Core come servizio di sistema, il software non si riavvierà. Per ulteriori informazioni, consulta Configurare il nucleo Greengrass come servizio di sistema.
Questo oggetto o stringa contiene le seguenti informazioni:
BootstrapOnRollback-
Nota
Quando questa funzionalità è abilitata,
BootstrapOnRollbackverrà eseguita solo per i componenti che hanno completato o tentato di eseguire le fasi del ciclo di vita del bootstrap come parte di una distribuzione target non riuscita. Questa funzionalità è disponibile per le versioni di Greengrass nucleus 2.12.0 e successive.(Facoltativo) È possibile eseguire le fasi del ciclo di vita del bootstrap come parte di una distribuzione di rollback. Se imposti questa opzione su
true, verranno eseguite le fasi del ciclo di vita del bootstrap definite all'interno di una distribuzione di rollback. Quando una distribuzione fallisce, la versione precedente del ciclo di vita di bootstrap del componente verrà eseguita nuovamente durante una distribuzione di rollback.L’impostazione predefinita è
false. Script-
Lo script da eseguire. Il codice di uscita di questo script definisce l'istruzione di riavvio. Utilizzate i seguenti codici di uscita:
-
0— Non riavviare il software AWS IoT Greengrass Core o il dispositivo principale. Il software AWS IoT Greengrass Core si riavvia comunque dopo il bootstrap di tutti i componenti. -
100— Richiesta di riavvio del software AWS IoT Greengrass Core. -
101— Richiesta di riavvio del dispositivo principale.
I codici di uscita da 100 a 199 sono riservati a comportamenti speciali. Gli altri codici di uscita rappresentano errori di script.
-
RequiresPrivilege-
(Facoltativo) Se impostate questa opzione su
true, il software AWS IoT Greengrass principale esegue questo script del ciclo di vita come utente che esegue il nucleo Greengrass anziché come utente di sistema configurato per questo componente. Quando il nucleus viene eseguito come root, vengono concessi i privilegi di root allo script. L’impostazione predefinita èfalse. Timeout-
(Facoltativo) Il tempo massimo in secondi che lo script può eseguire prima che il software AWS IoT Greengrass Core termini il processo.
Impostazione predefinita: 120 secondi
Setenv-
(Facoltativo) Il dizionario delle variabili di ambiente da fornire allo script. Queste variabili di ambiente sovrascrivono le variabili fornite in
Lifecycle.Setenv.
-
-
-
Selections -
(Facoltativo) Un elenco di chiavi di selezione che specificano le sezioni del ciclo di vita globale da eseguire per questo manifesto. Nel ciclo di vita globale, è possibile definire le fasi del ciclo di vita con tasti di selezione a qualsiasi livello per selezionare le sottosezioni del ciclo di vita. Quindi, il dispositivo principale utilizza le sezioni che corrispondono ai tasti di selezione in questo manifesto. Per ulteriori informazioni, consultate gli esempi del ciclo di vita globale.
Importante
Il dispositivo principale utilizza le selezioni del ciclo di vita globale solo se questo manifesto non definisce un ciclo di vita.
È possibile specificare la chiave di
allselezione per eseguire sezioni del ciclo di vita globale che non dispongono di chiavi di selezione. -
Artifacts -
(Facoltativo) Un elenco di oggetti che definiscono ciascuno un artefatto binario per il componente sulla piattaforma definita da questo manifesto. Ad esempio, puoi definire codice o immagini come artefatti.
Quando il componente viene distribuito, il software AWS IoT Greengrass principale scarica l'artefatto in una cartella sul dispositivo principale. È inoltre possibile definire gli artefatti come file di archivio che il software estrae dopo averli scaricati.
È possibile utilizzare le variabili di ricetta per ottenere i percorsi delle cartelle in cui vengono installati gli artefatti sul dispositivo principale.
-
File normali: utilizzate la variabile di ricetta artifacts:path per ottenere il percorso della cartella che contiene gli artefatti. Ad esempio, specificate
{artifacts:path}/my_script.pyin una ricetta il percorso di un artefatto con l'URI.s3://amzn-s3-demo-bucket/path/to/my_script.py -
Archivi estratti: utilizzate la variabile di ricetta artifacts:DecompressedPath per ottenere il percorso della cartella che contiene gli artefatti dell'archivio estratti. Il software AWS IoT Greengrass Core estrae ogni archivio in una cartella con lo stesso nome dell'archivio. Ad esempio, specificate
{artifacts:decompressedPath}/my_archive/my_script.pyin una ricetta il percorso dell'artefatto dell'archivio contenente l'URI.my_script.pys3://amzn-s3-demo-bucket/path/to/my_archive.zip
Nota
Quando sviluppate un componente con un artefatto di archivio su un dispositivo di base locale, potreste non avere un URI per quell'artefatto. Per testare il componente con un'
Unarchiveopzione che estrae l'artefatto, specificate un URI in cui il nome del file corrisponda al nome del file di artefatto di archivio. Puoi specificare l'URI in cui prevedi di caricare l'artefatto dell'archivio oppure puoi specificare un nuovo URI segnaposto. Ad esempio, per estrarre l'my_archive.zipartefatto durante una distribuzione locale, è possibile specificare.s3://amzn-s3-demo-bucket/my_archive.zipOgni oggetto contiene le seguenti informazioni:
Uri-
L'URI di un artefatto in un bucket S3. Il software AWS IoT Greengrass principale recupera l'artefatto da questo URI durante l'installazione del componente, a meno che l'artefatto non esista già sul dispositivo. Ogni artefatto deve avere un nome di file univoco all'interno di ogni manifesto.
Unarchive-
(Facoltativo) Il tipo di archivio da decomprimere. Seleziona una delle opzioni seguenti:
-
NONE— Il file non è un archivio da decomprimere. Il software AWS IoT Greengrass principale installa l'artefatto in una cartella sul dispositivo principale. Puoi usare la variabile di ricetta artifacts:path per ottenere il percorso di questa cartella. -
ZIP— Il file è un archivio ZIP. Il software AWS IoT Greengrass Core estrae l'archivio in una cartella con lo stesso nome dell'archivio. È possibile utilizzare la variabile di ricetta artifacts:DecompressedPath per ottenere il percorso della cartella che contiene questa cartella.
L’impostazione predefinita è
NONE. -
-
Permission -
(Facoltativo) Un oggetto che definisce le autorizzazioni di accesso da impostare per questo file di artifact. È possibile impostare l'autorizzazione di lettura e l'autorizzazione di esecuzione.
Nota
Non è possibile impostare l'autorizzazione di scrittura, perché il software AWS IoT Greengrass principale non consente ai componenti di modificare i file degli artifact nella cartella degli artifacts. Per modificare un file di artefatto in un componente, copiatelo in un'altra posizione o pubblicate e distribuite un nuovo file di artefatto.
Se definisci un artefatto come archivio da decomprimere, il software AWS IoT Greengrass principale imposta queste autorizzazioni di accesso sui file che decomprime dall'archivio. Il software AWS IoT Greengrass Core imposta le autorizzazioni di accesso della cartella su for e.
ALLReadExecuteCiò consente ai componenti di visualizzare i file decompressi nella cartella. Per impostare le autorizzazioni sui singoli file dell'archivio, è possibile impostarle nello script del ciclo di vita dell'installazione.Questo oggetto contiene le seguenti informazioni:
Read-
(Facoltativo) L'autorizzazione di lettura da impostare per questo file di artefatti. Per consentire ad altri componenti di accedere a questo artefatto, ad esempio i componenti che dipendono da questo componente, specificare.
ALLSeleziona una delle opzioni seguenti:-
NONE— Il file non è leggibile. -
OWNER— Il file è leggibile dall'utente di sistema configurato per eseguire questo componente. -
ALL— Il file è leggibile da tutti gli utenti.
L’impostazione predefinita è
OWNER. -
Execute-
(Facoltativo) L'autorizzazione di esecuzione da impostare per questo file artefatto. L'
Executeautorizzazione implica l'Readautorizzazione. Ad esempio, se si specificaALLforExecute, tutti gli utenti possono leggere ed eseguire questo file di artefatto.Seleziona una delle opzioni seguenti:
-
NONE— Il file non è eseguibile. -
OWNER— Il file è eseguibile dall'utente di sistema configurato per eseguire il componente. -
ALL— Il file è eseguibile da tutti gli utenti.
L’impostazione predefinita è
NONE. -
Digest-
(Read-only) L'hash del digest crittografico dell'artefatto. Quando si crea un componente, AWS IoT Greengrass utilizza un algoritmo di hash per calcolare un hash del file di artefatto. Quindi, quando si distribuisce il componente, Greengrass nucleus calcola l'hash dell'artefatto scaricato e lo confronta con questo digest per verificare l'artefatto prima dell'installazione. Se l'hash non corrisponde al digest, la distribuzione ha esito negativo.
Se imposti questo parametro, AWS IoT Greengrass sostituisce il valore impostato al momento della creazione del componente.
Algorithm-
(Read-only) L'algoritmo di hash AWS IoT Greengrass utilizzato per calcolare l'hash di riepilogo dell'artefatto.
Se impostate questo parametro, AWS IoT Greengrass sostituisce il valore impostato al momento della creazione del componente.
-
-
Lifecycle -
Un oggetto che definisce come installare ed eseguire il componente. Il dispositivo principale utilizza il ciclo di vita globale solo se il manifesto da utilizzare non specifica un ciclo di vita.
Nota
Questo ciclo di vita viene definito all'esterno di un manifesto. È inoltre possibile definire un ciclo di vita del manifesto che si applica alle piattaforme che corrispondono a quel manifesto.
Nel ciclo di vita globale, è possibile specificare i cicli di vita eseguiti per determinate chiavi di selezione specificate in ciascun manifesto. Le chiavi di selezione sono stringhe che identificano le sezioni del ciclo di vita globale da eseguire per ogni manifesto.
Il tasto
alldi selezione è l'impostazione predefinita in qualsiasi sezione senza un tasto di selezione. Ciò significa che è possibile specificare la chiave diallselezione in un manifesto per eseguire le sezioni del ciclo di vita globale senza tasti di selezione. Non è necessario specificare la chiave diallselezione nel ciclo di vita globale.Se un manifesto non definisce un ciclo di vita o tasti di selezione, per impostazione predefinita il dispositivo principale utilizza la selezione.
allCiò significa che in questo caso, il dispositivo principale utilizza le sezioni del ciclo di vita globale che non utilizzano i tasti di selezione.Questo oggetto contiene le stesse informazioni del ciclo di vita del manifesto, ma è possibile specificare i tasti di selezione a qualsiasi livello per selezionare sottosezioni del ciclo di vita.
Suggerimento
Si consiglia di utilizzare solo lettere minuscole per ogni tasto di selezione per evitare conflitti tra chiavi di selezione e chiavi del ciclo di vita. Le chiavi del ciclo di vita iniziano con una lettera maiuscola.
Esempio Esempio di ciclo di vita globale con tasti di selezione di primo livello
Lifecycle: key1: install: SkipIf: either onpathexecutableor existsfileScript: command1 key2: install: Script: command2 all: install: Script: command3Esempio Esempio di ciclo di vita globale con tasti di selezione di livello inferiore
Lifecycle: install: Script: key1: command1 key2: command2 all: command3Esempio Esempio di ciclo di vita globale con più livelli di tasti di selezione
Lifecycle: key1: install: SkipIf: either onpathexecutableor existsfileScript: command1 key2: install: Script: command2 all: install: Script: key3: command3 key4: command4 all: command5
Variabili di ricetta
Le variabili di ricetta espongono le informazioni del componente e del nucleo correnti da utilizzare nelle ricette. Ad esempio, è possibile utilizzare una variabile di ricetta per passare i parametri di configurazione dei componenti a un'applicazione eseguita in uno script del ciclo di vita.
È possibile utilizzare le variabili di ricetta nelle seguenti sezioni delle ricette dei componenti:
-
Definizioni del ciclo di vita.
-
Definizioni di configurazione dei componenti, se si utilizza Greengrass nucleus v2.6.0 o successivo e si imposta l'opzione di configurazione interpolata su. ComponentConfiguration
trueÈ inoltre possibile utilizzare le variabili delle ricette quando si distribuiscono gli aggiornamenti della configurazione dei componenti.
Le variabili delle ricette utilizzano la {recipe_variable} sintassi. Le parentesi graffe indicano una variabile di ricetta.
AWS IoT Greengrass supporta le seguenti variabili di ricetta:
component_dependency_name:configuration:json_pointer-
Il valore di un parametro di configurazione per il componente definito da questa ricetta o per un componente da cui dipende questo componente.
È possibile utilizzare questa variabile per fornire un parametro a uno script eseguito nel ciclo di vita del componente.
Nota
AWS IoT Greengrass supporta questa variabile di ricetta solo nelle definizioni del ciclo di vita dei componenti.
Questa variabile di ricetta ha i seguenti input:
-
component_dependency_name— (Facoltativo) Il nome della dipendenza del componente da interrogare. Ometti questo segmento per interrogare il componente definito da questa ricetta. È possibile specificare solo dipendenze dirette. -
json_pointer— Il puntatore JSON al valore di configurazione da valutare. I puntatori JSON iniziano con una barra in avanti./Per identificare un valore in una configurazione di componenti annidati, utilizzate le barre in avanti (/) per separare le chiavi per ogni livello della configurazione. È possibile utilizzare un numero come chiave per specificare un indice in un elenco. Per ulteriori informazioni, consultate la specifica del puntatore JSON.AWS IoT Greengrass Core utilizza puntatori JSON per le ricette in formato YAML.
Il puntatore JSON può fare riferimento ai seguenti tipi di nodi:
-
Un nodo di valore. AWS IoT Greengrass Core sostituisce la variabile della ricetta con la rappresentazione in stringa del valore. I valori nulli vengono convertiti in una
nullstringa. -
Un nodo oggetto. AWS IoT Greengrass Core sostituisce la variabile della ricetta con la rappresentazione in stringa JSON serializzata di quell'oggetto.
-
Nessun nodo. AWS IoT Greengrass Il core non sostituisce la variabile della ricetta.
Ad esempio, la variabile
{configuration:/Message}recipe recupera il valore dellaMessagechiave nella configurazione del componente. La variabile{com.example.MyComponentDependency:configuration:/server/port}recipe recupera il valore diportnell'oggetto diserverconfigurazione di una dipendenza del componente. -
-
component_dependency_name:artifacts:path -
Il percorso principale degli artefatti per il componente definito da questa ricetta o per un componente da cui dipende questo componente.
Quando un componente viene installato, AWS IoT Greengrass copia gli artefatti del componente nella cartella esposta da questa variabile. È possibile utilizzare questa variabile per identificare la posizione di uno script da eseguire nel ciclo di vita del componente, ad esempio.
La cartella in questo percorso è di sola lettura. Per modificare i file artefatti, copiate i file in un'altra posizione, ad esempio la directory di lavoro corrente (o).
$PWD.Quindi, modifica i file lì.Per leggere o eseguire un elemento proveniente da una dipendenza di un componente, è necessario disporre dell'artefatto o dell'
Readautorizzazione.ExecuteALLPer ulteriori informazioni, consultate le autorizzazioni degli artefatti definite nella composizione del componente.Questa variabile di ricetta ha i seguenti input:
-
component_dependency_name— (Facoltativo) Il nome della dipendenza del componente da interrogare. Ometti questo segmento per interrogare il componente definito da questa ricetta. È possibile specificare solo dipendenze dirette.
-
-
component_dependency_name:artifacts:decompressedPath -
Il percorso principale degli artefatti dell'archivio decompresso per il componente definito da questa ricetta o per un componente da cui dipende questo componente.
Quando un componente viene installato, AWS IoT Greengrass decomprime gli artefatti dell'archivio del componente nella cartella esposta da questa variabile. È possibile utilizzare questa variabile per identificare la posizione di uno script da eseguire nel ciclo di vita del componente, ad esempio.
Ogni elemento viene decompresso in una cartella all'interno del percorso decompresso, dove la cartella ha lo stesso nome dell'elemento meno la relativa estensione. Ad esempio, un elemento ZIP denominato viene decompresso nella cartella.
models.zip{artifacts:decompressedPath}/modelsLa cartella in questo percorso è di sola lettura. Per modificare i file artefatti, copiate i file in un'altra posizione, ad esempio la directory di lavoro corrente (o).
$PWD.Quindi, modifica i file lì.Per leggere o eseguire un elemento proveniente da una dipendenza di un componente, è necessario disporre dell'artefatto o dell'
Readautorizzazione.ExecuteALLPer ulteriori informazioni, consultate le autorizzazioni degli artefatti definite nella composizione del componente.Questa variabile di ricetta ha i seguenti input:
-
component_dependency_name— (Facoltativo) Il nome della dipendenza del componente da interrogare. Ometti questo segmento per interrogare il componente definito da questa ricetta. È possibile specificare solo dipendenze dirette.
-
-
component_dependency_name:work:path -
Questa funzionalità è disponibile per la versione 2.0.4 e successive del componente Greengrass Nucleus.
Il percorso di lavoro per il componente definito da questa ricetta o per un componente da cui dipende questo componente. Il valore di questa variabile di ricetta è equivalente all'output della variabile di
$PWDambiente e del comandopwd quando viene eseguita dal contesto del componente. Puoi usare questa variabile di ricetta per condividere file tra un componente e una dipendenza.
La cartella in questo percorso è leggibile e scrivibile dal componente definito da questa ricetta e da altri componenti eseguiti con lo stesso utente e gruppo.
Questa variabile di ricetta ha i seguenti input:
-
component_dependency_name— (Facoltativo) Il nome della dipendenza del componente da interrogare. Ometti questo segmento per interrogare il componente definito da questa ricetta. È possibile specificare solo dipendenze dirette.
-
kernel:rootPath-
Il percorso AWS IoT Greengrass principale principale.
iot:thingName-
Questa funzionalità è disponibile per la versione 2.3.0 e successive del componente Greengrass nucleus.
Il nome dell'elemento principale del dispositivo. AWS IoT
Esempi di ricette
Puoi fare riferimento ai seguenti esempi di ricette per aiutarti a creare ricette per i tuoi componenti.
AWS IoT Greengrass cura un indice dei componenti Greengrass, chiamato Greengrass Software Catalog. Questo catalogo tiene traccia dei componenti Greengrass sviluppati dalla comunità Greengrass. Da questo catalogo, puoi scaricare, modificare e distribuire componenti per creare le tue applicazioni Greengrass. Per ulteriori informazioni, consulta Componenti comunitari.
Argomenti
Ricetta dei componenti Hello World
La seguente ricetta descrive un componente Hello World che esegue uno script Python. Questo componente supporta tutte le piattaforme e accetta un Message parametro che viene AWS IoT Greengrass
passato come argomento allo script Python. Questa è la ricetta per il componente Hello World nel tutorial Tutorial: Guida introduttiva a AWS IoT Greengrass V2 Guida introduttiva.
Esempio di componente di runtime Python
La seguente ricetta descrive un componente che installa Python. Questo componente supporta dispositivi Linux a 64 bit.
Ricetta del componente che specifica diversi campi
La seguente ricetta dei componenti utilizza diversi campi di composizione.