Gestione dei processi - 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à.

Gestione dei processi

Utilizza i processi per inviare notifica ai dispositivi riguardo un aggiornamento del software o del firmware. È possibile utilizzare la AWS IoT console, il Operazioni API di gestione e controllo dei processi AWS Command Line Interface, o il AWS SDKsper creare e gestire i lavori.

Firma del codice per i processi

Quando si invia un codice ai dispositivi affinché questi rilevino se il codice è stato modificato durante il transito, si consiglia di firmare il file di codice utilizzando la AWS CLI. Per istruzioni, consulta Creazione e gestione di processi utilizzando la AWS CLI.

Per ulteriori informazioni, vedi A cosa serve la firma del codice AWS IoT? .

Documento di processo

Prima di creare un processo, è necessario creare un documento del processo. Se utilizzi la firma del codice per AWS IoT, devi caricare il documento di lavoro in un bucket Amazon S3 con versione. Per informazioni sulla creazione e il caricamento di un file in un bucket Amazon S3, consulta la sezione Nozioni di base su Amazon Simple Storage Service nella Guida alle nozioni di base su Amazon S3.

Suggerimento

Per esempi di documenti di lavoro, consulta l'esempio jobs-agent.js nel modulo. AWS IoT SDK JavaScript

Predefinito URLs

Il documento di lavoro può contenere un Amazon URL S3 predefinito che rimanda al tuo file di codice (o altro file). Le Amazon URLs S3 prefirmate sono valide solo per un periodo di tempo limitato e vengono generate quando un dispositivo richiede un documento di lavoro. Poiché il prefirmato URL non viene creato durante la creazione del documento di lavoro, utilizza invece un segnaposto URL nel documento di lavoro. Un segnaposto URL ha il seguente aspetto:

${aws:iot:s3-presigned-url:https://s3.region.amazonaws.com/<bucket>/<code file>}

dove:

  • bucket è il bucket Amazon S3 che contiene il file di codice.

  • code file è la chiave Amazon S3 del file di codice.

Quando un dispositivo richiede il documento di lavoro, AWS IoT genera il prefirmato URL e sostituisce il segnaposto URL con il prefirmato. URL Il documento di processo viene quindi inviato al dispositivo.

IAMruolo per concedere l'autorizzazione a scaricare file da S3

Quando crei un lavoro che utilizza Amazon URLs S3 predefinito, devi fornire IAM un ruolo. Il ruolo deve concedere l'autorizzazione per scaricare file dal bucket Amazon S3 in cui vengono archiviati i dati o gli aggiornamenti del processo. Il ruolo deve anche concedere ad AWS IoT l'autorizzazione per assumere il ruolo.

Puoi specificare un timeout opzionale per il prefirmato. URL Per ulteriori informazioni, vedere. CreateJob

Concedi a AWS IoT Jobs il permesso di assumere il tuo ruolo
  1. Vai all'hub Roles della IAM console e scegli il tuo ruolo.

  2. Nella scheda Relazioni di fiducia, scegli Modifica relazione di fiducia e sostituisci il documento di policy con il seguenteJSON. Scegli Update Trust Policy (Aggiorna policy di trust).

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  3. Per prevenire il problema "confused deputy", aggiungi le chiavi di contesto di condizione globali aws:SourceArn e aws:SourceAccount alla policy.

    Importante

    aws:SourceArn deve essere conforme al formato: arn:aws:iot:region:account-id:*. Assicuratevi che region corrisponde alla tua AWS IoT regione e account-id corrisponde all'ID del tuo account cliente. Per ulteriori informazioni consulta la pagina relativa alla prevenzione del problema "confused deputy" tra servizi.

    { "Effect": "Allow", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:iot:*:123456789012:job/*" } } } ] }
  4. Se il tuo lavoro utilizza un documento di lavoro che è un oggetto Amazon S3, scegli Autorizzazioni e utilizza quanto segue. JSON In questo modo viene aggiunta una policy che concede l'autorizzazione per scaricare file dal bucket Amazon S3:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your_S3_bucket/*" } ] }

Preimpostato per il caricamento di file URL

Se i tuoi dispositivi devono caricare file su un bucket Amazon S3 durante l'implementazione di un processo, puoi includere il seguente URL segnaposto predefinito nel documento di lavoro:

${aws:iot:s3-presigned-url-upload:https://s3.region.amazonaws.com/<bucket>/<key>}

Puoi utilizzare un massimo di due parole chiave per ciascuna di ${thingName} esse e ${executionNumber} come parole chiave riservate all'interno dell'keyattributo nel segnaposto URL per il caricamento del file che si trova nel documento di lavoro. ${jobId} Il segnaposto locale che rappresenta le parole chiave riservate nell'keyattributo verrà analizzato e sostituito al momento della creazione dell'esecuzione del lavoro. L'utilizzo di un segnaposto locale con parole chiave riservate specifiche per ogni dispositivo garantisce che ogni file caricato da un dispositivo sia specifico per quel dispositivo e non venga sovrascritto da un file simile caricato da un altro dispositivo destinato allo stesso processo di implementazione. Per informazioni sulla risoluzione dei problemi relativi ai segnaposto locali all'interno di un URL segnaposto predefinito per il caricamento di file durante l'implementazione di un lavoro, vedere. Messaggi di errore generali sulla risoluzione dei problemi

Nota

Il nome del bucket Amazon S3 non può contenere il segnaposto locale che rappresenta le parole chiave riservate per il file caricato. Il segnaposto locale deve trovarsi nell'attributo. key

Questo URL segnaposto predefinito verrà convertito in un caricamento predefinito di Amazon S3 URL nel documento di lavoro quando un dispositivo lo riceve. I tuoi dispositivi lo useranno per caricare file su un bucket Amazon S3 di destinazione.

Nota

Quando il bucket e la chiave Amazon S3 non vengono forniti nel segnaposto precedenteURL, AWS IoT Jobs genererà automaticamente una chiave per ogni dispositivo utilizzando un massimo di due di, e. ${thingName} ${jobId} ${executionNumber}

Predefinito URL utilizzando il controllo delle versioni di Amazon S3

La salvaguardia dell'integrità di un file archiviato in un bucket Amazon S3 è fondamentale per garantire implementazioni sicure che utilizzino quel file nella tua flotta di dispositivi. Con l'uso del controllo delle versioni di Amazon S3, puoi aggiungere un identificatore di versione per ogni variante del file archiviata nel tuo bucket Amazon S3 per tracciare ogni versione del file. Ciò fornisce informazioni sulla versione del file distribuita nel tuo parco dispositivi utilizzando Jobs. AWS IoT Per ulteriori informazioni sui bucket Amazon S3 che utilizzano il controllo delle versioni, consulta Utilizzo del controllo delle versioni nei bucket Amazon S3.

Se il file è archiviato in Amazon S3 e il documento di lavoro contiene un URL segnaposto predefinito, AWS IoT Jobs genererà un documento prefirmato URL nel lavoro utilizzando il bucket Amazon S3, la chiave del bucket e la versione del file archiviata nel bucket Amazon S3. Questo segnaposto predefinito URL generato nel documento di lavoro sostituirà il segnaposto predefinito originariamente presente nel documento di lavoro. URL Se aggiorni il file archiviato nel tuo bucket Amazon S3, versionId verranno create una nuova versione del file e una versione successiva per segnalare gli aggiornamenti effettuati e fornire la possibilità di indirizzare quel file specifico nelle future implementazioni di lavoro.

Fai riferimento ai seguenti esempi per vedere prima e durante l'utilizzo di Amazon S3 prefirmato URLs nel documento di lavoro utilizzando: versionId

URLSegnaposto Amazon S3 Presigned (prima del Job Deployment)

//Virtual-hosted style URL ${aws:iot:s3-presigned-url:https://bucket-name.s3.region-code.amazonaws.com/key-name%3FversionId%3Dversion-id} //Path-style URL ${aws:iot:s3-presigned-url:https://s3.region-code.amazonaws.com/bucket-name/key-name%3FversionId%3Dversion-id}

Amazon S3 Presigned (URLdurante la distribuzione di Job)

//Virtual-hosted style URL ${aws:iot:s3-presigned-url:https://sample-bucket-name.s3.us-west-2.amazonaws.com/sample-code-file.png%3FversionId%3Dversion1} //Path-style ${aws:iot:s3-presigned-url:https://s3.us-west-2.amazonaws.com/sample-bucket-name/sample-code-file.png%3FversionId%3Dversion1}

Per ulteriori informazioni sugli oggetti ospitati virtualmente e in stile path di Amazon S3URLs, consulta richieste e richieste in stile Path. Virtual-hosted-style

Nota

Se desideri aggiungerlo versionId a un Amazon S3 URL prefirmato, deve essere conforme URL al supporto di codifica. AWS SDK for Java 2.x Per ulteriori informazioni, consulta Modifiche nell'analisi di Amazon URIs S3 dalla versione 1 alla versione 2.