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á.
Preparação para uso do Catálogo de pacotes de software
A seção a seguir fornece uma visão geral do ciclo de vida da versão do pacote e informações para usar o Software AWS IoT Device Management Package Catalog.
Ciclo de vida da versão do pacote
Uma versão de pacote pode evoluir nos seguintes estados do ciclo de vida:draft
, published
e deprecated
. Ele também pode ser deleted
.
Rascunho
Quando você cria uma versão do pacote, ela está em um
draft
estado. Esse estado indica que o pacote de software está sendo preparado ou está incompleto.Embora a versão do pacote esteja nesse estado, você não pode implantá-la. Você pode editar a descrição, os atributos e as tags da versão do pacote.
Você pode fazer a transição de uma versão do pacote que está no
draft
estado parapublished
ou estádeleted
usando o console ou emitindo a DeletePackageVersionAPIoperação UpdatePackageVersionou.Publicado
Quando a versão do pacote estiver pronta para ser implantada, faça a transição da versão do pacote para um
published
estado. Nesse estado, você pode escolher identificar a versão do pacote como a versão padrão editando o pacote de software no console ou por meio da UpdatePackageAPIoperação. Nesse estado, você pode editar somente a descrição e as tags.Você pode fazer a transição de uma versão do pacote que está no
published
estado paradeprecated
ou estádeleted
usando o console ou emitindo a DeletePackageVersionAPIoperação UpdatePackageVersionou.Preterido
Se uma nova versão do pacote estiver disponível, você poderá fazer a transição de versões anteriores do pacote para
deprecated
. Você ainda pode implantar trabalhos com uma versão de pacote obsoleta. Você também pode nomear uma versão obsoleta do pacote como a versão padrão e editar somente a descrição e as tags.Considere fazer a transição de uma versão do pacote para
deprecated
quando a versão estiver desatualizada, mas você ainda tiver dispositivos em campo usando a versão mais antiga ou precisar mantê-la devido à dependência do tempo de execução.Você pode fazer a transição de uma versão do pacote que está no
deprecated
estado parapublished
ou estádeleted
usando o console ou emitindo as UpdatePackageVersionDeletePackageVersionAPIoperações o.Excluído
Quando você não pretende mais usar uma versão de pacote, pode excluí-la usando o console ou executando a DeletePackageVersionAPIoperação.
nota
Se você excluir uma versão do pacote enquanto houver tarefas pendentes que fazem referência a ela, você receberá uma mensagem de erro quando a tarefa for concluída com êxito e tentar atualizar a sombra nomeada reservada.
Se a versão do pacote de software que você deseja excluir for nomeada como a versão padrão do pacote, você deverá primeiro atualizar o pacote para nomear outra versão como padrão ou deixar o campo sem nome. Você pode fazer isso usando o console ou a UpdatePackageVersionAPIoperação. (Para remover qualquer versão de pacote nomeada como padrão, defina o unsetDefaultVersionparâmetro como true ao executar a UpdatePackageAPIoperação).
Se você excluir um pacote de software pelo console, ele excluirá todas as versões do pacote associadas a esse pacote, a menos que uma seja nomeada como a versão padrão.
Convenções de nomenclatura de versões de pacotes
Ao nomear as versões do pacote, é importante planejar e aplicar uma estratégia de nomenclatura lógica para que você e outras pessoas possam identificar facilmente a versão mais recente do pacote e a progressão da versão. Você deve fornecer um nome de versão ao criar a versão do pacote, mas a estratégia e o formato dependem muito do seu caso de negócios.
Como prática recomendada, recomendamos usar o formato de controle de versão SemVer1.2.3
onde 1
está a versão principal para alterações funcionalmente incompatíveis, 2
a versão principal para alterações funcionalmente compatíveis e 3
é a versão do patch (para correções de erros). Para obter mais informações, consulte Versionamento semântico 2.0.0
Versão padrão
Definir uma versão como padrão é opcional. É possível adicionar ou remover versões de pacote padrão. Você também pode implantar uma versão do pacote que não seja nomeada como a versão padrão.
Quando você cria uma versão do pacote, ela é colocada em um estado draft
e não pode ser nomeada como a versão padrão até que você faça a transição da versão do pacote para “publicada”. O Catálogo de pacotes de software não seleciona automaticamente uma versão como padrão nem atualiza uma versão mais recente do pacote como padrão. Você deve nomear intencionalmente a versão do pacote escolhida por meio do console ou emitindo a UpdatePackageVersionAPIoperação.
Atributos de versão
Os atributos de versão e seus valores contêm informações importantes sobre as versões do seu pacote. Recomendamos que você defina atributos de uso geral para um pacote ou versão do pacote. Por exemplo, você pode criar um par nome-valor para plataforma, arquitetura, sistema operacional, data de lançamento, autor ou Amazon S3. URL
Ao criar um AWS IoT trabalho com um documento de trabalho, você também pode optar por usar uma variável de substituição ($parameter
) que se refere ao valor de um atributo. Para obter mais informações, consulte Preparando AWS IoT trabalhos.
Os atributos de versão usados nas versões do pacote não serão adicionados automaticamente à sombra nomeada reservada e não poderão ser indexados ou consultados diretamente por meio da indexação de frota. Para indexar ou consultar os atributos da versão do pacote por meio da indexação de frota, você pode preencher o atributo da versão na sombra nomeada reservada.
Recomendamos que o parâmetro de atributo de versão na sombra nomeada reservada capture as propriedades relatadas pelo dispositivo, como sistema operacional e horário de instalação. Elas também podem ser indexadas e consultadas por meio da indexação de frota.
Os atributos da versão não precisam seguir uma convenção de nomenclatura específica. Você pode criar pares de nome e valor para atender às necessidades da sua empresa. O tamanho combinado de todos os atributos em uma versão do pacote é limitado a 3 KB. Para obter mais informações, consulte os limites do pacote de software e das versões do pacote do Catálogo de Pacotes de Software.
Usando todos os atributos em um documento de trabalho
Você pode ter todos os atributos da versão do pacote adicionados automaticamente à implantação do seu trabalho para dispositivos selecionados. Para usar automaticamente todos os atributos da versão do pacote de forma programática em um CLI comando API or, consulte o seguinte exemplo de documento de trabalho:
"
TestPackage
": "${aws:iot:package:TestPackage
:version:PackageVersion
:attributes}"
Lista de materiais de software
A lista de materiais do software (SBOM) fornece um repositório central para todos os aspectos do seu pacote de software. Além de armazenar pacotes e versões de pacotes de software, você pode armazenar a lista de materiais de software (SBOM) associada a cada versão do pacote no Catálogo de Pacotes de AWS IoT Device Management Software. Um pacote de software contém uma ou mais versões do pacote e cada versão do pacote consiste em um ou mais componentes. Cada um desses componentes que suportam a composição de uma versão específica do pacote pode ser descrito e catalogado usando uma lista de materiais de software. Os padrões da indústria para a lista de materiais de software suportados são SPDX e o CycloneDX. Quando um SBOM é criado pela primeira vez, ele passa por validação em relação ao formato padrão do setor SPDX e do CycloneDX. Para obter mais informações sobreSPDX, consulte System Package Data Exchange
A lista de materiais do software descreve todos os aspectos dos componentes de uma versão específica do pacote, como informações do pacote, informações do arquivo e outros metadados pertinentes. Veja o exemplo abaixo de uma estrutura de documento de lista de materiais de software no SPDX formato:
Benefícios da lista de materiais de software
Um dos principais benefícios de adicionar sua lista de materiais de software para uma versão de pacote no Catálogo de Pacotes de Software é o gerenciamento de vulnerabilidades.
Gerenciamento de vulnerabilidades
Avaliar e mitigar sua vulnerabilidade a riscos aparentes de segurança em componentes de software continua sendo fundamental para proteger a integridade de sua frota de dispositivos. Com a adição da lista de materiais de software armazenada no Catálogo de Pacotes de Software para cada versão do pacote, você pode expor proativamente as lacunas na segurança sabendo quais dispositivos estão em risco com base na versão do pacote e SBOM usando sua própria solução interna de gerenciamento de vulnerabilidades. Você pode implantar correções nos dispositivos afetados e proteger sua frota de dispositivos.
Armazenamento da lista de materiais de software
A lista de materiais do software (SBOM) para cada versão do pacote de software é armazenada em um bucket do Amazon S3 usando o recurso de controle de versão do Amazon S3. O bucket do Amazon S3 que armazena o SBOM deve estar localizado na mesma região em que a versão do pacote foi criada. Um bucket do Amazon S3 usando o recurso de versionamento mantém várias variantes de um objeto no mesmo bucket. Para obter mais informações sobre o uso do versionamento em um bucket do Amazon S3, consulte Uso do versionamento em buckets do Amazon S3.
nota
Cada versão do pacote de software tem apenas um SBOM arquivo armazenado como um arquivo zip.
A chave e o ID de versão específicos do Amazon S3 para seu bucket são usados para identificar de forma exclusiva cada versão de uma lista de materiais de software para uma versão de pacote.
nota
Para uma versão de pacote com um único SBOM arquivo, você pode armazenar esse SBOM arquivo em seu bucket do Amazon S3 como um arquivo zip.
Para uma versão de pacote com vários SBOM arquivos, você deve colocar todos os SBOM arquivos em um único arquivo zip e depois armazenar esse arquivo zip em seu bucket do Amazon S3.
Todos os SBOM arquivos armazenados em um único arquivo zip em ambos os cenários são formatados como arquivos.json SPDX ou CycloneDX.
Política de permissões
Para AWS IoT atuar como principal especificado para acessar os arquivos SBOM zip armazenados no bucket do Amazon S3, você precisa de uma política de permissões baseada em recursos. Consulte o exemplo a seguir para ver a política correta de permissões com base em recursos:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com" ] }, "Action": "s3:*", "Resource": "arn:aws:s3:::bucketName/*" } ] }
Para obter mais informações sobre políticas de permissão baseadas em recursos, consulte Políticas baseadas em recursos do AWS IoT
Atualizando o SBOM
Você pode atualizar a lista de materiais do software sempre que necessário para proteger e aprimorar sua frota de dispositivos. Sempre que a lista de materiais do software é atualizada em seu bucket do Amazon S3, o ID da versão muda, o Catálogo de pacotes de software é notificado da atualização e você deve associar o novo URL bucket do Amazon S3 à versão apropriada do pacote. Você verá o novo ID da versão na coluna ID da versão do objeto do Amazon S3 na página da versão do pacote no. AWS Management Console Além disso, você pode usar a API operação GetPackageVersion
ou o CLI comando get-package-version
para visualizar o novo ID da versão.
nota
Atualizar sua lista de materiais de software, o que causará um novo ID de versão, não fará com que uma nova versão do pacote seja criada.
Para obter mais informações sobre chaves de objeto do Amazon S3, consulte Criação de nomes de chaves de objetos.
Habilitando a indexação de AWS IoT frotas
Para aproveitar a indexação de AWS IoT frotas com o Software Package Catalog, defina o nome reservado shadow ($package
) como a fonte de dados para cada dispositivo no qual você deseja indexar e coletar métricas. Para obter mais informações sobre sombras nomeadas reservadas, consulteSombra nomeada reservada.
A indexação de frotas fornece suporte que permite que AWS IoT as coisas sejam agrupadas por meio de grupos dinâmicos que são filtrados por versão do pacote de software. Por exemplo, a indexação de frota pode identificar objetos que têm ou não uma versão de pacote específica instalada, não têm nenhuma versão de pacote instalada ou correspondem a pares de nome/valor específicos. Por fim, a indexação de frotas fornece métricas padrão e personalizadas que você pode usar para obter informações sobre o estado da sua frota de dispositivos. Para obter mais informações, consulte Preparação da indexação de frota.
nota
Habilitar a indexação de frota para o Catálogo de pacotes de software gera custos de serviço padrão. Para obter mais informações, consulte a opção AWS IoT Device Management, Preços
Sombra nomeada reservada
A sombra nomeada reservada, $package
, reflete o estado dos pacotes de software e das versões dos pacotes instalados no dispositivo. A indexação de frota usa a sombra nomeada reservada como fonte de dados para criar métricas padrão e personalizadas para que você possa consultar o estado da sua frota. Para obter mais informações, consulte Preparação de indexação de frota.
Uma sombra nomeada reservada é semelhante a uma sombra nomeada, com a exceção de que seu nome é predefinido e você não pode alterá-lo. Além disso, a sombra nomeada reservada não é atualizada com metadados e usa somente as palavras-chave version
e attributes
.
Solicitações de atualização que incluam outras palavras-chave, como description
, receberão uma resposta de erro no tópico rejected
. Para obter mais informações, consulte as mensagens de erro da opção Sombra do dispositivo.
Ele pode ser criado quando você cria AWS IoT algo por meio do console, quando um AWS IoT trabalho conclui e atualiza a sombra com êxito e se você executa a UpdateThingShadow
APIoperação. Para obter mais informações, consulte UpdateThingShadowo guia do AWS IoT Core desenvolvedor.
nota
A indexação da sombra nomeada reservada não conta para o número de sombras nomeadas que a indexação da frota pode indexar. Para obter mais informações, consulte AWS IoT Device Management Cotas e limites de indexação de frota. Além disso, se você optar por fazer com que os AWS IoT trabalhos atualizem a sombra nomeada reservada quando um trabalho for concluído com êxito, a API chamada será contabilizada em suas operações de Device Shadow e de registro e poderá ter um custo. Para obter mais informações, consulte limites e cotas de AWS IoT Device Management trabalhos e o tipo de IndexingFilterAPIdados.
Estrutura da sombra $package
A sombra nomeada reservada contém o seguinte:
{
"state": {
"reported": {
"<packageName>
": {
"version": "",
"attributes": {
}
}
}
},
"version" : 1
"timestamp" : 1672531201
}
As propriedades da sombra são atualizadas com as seguintes informações:
-
<packageName>
: o nome do pacote de software instalado, que é atualizado com o packageNameparâmetro. -
version
: o nome da versão do pacote instalado, que é atualizada com o versionNameparâmetro. -
attributes
: metadados opcionais armazenados pelo dispositivo e indexados pela indexação da frota. Isso permite que os clientes consultem seus índices com base nos dados armazenados. -
version
: o número da versão da sombra. É incrementado automaticamente toda vez que a sombra é atualizada e começa em1
. -
timestamp
: indica quando a sombra foi atualizada pela última vez e foi gravada no horário Unix.
Para obter mais informações sobre o formato e o comportamento de uma sombra nomeada, consulte a opção Serviço AWS IoT Device Shadow Ordem das mensagens.
Exclusão de um pacote de software e suas versões
Antes de excluir um pacote de software, você deve fazer o seguinte:
Confirme se o pacote e suas versões não estão sendo implantados ativamente.
Exclua todas as versões associadas primeiro. Se uma das versões for designada como a versão padrão, você deverá remover a versão padrão nomeada do pacote. Como a designação de uma versão padrão é opcional, não há conflito em removê-la. Para remover a versão padrão do pacote de software, edite o pacote pelo console ou use a UpdatePackageVersionAPIoperação.
Desde que não haja uma versão de pacote padrão nomeada, você pode usar o console para excluir um pacote de software e todas as versões do pacote também serão excluídas. Se você usar uma API chamada para excluir pacotes de software, deverá excluir primeiro as versões do pacote e depois o pacote de software.