Creare distribuzioni secondarie - 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à.

Creare distribuzioni secondarie

Nota

La funzionalità di distribuzione secondaria è disponibile su Greengrass nucleus versione 2.9.0 e successive. Non è possibile implementare una configurazione in una sottodistribuzione con versioni precedenti dei componenti di Greengrass nucleus.

Una distribuzione secondaria è una distribuzione destinata a un sottoinsieme più piccolo di dispositivi all'interno di una distribuzione principale. È possibile utilizzare le distribuzioni secondarie per distribuire una configurazione in un sottoinsieme più piccolo di dispositivi. È inoltre possibile creare distribuzioni secondarie per riprovare una distribuzione principale non riuscita in caso di guasto di uno o più dispositivi in quella distribuzione principale. Con questa funzionalità, è possibile selezionare i dispositivi che hanno avuto un errore nella distribuzione principale e creare una sottodistribuzione per testare le configurazioni fino al successo della sottodistribuzione. Una volta completata la sottodistribuzione, è possibile ridistribuire tale configurazione nella distribuzione principale.

Segui i passaggi in questa sezione per creare una sottodistribuzione e verificarne lo stato. Per ulteriori informazioni su come creare distribuzioni, consulta Creare distribuzioni.

Per creare una sottodistribuzione () AWS CLI
  1. Esegui il comando seguente per recuperare le distribuzioni più recenti per un gruppo di oggetti. Sostituire l'ARN nel comando con l'ARN del gruppo di cose da interrogare. Imposta --history-filter LATEST_ONLY per visualizzare l'ultima implementazione di quel gruppo di cose.

    aws greengrassv2 list-deployments --target-arn arn:aws:iot:region:account-id:thinggroup/thingGroupName --history-filter LATEST_ONLY
  2. Copia il file deploymentId dalla risposta al list-deployments comando da utilizzare nel passaggio successivo.

  3. Esegui il comando seguente per recuperare lo stato di una distribuzione. Sostituisci deploymentId con l'ID della distribuzione da interrogare.

    aws greengrassv2 get-deployment --deployment-id deploymentId
  4. Copia il codice iotJobId dalla risposta al get-deployment comando da utilizzare nel passaggio successivo.

  5. Esegui il comando seguente per recuperare l'elenco delle esecuzioni di job per il job specificato. Sostituisci JobID con quello del iotJobId passaggio precedente. Sostituisci lo stato con lo stato per cui desideri filtrare. Puoi filtrare i risultati con i seguenti stati:

    • QUEUED

    • IN_PROGRESS

    • SUCCEEDED

    • FAILED

    • TIMED_OUT

    • REJECTED

    • REMOVED

    • CANCELED

    aws iot list-job-executions-for-job --job-id jobID --status status
  6. Crea un nuovo gruppo di AWS IoT cose o utilizza un gruppo di cose esistente per la tua distribuzione secondaria. Quindi, aggiungi AWS IoT qualcosa a questo gruppo di oggetti. Utilizzi i gruppi di cose per gestire flotte di dispositivi core Greengrass. Quando distribuisci componenti software sui tuoi dispositivi, puoi scegliere come target singoli dispositivi o gruppi di dispositivi. È possibile aggiungere un dispositivo a un gruppo di oggetti con una distribuzione Greengrass attiva. Una volta aggiunto, è possibile distribuire i componenti software di quel gruppo di oggetti su quel dispositivo.

    Per creare un nuovo gruppo di oggetti e aggiungervi i dispositivi, effettuate le seguenti operazioni:

    1. Crea un gruppo AWS IoT di oggetti. Sostituire MyGreengrassCoreGroupcon il nome del nuovo gruppo di oggetti. Non è possibile utilizzare i due punti (:)) nel nome di un gruppo di oggetti.

      Nota

      Se un gruppo di oggetti per una distribuzione secondaria viene utilizzato con unoparentTargetArn, non può essere riutilizzato con un parco dati principale diverso. Se un gruppo di oggetti è già stato utilizzato per creare una sottodistribuzione per un'altra flotta, l'API restituirà un errore.

      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup

      Se la richiesta ha esito positivo, la risposta è simile all'esempio seguente:

      { "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" }
    2. Aggiungi un core Greengrass fornito al tuo gruppo di cose. Esegui il comando seguente con questi parametri:

      • Sostituiscilo MyGreengrassCorecon il nome del core Greengrass fornito.

      • MyGreengrassCoreGroupSostituiscilo con il nome del tuo gruppo di oggetti.

      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup

      Il comando non ha alcun output se la richiesta ha esito positivo.

  7. Crea un file chiamatodeployment.json, quindi copia il seguente oggetto JSON nel file. Sostituisci targetARN con l'ARN del gruppo di oggetti da utilizzare come target per la AWS IoT distribuzione secondaria. Un obiettivo di sottodistribuzione può essere solo un gruppo di oggetti. Gli ARN dei gruppi di cose hanno il seguente formato:

    • Gruppo di cose: arn:aws:iot:region:account-id:thinggroup/thingGroupName

    { "targetArn": "targetArn" }
  8. Esegui nuovamente il comando seguente per ottenere i dettagli della distribuzione originale. Questi dettagli includono metadati, componenti e configurazione del processo. Sostituisci DeploymentID con l'ID di. Passo 1 È possibile utilizzare questa configurazione di distribuzione per configurare la sottodistribuzione e apportare le modifiche necessarie.

    aws greengrassv2 get-deployment --deployment-id deploymentId

    La risposta contiene i dettagli della distribuzione. Copia una delle seguenti coppie chiave-valore dalla risposta del get-deployment comando in. deployment.json È possibile modificare questi valori per la distribuzione secondaria. Per ulteriori informazioni sui dettagli di questo comando, vedere GetDeployment.

    • components— I componenti della distribuzione. Per disinstallare un componente, rimuovilo da questo oggetto.

    • deploymentName— Il nome della distribuzione.

    • deploymentPolicies— Le politiche della distribuzione.

    • iotJobConfiguration— La configurazione del lavoro della distribuzione.

    • parentTargetArn— L'obiettivo della distribuzione principale.

    • tags— I tag della distribuzione.

  9. Esegui il comando seguente per creare la sottodistribuzione dadeployment.json. Sostituisci subDeploymentName con un nome per la sottodistribuzione.

    aws greengrassv2 create-deployment --deployment-name subdeploymentName --cli-input-json file://deployment.json

    La risposta include un deploymentId messaggio che identifica questa sottodistribuzione. È possibile utilizzare l'ID di distribuzione per verificare lo stato della distribuzione. Per ulteriori informazioni, consulta Verifica dello stato della distribuzione.

  10. Se la distribuzione secondaria ha esito positivo, è possibile utilizzare la relativa configurazione per rivedere la distribuzione principale. Copia quello deployment.json che hai usato nel passaggio precedente. Sostituisci il targetArn file JSON con l'ARN della distribuzione principale ed esegui il comando seguente per creare la distribuzione principale utilizzando questa nuova configurazione.

    Nota

    Se crei una nuova revisione di distribuzione della flotta principale, sostituisce tutte le revisioni e le distribuzioni secondarie di quella distribuzione principale. Per ulteriori informazioni, consulta Revisionare le distribuzioni.

    aws greengrassv2 create-deployment --cli-input-json file://deployment.json

    La risposta include un messaggio deploymentId che identifica questa distribuzione. È possibile utilizzare l'ID di distribuzione per verificare lo stato della distribuzione. Per ulteriori informazioni, consulta Controllo dello stato di implementazione.