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á.
Nesta seção, você publica o componente Hello World no serviço de nuvem do AWS IoT Greengrass. Depois que um componente estiver disponível no serviço de nuvem do AWS IoT Greengrass, você poderá implantá-lo nos dispositivos principais. Você usa a CLI do GDK para publicar o componente do seu computador de desenvolvimento no serviço de nuvemAWS IoT Greengrass. A CLI do GDK carrega a fórmula e os artefatos do componente para você.
Para publicar o componente Hello World no serviço do AWS IoT Greengrass
-
Execute o seguinte comando para compilar o componente usando a CLI do GDK. O comando de construção do componente cria uma fórmula e artefatos com base no arquivo de configuração da CLI do GDK. Nesse processo, a CLI do GDK cria um arquivo ZIP que contém o código-fonte do componente.
gdk component build
Você verá mensagens semelhantes ao exemplo a seguir.
[2022-04-28 11:20:16] INFO - Getting project configuration from gdk-config.json [2022-04-28 11:20:16] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2022-04-28 11:20:16] INFO - Building the component 'com.example.BatteryAwareHelloWorld' with the given project configuration. [2022-04-28 11:20:16] INFO - Using 'zip' build system to build the component. [2022-04-28 11:20:16] WARNING - This component is identified as using 'zip' build system. If this is incorrect, please exit and specify custom build command in the 'gdk-config.json'. [2022-04-28 11:20:16] INFO - Zipping source code files of the component. [2022-04-28 11:20:16] INFO - Copying over the build artifacts to the greengrass component artifacts build folder. [2022-04-28 11:20:16] INFO - Updating artifact URIs in the recipe. [2022-04-28 11:20:16] INFO - Creating component recipe in 'C:\Users\finthomp\greengrassv2\com.example.BatteryAwareHelloWorld\greengrass-build\recipes'.
-
Execute o seguinte comando para publicar o componente no serviço de nuvem do AWS IoT Greengrass. O comando de publicação do componente carrega o artefato do arquivo ZIP do componente em um bucket do S3. Em seguida, ele atualiza o URI S3 do arquivo ZIP na fórmula do componente e carrega a fórmula no serviço do AWS IoT Greengrass. Nesse processo, a CLI do GDK verifica qual versão do componente Hello World já está disponível AWS IoT Greengrass no serviço de nuvem, para que possa escolher a próxima versão do patch após essa versão. Se o componente ainda não existir, a CLI do GDK usa a versão.
1.0.0
gdk component publish
Você verá mensagens semelhantes ao exemplo a seguir. A saída informa a versão do componente que a CLI do GDK criou.
[2022-04-28 11:20:29] INFO - Getting project configuration from gdk-config.json [2022-04-28 11:20:29] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2022-04-28 11:20:29] INFO - Found credentials in shared credentials file: ~/.aws/credentials [2022-04-28 11:20:30] INFO - No private version of the component 'com.example.BatteryAwareHelloWorld' exist in the account. Using '1.0.0' as the next version to create. [2022-04-28 11:20:30] INFO - Publishing the component 'com.example.BatteryAwareHelloWorld' with the given project configuration. [2022-04-28 11:20:30] INFO - Uploading the component built artifacts to s3 bucket. [2022-04-28 11:20:30] INFO - Uploading component artifacts to S3 bucket: greengrass-component-artifacts-us-west-2-123456789012. If this is your first time using this bucket, add the 's3:GetObject' permission to each core device's token exchange role to allow it to download the component artifacts. For more information, see https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html. [2022-04-28 11:20:30] INFO - Not creating an artifacts bucket as it already exists. [2022-04-28 11:20:30] INFO - Updating the component recipe com.example.BatteryAwareHelloWorld-1.0.0. [2022-04-28 11:20:31] INFO - Creating a new greengrass component com.example.BatteryAwareHelloWorld-1.0.0 [2022-04-28 11:20:31] INFO - Created private version '1.0.0' of the component in the account.'com.example.BatteryAwareHelloWorld'.
-
Copie o nome do bucket do S3 da saída. Você usa o nome do bucket posteriormente para permitir que o dispositivo principal baixe artefatos de componentes desse bucket.
-
(Opcional) Visualize o componente no AWS IoT Greengrass console para verificar se ele foi carregado com êxito. Faça o seguinte:
-
No menu de navegação do console do AWS IoT Greengrass
, selecione Componentes. -
Na página Componentes, escolha a guia Meus componentes e, em seguida, escolha com.example.BatteryAwareHelloWorld.
Nesta página, você pode ver a fórmula do componente e outras informações sobre o componente.
-
-
Permita que o dispositivo principal acesse os artefatos do componente no bucket do S3.
Cada dispositivo principal tem uma função de IAM do dispositivo principal que permite interagir AWS IoT e enviar logs para a AWS nuvem. Essa função de dispositivo não permite acesso aos buckets do S3 por padrão, então você deve criar e anexar uma política que permita que o dispositivo principal recupere artefatos do componente do bucket do S3.
Se a função do seu dispositivo já permitir o acesso ao bucket do S3, você pode ignorar essa etapa. Caso contrário, crie uma política do IAM que permita acesso e anexe-a à função, da seguinte forma:
-
No menu de navegação do console do IAM
, escolha Políticas e Criar política. -
Na guia JSON, substitua o conteúdo do espaço reservado pela política a seguir. Substitua
greengrass-component-artifacts-us-west-2-123456789012
pelo nome do bucket do S3 em que a CLI do GDK fez o upload dos artefatos do componente.Por exemplo, se você especificou
greengrass-component-artifacts
e estáus-west-2
no arquivo de configuração da CLI do GDK e Conta da AWS sua ID123456789012
é, a CLI do GDK usa o bucket do S3 chamado.greengrass-component-artifacts-us-west-2-123456789012
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::
greengrass-component-artifacts-us-west-2-123456789012
/*" } ] } -
Escolha Próximo.
-
Na seção Detalhes da política, insira
MyGreengrassV2ComponentArtifactPolicy
em Nome. -
Escolha Criar política.
-
No menu de navegação do console do IAM
, escolha Role e, em seguida, escolha o nome da função para o dispositivo principal. Você especificou esse nome de função ao instalar o software AWS IoT Greengrass Core. Se você não especificou um nome, o padrão é GreengrassV2TokenExchangeRole
. -
Em Permissões, escolha Adicionar permissões e Anexar políticas.
-
Na página Adicionar permissões, marque a caixa de seleção ao lado da política
MyGreengrassV2ComponentArtifactPolicy
que você criou e escolha Adicionar permissões.
-