Preparando AWS IoT trabalhos - AWS IoT Core

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Preparando AWS IoT trabalhos

AWS IoT Device Management O Software Package Catalog estende os AWS IoT trabalhos por meio de parâmetros de substituição e integração com indexação de AWS IoT frotas, grupos dinâmicos de coisas e a AWS IoT coisa reservada chamada shadow.

nota

Para usar toda a funcionalidade que o Software Package Catalog oferece, você deve criar estas funções e políticas AWS Identity and Access Management (IAM): direitos de AWS IoT trabalhos para implantar versões de pacotes e direitos de AWS IoT trabalhos para atualizar a sombra nomeada reservada. Para obter mais informações, consulte Preparação de segurança.

Parâmetros de substituição para trabalhos AWS IoT

Você pode usar parâmetros de substituição como um espaço reservado em seu documento de AWS IoT trabalho. Quando o serviço de tarefa encontra um parâmetro de substituição, ele aponta a tarefa para um atributo de versão de software nomeado para o valor do parâmetro. Você pode usar esse processo para criar um único documento de trabalho e passar os metadados para a tarefa por meio de atributos de uso geral. Por exemplo, você pode passar por um URL do Amazon Simple Storage Service (Amazon S3), um pacote de software do nome do recurso da Amazon (ARN) ou uma assinatura no documento de trabalho por meio dos atributos da versão do pacote.

O parâmetro de substituição deve ser formatado no documento de trabalho da seguinte forma:

${aws:iot:package:<packageName>:version:<versionName>:attributes:<anyAttributeName>}

Neste exemplo, há um pacote de software chamado, samplePackage, e ele tem uma versão de pacote chamada 2.1.5 que tem os seguintes atributos:

  • nome: s3URL, valor: https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile

    • Esse atributo identifica a localização do arquivo de código armazenado no Amazon S3.

  • nome: signature, valor: aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj

    • Esse atributo fornece um valor de assinatura de código que o dispositivo exige como medida de segurança. Para obter mais informações, consulte Assinatura de código para tarefas. Nota: Esse atributo é um exemplo e não é obrigatório como parte do Catálogo de pacotes de software ou das tarefas.

Para downloads, o parâmetro do documento de trabalho é escrito da seguinte forma:

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }

Para signature, o parâmetro do documento de trabalho é escrito da seguinte forma:

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" }

O documento de trabalho completo está escrito da seguinte forma:

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }, ], "signature": [ "samplePackage" : "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" ] } }

Depois que a substituição é feita, o seguinte documento de trabalho é implantado nos dispositivos:

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile" }, ], "signature": [ "samplePackage" : "aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj" ] } }

Para obter mais informações sobre AWS IoT trabalhos, criação de documentos de trabalho e implantação de trabalhos, consulte Trabalhos.

Preparação do documento de trabalho e versão do pacote para implantação

Quando uma versão do pacote é criada, ela está em um draft estado que indica que está sendo preparada para implantação. Para preparar a versão do pacote para implantação, você deve criar um documento de trabalho, salvá-lo em um local que o trabalho possa acessar (como o Amazon S3) e confirmar se a versão do pacote tem os valores de atributos que você deseja que o documento de trabalho use. (Observação: você pode atualizar os atributos de uma versão do pacote somente enquanto ela estiver no draft estado.)

Quando estiver satisfeito com a versão do pacote, publique-a por meio da página de detalhes do pacote de software no AWS IoT console ou emitindo a operação da UpdatePackageVersionAPI. Em seguida, você pode referenciar a versão do pacote ao criar o trabalho por meio do AWS IoT console ou emitindo a operação da CreateJobAPI.

Nomeação dos pacotes e das versões durante a implantação

Ao implantar um AWS IoT trabalho, você deve nomear os mesmos pacotes de software e versões de pacotes que são nomeados no documento do trabalho na implantação do trabalho (destinationPackageVersions). Caso contrário, você receberá uma mensagem de erro com informação das versões ausentes do pacote.

Você pode incluir pacotes de software e versões de pacotes adicionais que não estão incluídos no documento de trabalho. Se você fizer isso, a tarefa não fornecerá instruções ao dispositivo sobre o que fazer com esses arquivos e espera-se que o dispositivo saiba o que fazer. Por exemplo, você pode enviar arquivos adicionais para o dispositivo se eles contiverem dados que o dispositivo possa referenciar.

Segmentação de empregos por meio de AWS IoT grupos dinâmicos

O Catálogo de pacotes de software trabalha com indexação de frota, AWS IoT tarefas e grupos de objetos AWS IoT dinâmicas para filtrar e direcionar dispositivos na frota para selecionar qual versão do pacote implantar nos dispositivos. Você pode executar uma consulta de indexação de frota com base nas informações atuais do pacote do seu dispositivo e direcionar essas coisas para um AWS IoT trabalho. Você também pode lançar atualizações de software, mas somente para dispositivos de destino qualificados. Por exemplo, você pode especificar que deseja implantar uma configuração somente nos dispositivos que atualmente executam o iot-device-client 1.5.09. Para obter mais informações, consulte a opção Criar um grupo de objetos dinâmicas.

Versões reservadas nomeadas de sombra e pacote

Se configurado, o AWS IoT Jobs pode atualizar uma coisa reservada chamada shadow ($package) quando o trabalho for concluído com êxito. Se você fizer isso, não precisará associar manualmente uma versão do pacote a uma sombra nomeada reservado do objeto.

Você pode optar por associar ou atualizar manualmente uma versão do pacote à sombra nomeada reservada do objeto nas seguintes situações:

  • Você registra algo AWS IoT Core sem associar a versão do pacote instalado.

  • AWS IoT Jobs não está configurado para atualizar a coisa reservada chamada shadow.

  • Você usa um processo interno para enviar versões de pacotes para sua frota e esse processo não é atualizado AWS IoT Core quando concluído.

nota

Recomendamos que você use AWS IoT Jobs para atualizar a versão do pacote no reservado chamado shadow ($package). Atualizar o parâmetro de versão na $package sombra por meio de outros processos (como chamadas de API manuais ou programáticas) quando o AWS IoT Jobs também está configurado para atualizar a sombra, pode causar inconsistências entre a versão real no dispositivo e a versão relatada à sombra nomeada reservada.

Você pode adicionar ou atualizar uma versão de pacote para uma sombra nomeada reservada do objeto ($package) por meio do console ou da operação da API UpdateThingShadow. Para obter mais informações, consulte Associando uma versão de pacote a uma AWS IoT coisa.

nota

Associar uma versão do pacote a AWS IoT algo não atualiza diretamente o software do dispositivo. Você deve implantar a versão do pacote no dispositivo para atualizar o software do dispositivo.

Como desinstalar um pacote de software e sua versão do pacote

$nullé um espaço reservado que solicita que o serviço AWS IoT Jobs remova o pacote de software e a versão do pacote existentes do dispositivo chamado shadow. $package Para obter mais informações, consulte Sombra nomeada reservada.

Para usar esse recurso, substitua o nome da versão no final do destinationPackageVersionAmazon Resource Name (ARN) por. $null Depois disso, você deve instruir seu serviço a remover o software do dispositivo.

O ARN autorizado usa o seguinte formato:

arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null

Por exemplo,

$ aws iot create-job \ ... \ --destinationPackageVersions ["arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/$null"]