Preparazione all'uso di Software Package Catalog - AWS IoT Core

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

Preparazione all'uso di Software Package Catalog

La sezione seguente fornisce una panoramica del ciclo di vita delle versioni del pacchetto e informazioni per l'utilizzo del Software AWS IoT Device Management Package Catalog.

Ciclo di vita della versione del pacchetto

Una versione del pacchetto può evolvere attraverso i seguenti stati del ciclo di vita: draftpublisheddeprecated. Lo stato può anche essere deleted.

Il ciclo di vita della versione del pacchetto con lo stato draft, published e deprecated. Lo stato può anche essere deleted.
  • Draft

    Quando si crea una versione del pacchetto, questa si trova in uno draft stato. Questo stato indica che il pacchetto software è in fase di preparazione o è incompleto.

    Mentre la versione del pacchetto è in questo stato, non è possibile distribuirla. È possibile modificare la descrizione, gli attributi e i tag della versione del pacchetto.

    Puoi trasferire una versione del pacchetto che si trova nello draft stato published o lo è deleted utilizzando la console o emettendo le operazioni UpdatePackageVersionor DeletePackageVersionAPI.

  • Published

    Quando la versione del pacchetto è pronta per la distribuzione, trasferisci la versione del pacchetto a uno published stato. In questo stato, è possibile scegliere di identificare la versione del pacchetto come versione predefinita modificando il pacchetto software nella console o tramite l'UpdatePackageAPIoperazione. In questo stato, è possibile modificare solo la descrizione e i tag.

    Puoi trasferire una versione del pacchetto che si trova nello published stato deprecated o lo è deleted utilizzando la console o emettendo DeletePackageVersionAPIle operazioni UpdatePackageVersionor.

  • Deprecated

    Se è disponibile una nuova versione del pacchetto, puoi eseguire la transizione delle versioni precedenti del pacchetto a deprecated. Puoi comunque distribuire lavori con una versione del pacchetto obsoleta. È inoltre possibile assegnare un nome a una versione obsoleta del pacchetto come versione predefinita e modificare solo la descrizione e i tag.

    Prendi in considerazione la possibilità di passare a deprecated una versione del pacchetto una versione obsoleta, ma hai ancora dispositivi sul campo che utilizzano la versione precedente o devi mantenerla a causa della dipendenza in fase di esecuzione.

    Puoi trasferire una versione del pacchetto che si trova nello deprecated stato published o lo è utilizzando la console oppure eseguendo le operazioni or. deleted UpdatePackageVersionDeletePackageVersionAPI

  • Deleted (Eliminato)

    Quando non intendi più utilizzare una versione del pacchetto, puoi eliminarla utilizzando la console o eseguendo l'operazione. DeletePackageVersionAPI

    Nota

    Se elimini una versione del pacchetto mentre sono presenti processi in sospeso che fanno riferimento ad essa, riceverai un messaggio di errore quando il processo termina e tenta di aggiornare la copia shadow con nome.

    Se la versione del pacchetto software che desideri eliminare è denominata come la versione del pacchetto predefinita, devi aggiornare innanzitutto il pacchetto specificando un'altra versione come predefinita o lasciare il campo senza nome. È possibile farlo utilizzando la console o l'UpdatePackageVersionAPIoperazione. (Per rimuovere qualsiasi versione denominata del pacchetto come predefinita, impostate il unsetDefaultVersionparametro su true quando eseguite l'UpdatePackageAPIoperazione).

    Se elimini un pacchetto software tramite la console, vengono eliminate tutte le versioni del pacchetto associate, a meno che una non sia denominata come la versione predefinita.

Convenzioni di denominazione della versione del pacchetto

Quando assegni un nome alle versioni dei pacchetti, è importante pianificare e applicare una strategia di denominazione logica affinché tutti siano in grado di identificare facilmente la versione del pacchetto più recente e la progressione della versione. Durante la creazione della versione del pacchetto, devi fornire un nome della versione, ma la strategia e il formato dipendono in gran parte dal business case.

Come procedura ottimale, consigliamo di utilizzare il formato Semantic Versioning SemVer. Ad esempio, 1.2.3 dove 1 è la versione principale per le modifiche funzionalmente incompatibili, 2 è la versione principale per le modifiche funzionalmente compatibili e 3 è la versione patch (per correzioni di bug). Per ulteriori informazioni, consulta Controllo delle versioni semantico 2.0.0. Per ulteriori informazioni sui requisiti relativi al nome della versione del pacchetto, consultate la versionNameguida di AWS IoT API riferimento.

Versione predefinita

L'impostazione di una versione come predefinita è facoltativa. Puoi aggiungere o rimuovere versioni dei pacchetti predefinite. Inoltre, puoi distribuire una versione del pacchetto che non è specificata come versione predefinita.

Quando crei una versione del pacchetto, questa assume uno stato draft e non può essere denominata come la versione predefinita finché non esegui la transizione della versione del pacchetto a published. Software Package Catalog non seleziona automaticamente una versione come predefinita né aggiorna una versione più recente del pacchetto come quella predefinita. È necessario assegnare intenzionalmente un nome alla versione del pacchetto scelta tramite la console o eseguendo l'UpdatePackageVersionAPIoperazione.

Attributi della versione

Gli attributi della versione e i relativi valori contengono informazioni importanti sulle versioni dei pacchetti. Si consiglia di definire attributi di uso generico per un pacchetto o una versione del pacchetto. Ad esempio, potresti creare una coppia nome-valore per piattaforma, architettura, sistema operativo, data di rilascio, autore o Amazon S3. URL

Quando crei un AWS IoT lavoro con un documento di lavoro, puoi anche scegliere di utilizzare una variabile di sostituzione ($parameter) che si riferisce al valore di un attributo. Per ulteriori informazioni, vedere Preparazione AWS IoT dei lavori.

Gli attributi di versione utilizzati nelle versioni dei pacchetti non verranno aggiunti automaticamente allo shadow denominato riservato e non possono essere indicizzati o interrogati direttamente tramite Fleet Indexing. Per indicizzare o interrogare gli attributi della versione del pacchetto tramite Fleet Indexing, è possibile compilare l'attributo version nell'ombra denominata riservata.

Si consiglia che il parametro dell'attributo version nella cartella riservata named shadow acquisisca le proprietà riportate dal dispositivo, come il sistema operativo e l'ora di installazione. Possono anche essere indicizzati e interrogati tramite Fleet Indexing.

Gli attributi di versione non sono necessari per seguire una convenzione di denominazione specifica. Puoi creare coppie nome-valore per soddisfare le esigenze aziendali. La dimensione combinata di tutti gli attributi di una versione del pacchetto è limitata a 3 KB. Per ulteriori informazioni, vedere Limiti del pacchetto software e delle versioni dei pacchetti del Software Package Catalog.

Utilizzo di tutti gli attributi in un documento di lavoro

È possibile aggiungere automaticamente tutti gli attributi della versione del pacchetto alla distribuzione del processo per dispositivi selezionati. Per utilizzare automaticamente tutti gli attributi della versione del pacchetto a livello di codice in un CLI comando API or, fate riferimento al seguente esempio di documento di lavoro:

"TestPackage": "${aws:iot:package:TestPackage:version:PackageVersion:attributes}"

Lista dei materiali del software

La distinta base del software (SBOM) fornisce un archivio centrale per tutti gli aspetti del pacchetto software. Oltre a memorizzare i pacchetti software e le versioni dei pacchetti, è possibile archiviare la distinta base del software (SBOM) associata a ciascuna versione del pacchetto in AWS IoT Device Management Software Package Catalog. Un pacchetto software contiene una o più versioni del pacchetto e ogni versione del pacchetto è composta da uno o più componenti. Ciascuno di questi componenti che supportano la composizione di una versione specifica del pacchetto può essere descritto e catalogato utilizzando una distinta dei materiali del software. Gli standard di settore per la distinta base del software supportati sono SPDX e CyclonedX. Quando viene creato per SBOM la prima volta, viene sottoposto a convalida rispetto al formato standard del SPDX settore CyclonedX. Per ulteriori informazioni suSPDX, vedere System Package Data Exchange. Per ulteriori informazioni su CyclonedX, vedere CyclonedX.

La lista dei materiali del software descrive tutti gli aspetti dei componenti di una versione specifica del pacchetto, come le informazioni sul pacchetto, le informazioni sui file e altri metadati pertinenti. Vedi l'esempio seguente di struttura di documento della distinta base del software nel SPDX formato:

Un esempio di a SBOM nel SPDX formato.

Vantaggi del software Bill of Materials

Uno dei principali vantaggi dell'aggiunta della distinta base del software per una versione del pacchetto in Software Package Catalog è la gestione delle vulnerabilità.

Gestione delle vulnerabilità

La valutazione e la mitigazione della vulnerabilità agli apparenti rischi di sicurezza dei componenti software rimangono fondamentali per proteggere l'integrità del parco dispositivi. Con l'aggiunta della lista dei materiali software archiviata nel Software Package Catalog per ogni versione del pacchetto, è possibile individuare in modo proattivo le lacune nella sicurezza conoscendo quali dispositivi sono a rischio in base alla versione del pacchetto e SBOM utilizzando la propria soluzione di gestione delle vulnerabilità interna. Puoi implementare correzioni ai dispositivi interessati e proteggere la tua flotta di dispositivi.

Software, distinta dei materiali, archiviazione

La distinta base del software (SBOM) per ogni versione del pacchetto software viene archiviata in un bucket Amazon S3 utilizzando la funzionalità di controllo delle versioni di Amazon S3. Il bucket Amazon S3 in cui è archiviato SBOM deve trovarsi nella stessa regione in cui è stata creata la versione del pacchetto. Un bucket Amazon S3 che utilizza la funzionalità di controllo delle versioni mantiene più varianti di un oggetto nello stesso bucket. Per ulteriori informazioni sull'utilizzo del controllo delle versioni in un bucket Amazon S3, consulta Uso del controllo delle versioni nei bucket Amazon S3.

Nota

Ogni versione del pacchetto software ha un solo SBOM file memorizzato come file di archivio zip.

La chiave Amazon S3 e l'ID di versione specifici del bucket vengono utilizzati per identificare in modo univoco ogni versione di una distinta base software per una versione del pacchetto.

Nota

Per una versione del pacchetto con un singolo SBOM file, puoi archiviare quel SBOM file nel tuo bucket Amazon S3 come file di archivio zip.

Per una versione del pacchetto con più SBOM file, è necessario inserire tutti SBOM i file in un unico file di archivio zip e quindi archiviare tale file di archivio zip nel bucket Amazon S3.

Tutti SBOM i file archiviati in un unico file di archivio zip in entrambi gli scenari sono formattati come file CyclonedX SPDX .json.

Politica sulle autorizzazioni

Per AWS IoT agire come principale specificato per accedere ai file di archivio SBOM zip archiviati nel bucket Amazon S3, è necessaria una politica di autorizzazioni basata sulle risorse. Fai riferimento al seguente esempio per la corretta politica di autorizzazioni basata sulle risorse:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com" ] }, "Action": "s3:*", "Resource": "arn:aws:s3:::bucketName/*" } ] }

Per ulteriori informazioni sulle politiche di autorizzazione basate sulle risorse, vedere Policy di AWS IoT basate sulle risorse

Aggiornamento del SBOM

È possibile aggiornare la distinta base del software tutte le volte che è necessario per proteggere e potenziare il parco dispositivi. Ogni volta che la distinta base del software viene aggiornata nel tuo bucket Amazon S3, l'ID della versione cambia, Software Package Catalog riceve una notifica dell'aggiornamento e devi associare il nuovo bucket URL Amazon S3 alla versione del pacchetto appropriata. Vedrai il nuovo ID di versione nella colonna ID della versione di Amazon S3 Object nella pagina della versione del pacchetto nel. AWS Management Console Inoltre, puoi utilizzare l'APIoperazione GetPackageVersion o il CLI comando get-package-version per visualizzare l'ID della nuova versione.

Nota

L'aggiornamento della distinta base del software, che comporterà un nuovo ID di versione, non comporterà la creazione di una nuova versione del pacchetto.

Per ulteriori informazioni sulle chiavi oggetto di Amazon S3, consulta Creazione di nomi di chiavi di oggetto.

Abilitare l'indicizzazione del AWS IoT parco veicoli

Per sfruttare l'indicizzazione AWS IoT della flotta con Software Package Catalog, imposta il nome riservato shadow ($package) come origine dati per ogni dispositivo su cui desideri indicizzare e raccogli le metriche. Per ulteriori informazioni sulle ombre denominate riservate, consulta. Copia shadow con nome riservata

L'indicizzazione del parco veicoli fornisce un supporto che consente di raggruppare gli AWS IoT elementi tramite gruppi di oggetti dinamici filtrati in base alla versione del pacchetto software. Ad esempio, l'indicizzazione del parco istanze può identificare gli oggetti in cui è installata o non è installata una versione del pacchetto specifica, che non dispongono di versioni dei pacchetti installate o che corrispondono a coppie nome-valore specifiche. Infine, l'indicizzazione della flotta fornisce metriche standard e personalizzate che puoi utilizzare per ottenere informazioni sullo stato del tuo parco dispositivi. Per ulteriori informazioni, consulta Preparazione dell'indicizzazione del parco istanze.

Nota

L'abilitazione dell'indicizzazione del parco istanze per Software Package Catalog comporta costi di servizio standard. Per ulteriori informazioni, consulta Prezzi di AWS IoT Device Management.

Copia shadow con nome riservata

La copia shadow con nome riservata, $package, riflette lo stato dei pacchetti software installati e delle versioni dei pacchetti del dispositivo. L'indicizzazione del parco istanze utilizza la copia shadow con nome riservata come un'origine dati per creare parametri standard e personalizzati in modo da poter eseguire query sullo stato del parco istanze. Per ulteriori informazioni, consulta Preparazione dell'indicizzazione del parco istanze.

Una copia shadow con nome riservata è simile a una copia shadow con nome, con la differenza che il suo nome è predefinito e non può essere modificato. Inoltre, la copia shadow con nome riservata non viene aggiornata con i metadati e utilizza solo le parole chiave version e attributes.

Le richieste di aggiornamento che includono altre parole chiave, ad esempiodescription, riceveranno una risposta di errore nell'argomento. rejected Per ulteriori informazioni, consulta Messaggi di errore  Device Shadow.

Può essere creato quando si crea un AWS IoT oggetto tramite la console, quando un AWS IoT job completa e aggiorna correttamente lo shadow e se si esegue l'UpdateThingShadowAPIoperazione. Per ulteriori informazioni, consulta UpdateThingShadowla guida per gli AWS IoT Core sviluppatori.

Nota

L'indicizzazione della copia shadow con nome riservata non conta ai fini del numero di copie shadow con nome che possono essere indicizzate dall'indicizzazione del parco istanze. Per ulteriori informazioni, consulta Limiti e quote per l'indicizzazione del parco istanze di AWS IoT Device Management. Inoltre, se si sceglie di fare in modo che i AWS IoT job aggiornino il named shadow riservato quando un job viene completato con successo, la API chiamata viene conteggiata per le operazioni di Device Shadow e del registro e può comportare un costo. Per ulteriori informazioni, consulta i limiti e le quote dei AWS IoT Device Management lavori e il tipo di dati. IndexingFilterAPI

Struttura della copia shadow $package

La copia shadow con nome riservata contiene quanto segue:

{ "state": { "reported": { "<packageName>": { "version": "", "attributes": { } } } }, "version" : 1 "timestamp" : 1672531201 }

Le proprietà della copia shadow vengono aggiornate con le seguenti informazioni:

  • <packageName>: il nome del pacchetto software installato, che viene aggiornato con il packageNameparametro.

  • version: il nome della versione del pacchetto installato, che viene aggiornato con il versionNameparametro.

  • attributes: metadati opzionali memorizzati dal dispositivo e indicizzati dall'indicizzazione Fleet. Ciò consente ai clienti di interrogare i propri indici in base ai dati memorizzati.

  • version: il numero di versione della copia shadow. Viene incrementato automaticamente ogni volta che la copia shadow viene aggiornata e inizia da 1.

  • timestamp: indica quando la copia shadow è stata aggiornata l'ultima volta e viene registrato nell'ora Unix.

Per ulteriori informazioni sul formato e il comportamento di una copia shadow con nome, consultare Ordine dei messaggi Servizio AWS IoT Device Shadow.

Eliminazione di un pacchetto software e delle relative versioni del pacchetto

Prima di eliminare un pacchetto software, effettua le seguenti operazioni:

  • Conferma che il pacchetto e le relative versioni non vengano distribuiti attivamente.

  • Elimina per prima cosa tutte le versioni associate. Se una delle versioni è designata come la versione predefinita, devi rimuovere la versione predefinita con nome dal pacchetto. Poiché la designazione di una versione predefinita è opzionale, la rimozione non causa alcun conflitto. Per rimuovere la versione predefinita dal pacchetto software, modifica il pacchetto tramite la console o utilizza l' UpdatePackageVersionAPIoperazione.

Finché non esiste una versione del pacchetto predefinita con nome, puoi utilizzare la console per eliminare un pacchetto software. Verranno eliminate anche tutte le versioni del pacchetto. Se si utilizza una API chiamata per eliminare i pacchetti software, è necessario eliminare prima le versioni del pacchetto e poi il pacchetto software.