olá pessoal sejam muito bem vindos ao nosso curso de ed computing iremos agora para o nosso laboratório a idéia aqui desse nosso primeiro laboratório é a gente configurar o AWS IoT Greengrass. Basicamente, ele é um acelerador de Edge Computing, pois ele, com uma máquina Linux, um dispositivo no formato de Linux, um exemplo, você consegue acelerar e ganhar muitas ferramentas para a questão do Edge Computing. Neste laboratório aqui, iremos utilizar uma máquina Windows, porém utilizaremos um WSL como instalação de Ubuntu para a gente configurar o AWS IoT Greengrass. Beleza? Então vamos lá. greengrass beleza então vamos lá então primeiramente é pra esse laboratório aqui a gente precisa ter uma conta aws tá então acho que é o único pré-requisito até então aqui e uma máquina linux aí tá pode ser um wcl pode ser uma máquina linux mesmo um Mac e assim por diante, beleza? Então vamos lá. Então o primeiro passo aqui, precisamos selecionar Virgínia, a região de Virgínia, por quê? Porque o AWS Greengrass, ele não é habilitado em todas as regiões. Um exemplo, se você quer utilizar a região de São Paulo, você não vai conseguir porque o produto não está disponível em São Paulo. Tudo bem? Então, vamos lá. Então, a primeira parte aqui do nosso laboratório, a gente vai começar a configurar os pré-requisitos para que a gente possa instalar o Greengrass. Então, primeiramente vamos pesquisar aqui na busca da AWS, IAM. E vamos clicar em Users. Legal. clicar em users legal e aí agora que a gente vai criar a gente vai criar o nosso usuário que vai ficar armazenado ali no greengrass então vamos clicar aqui em create user vamos dar um nome para esse usuário e aí no meu caso é que eu vou dar um dg underline user eu não vou marcar a opção para que ele possa ser acessível pela console. Vou clicar em Next. Eu vou clicar nessa opção aqui, que eu vou atachar diretamente às políticas. E aí, vamos lá. Quais policies que nós iremos utilizar? Nós iremos utilizar o AWS Green, Greengrass Full Access, AWS IoT Full Access, E a M, full access. E por fim, Amazon S3 full access. Vocês devem estar se perguntando, nossa, mas tudo isso precisa de acesso? Na verdade não. Então, quando a gente olha a documentação do Greengrass, ele permite você especificar e você refinar suas permissões, suas políticas, mas refinada para a sua necessidade. Aqui, para o nosso caso de LAB, a gente vai usar essas permissões um pouquinho mais permissíveis, porque a ideia aqui não é aprofundar no IAM, mas sim aprofundar na questão de internet das coisas, é de computing, beleza? Então, vamos lá, vamos dar next. Aqui na segunda parte, ele mostra uma revisão, então, basicamente, tudo aquilo lá que a gente setou, o nome do usuário, quais são as permissões que a gente está dando, e a gente vai clicar em create user. Legal, então, temos aqui o usuário. Porém, ele ainda não é acessível. Então, eu tenho um usuário aqui, porém, eu não consigo utilizá-lo. Eu vou clicar no nome desse usuário. Eu vou em Security Credentials. E eu vou procurar Access Keys. e eu vou procurar access keys. Então, nesse primeiro, primeira configuração das chaves, basicamente elas vão nos dar acesso ao a este usuário. Então, basicamente é como se fosse um usuário e senha aqui, tá bom? Eu vou utilizar command line, tá bom? O vou utilizar Command Line, tá bom? O famoso CLI. Eu vou selecionar aqui que eu entendo e confirmo. Vou dar um Next. Aqui, a gente coloca uma descrição. Para que serve essa descrição? Na verdade, para a gente entender e conseguir, a hora que você olhar a chave, saber que essa chave aqui é do Greengrass, ou então, essa chave aqui é de um outro dispositivo, enfim. Então, isso daqui serve para a gente ter uma label daquela chave. chave tá colocar de vai lá b create access key. E aí um ponto importante nessa etapa é você deve copiar as suas keys e guardá-las em um lugar seguro, esse é o primeiro ponto, e essas keys têm um ponto importante. Caso você perca elas, você vai necessitar refazer esse processo. Então, você pode também clicar aqui em Download. Então, ele vai fazer um download dessa chave para você. Então, vai ter o Access Key e o Secret Key. Tudo bem? E nós iremos utilizar essas duas informações mais para frente. Então, done. Boa, temos o nosso usuário aqui. Vamos para a próxima parte. Agora, nessa próxima parte, a ideia é configurarmos o dispositivo Greengrass propriamente dito. Então, vamos pesquisar aqui na busca. Vou clicar aqui nele. vou clicar aqui nele então ele vai abrir aqui a console do Greengrass e nós vamos clicar aqui em Setup on Core Device aqui, a primeira informação é qual que é o nome do nosso dispositivo, do nosso Edge Computing. Então, vou colocar aqui GGLAB. Na segunda parte aqui, a gente tem a parte dos grupos. Este ponto é muito importante. Quando a gente pensa em cenários produtivos, isso é muito importante. O porquê? Normalmente, Edge Computing, você tem uma gama de dispositivos enormes exemplo vamos pensar num cenário hipotético que você tenha mil dispositivos na região de são paulo é aqui a gente pode criar um grupo com essa região de são paulo e colocar incluindo outros dispositivos nesse grupo. O que isso te ajuda no final do dia? Isso te ajuda na hora que você for fazer upgrades de alguma versão do seu software Edge Computing para uma região específica, ou por um device específico. Aqui é muito mais para uma distribuição em massa. aqui é muito mais para uma distribuição em massa. Quando a gente fala de device específico, você consegue colocar uma versão em um device específico pelo Amazon Greengrass. Porém, aqui no Lab, a gente não vai utilizar essa feature, a gente não vai agrupar o nosso dispositivo aqui para dentro do nosso Greengrass nesse nosso lab, tá bom? Como aqui é algo um pouco mais simples, então vamos retirar um pouco as complexidades, tá bom? No segundo passo, aqui na hora que você está criando o device Greengrass, você tem duas possibil possibilidades ou você pode utilizar o Linux que normalmente os noventa por cento dos casos utilizam Linux tá e alguns outros casos Windows por que que eu falei que quase noventa por cento dos casos vão utilizar Linux porque o Amazon Greengrass ele tem uma compatibilidade muito melhor com Linux comparado do com Windows então no Windows você tem algumas features que não são possíveis habilitar tá bom nessa terceira parte aqui ele te dá um basicamente um passo a passo do que você precisa fazer para que você disponibilize no seu dispositivo o green grass tudo bem iremos agora fazer essas configurações tá bom o ponto é eu estou utilizando aqui então uma máquina windows utilizando o wsl com a versão do ubuntu 24 tudo bem então vamos lá lá então o primeiro comando que nós iremos utilizar aquiando é a gente colocar o pacote de bibliotecas, na verdade, os repositórios que estão esse JDK, o Coreto, o Amazon Coreto. Aqui a gente está usando o Coreto na versão 21, tudo bem? Então, vamos lá. Então, aqui ele pediu uma informação, qual que é o nome do arquivo. então aqui agora temos o nosso caminho para fazer o download do do jdk tá bom agora iremos propriamente instalar o coreto na nossa máquina, no nosso Edge Computing. Então, basicamente, a estrutura desse comando aqui, só para relembrá-los, um pouquinho de Linux aqui. Então, eu estou dando um sudo apt-get update, basicamente eu estou atualizando toda a minha biblioteca, todo o meu repositório com as versões mais atuais e no segundo comando eu estou instalando o JDK da Amazon. Legal, aqui nós já temos o nosso JDK instalado em nossa máquina. Como conseguimos validar? Como sabemos se realmente funcionou? Então, a gente vai rodar um comando aqui, que é o java-version. E aí, percebam, ele aqui vai aparecer coreto 21. Agora, iremos para uma outra parte simples, mas muito importante, tá? Vocês lembram quando a gente criou as nossas credenciais, né? Lá no IAM, criamosamos a secret eu comentei sobre guardarmos os valores da secret né que iríamos utilizar posteriormente chegou a hora de utilizarmos exportar basicamente aqui a gente tá configurando duas variáveis de ambiente tá então basicamente ele nos dá o poder da gente utilizar a WS com as permissões que que foram setadas, que foram configuradas. Agora vamos falar um pouquinho da instalação do produto. Eu acho que é a parte mais legal de todo o nosso laboratório. Iremos começar aqui. Então, iremos rodar aqui um comando de curr, basicamente para fazer o download do arquivo zip. E posteriormente a gente aqui vai fazer o unzip desse arquivo no nosso diretório raiz aqui. E vamos dar uma conferida. e vamos dar uma conferida. Então, percebam que nós temos aqui o nosso arquivo descompactado. Agora iremos rodar o nosso comando para realmente instalar o Greengrass na nossa máquina, no nosso Edge Computing, tá bom? O que é interessante, né? Acho que o que vale comentar desse comando? basicamente nós vamos rodar um java então porque a gente precisa ali do coreto porque a gente precisa rodar um java e o que ele vai fazer aqui? Aqui eu acho que é o ponto chave, né? E é o ponto que pode ser que dê algum problema e tenha que ser refeito, tá bom? Aqui, na real, ele vai começar a configurar grupos, usuários, permissões dentro da AWS, usuários, permissões dentro da AWS, máquinas, devices e uma série de coisas que vão estar dentro do Greengrass. Ao finalizar, ele vai te dar uma série de informações aqui referente à execução, referente à instalação. Então, agora vamos conferir esta instalação, se deu tudo certo. Um ponto importante é, vamos voltar aqui na AWS. Então, basicamente, a gente executou todo o passo a passo aqui dessa Step 3. Tudo bem? E vamos colocar em View Core Device. E aí percebam, o nosso dispositivo Edge Computing está aqui configurado. Então ele já está aqui pronto para a gente receber os nossos frameworks, as nossas aplicações e ser controlado através da cloud, através da AWS. Então só para recapitular, vocês lembram quando a gente comentou um pouquinho ali da diferença entre cloud e de compil em elas são juntas elas precisam existir né cada uma tem o a sua característica cada uma tem os seus benefícios e aqui a gente está vendo na prática um pouco dessa junção dessas dois benef, dessas duas tecnologias. Agora vamos dar uma apimentada aqui no nosso Edge Computing. O Amazon Greengrass, ele tem um conceito de componentes. O que são esses componentes? Basicamente são features, funcionalidades que você pode construir, versionar, isso também é um ponto importante, você pode versionar e distribuir para os seus edcomputers. Então, agora a gente vai fazer um pouco do Hello World, utilizando o Amazon Greengrass. Um componente. Eu irei utilizar aqui, não irei utilizar nenhuma ferramenta de desenvolvimento muito complexa. Eu irei, na verdade, utilizar o VI do próprio Linux para colocar o conteúdo desses arquivos, mas vocês podem utilizar qualquer outro editor que vocês preferirem. Aqui a gente vai colocar um código super simples em Python. Vamos começar. Então, o primeiro passo aqui, a ideia é criarmos a estrutura de diretórios para a gente poder armazenar os nossos cases aqui. Então, essa primeira estrutura de diretório, basicamente, é a receita. O que significa? O que é a receita aqui no Greengrass, num componente? Basicamente é como que roda esse componente? Quais artefatos eu preciso desse componente? Depois iremos nos aprofundar um pouquinho mais aqui em cada arquivo. E o segundo, estrutura de diretórios. E o segundo, estrutura de diretórios, basicamente é, aonde estão os meus artefatos. Aqui a gente fez uma convençãozinha, então a gente colocou um com, example, hello world, na versão 1.0.0. na versão 1.0.0 e agora vamos criar o nosso arquivo então vamos começar pelo nosso arquivo de artefato o da Vim iremos passar todo o caminho do artefato, mas hello world, underline, ponto, py. Vamos inserir. Vamos inserir. Como eu disse, é um arquivinho simples de Python. Então, a gente está aqui importando a biblioteca sys. A gente está criando aqui uma variável com hello, e ela vai receber alguma coisa, algum argumento. E aí eu vou fazer o gancho aqui onde está esse argumento. E eu vou depois aqui dar um print dessa mensagem. Bem simples, bem conceitual. Legal. Agora nós vamos configurar a nossa receita. É um arquivo importante para o Greengrass. Então, vi. Qual o nome que a gente deu? O nome é com.example hello world-1.0.0.yaml. E aí, um ponto importante, tem pessoas que preferem yaml, tem pessoas que preferem json. Tanto faz, o resultado é o mesmo tudo bem então aqui depois de formatado nosso arquivo é vamos entender um pouquinho tá bom então primeira parte com um componente nem basicamente o nome do seu componente que a gente colocou como com exemplo ponto hello world tá então basic é o nome da sua feature aqui. Que aí a gente vai conseguir depois até olhar lá dentro da AWS, dentro da console. Legal? Outro ponto. Qual que é a versão desse componente? Aqui, a gente está na versão 1.0.0. Depois, aqui, uma coisa interessante é colocarmos uma descrição do que esse componente para que serve como ele funciona tá outro ponto aqui é como ele vai ser publicado aqui a gente não vai entrar muito no detalhe né porque a gente vai usar que um mecanismo para a primeira fase desse teste aqui, a gente vai fazer um teste local. Então, isso daqui serve muito como você desenvolve, como que você testa os seus componentes no local host. E aí, aqui a gente tem o nosso component configuration. Basicamente, aqui a gente tem um message word o que isso significa na verdade é quando a gente olhar aqui para o comando para o comando do do python que a gente vai rodar vocês vão perceber que a gente vai pegar essa mensagem que aqui está configurada como default, então isso aqui também pode ser outros inputs, e a gente pode colocar inputs default, então a gente vai colocar aqui uma mensagem default, onde ele vai passar para os nossos comandos, que é o nosso comando aqui do nosso Hello World. Outro detalhe importante, eu posso ter uma variação por plataforma então vocês percebem que o manifesto aqui você pode ter mais de uma plataforma e nós temos mais de uma plataforma porém a gente vai só testar em linux então o escopo aqui a gente está falando de linux mas vale colocar aqui pra vocês terem uma idéia é que podem existir outras plataformas e aí aqui propriamente dito a gente coloca o comando que a gente vai executar. Então, esse Artifactor Path aqui é algo do próprio Greengrass, onde vai estar os arquivos e o que a gente vai executar. Então, no Hello World, só para refrescar a memória de vocês, no Hello World, é possível a gente passar um argumento, e esse argumento vai ser printado para nós. E agora, nós vamos criar o nosso componente localmente. O que eu quero dizer com localmente? Na verdade, eu vou criar o componente aqui dentro do nosso Edge Computing. Então, isso daqui serve muito para testar, para validar se realmente aquele componente está funcional. Então, aqui tem um pouco de conceito de desenvolvimento mesmo. Então, vamos rodar aqui o comando. Basicamente ele vai usar o CLI que está instalado dentro do nosso Greengrass. Então quando a gente faz toda aquela configuração de instalar o Greengrass e ele faz toda aquela lista de várias configurações, uma delas é colocar esse CLI do Greengrass e ele faz toda aquela lista de várias configurações, uma delas é colocar esse CLI do Greengrass dentro da nossa máquina aqui, do nosso dispositivo, tá bom? E aí, um ponto importante, como que eu consigo ver, então ele me gerou aqui um ID de deployment, então é a mensagem que ele dá ali. Quando ele dá essa mensagem, basicamente é um processo assíncrono. O que eu quero dizer com isso? Quando eu rodo esse comando aqui para criar a nossa receita, para publicar a nossa receita, ele dá um ID, basicamente é como se fosse um ticket aqui. um id, basicamente é como se fosse um ticket aqui, né? E aí a gente pode entrar num diretório do Greengrass e ver mais logs, mais detalhes sobre essa execução. Legal. Então, aqui ele mostrou o nosso id que gerou, né? Então, eu posso analisar toda a execução que foi feita dentro desse deployment, né? Dessa execução que foi feita dentro desse deployment, dessa execução aqui de deploy. E aqui é um update, aqui é um bom, é um ponteiro na real, então aqui ele tem um pouquinho do conceito de ponteiro, só para vocês entenderem. Ele está falando que a última atualização que nós tivemos aqui, Porque a última atualização que nós tivemos aqui, ela está apontando para o deployment que tem a ver com o nosso deployment, o ID lá, o nosso ticket, e que ele foi com sucesso. Caso contrário, isso daqui iria dar uma mensagem falando que deu uma falha, algum erro. E aí você precisa investigar um pouco sobre o que aconteceu, qual que é essa falha, tá bom? Então, vamos agora também dar uma analisada no log. Então, legal, rodamos o deploy, fizemos tudo isso, mas e aí? Onde que o Python rodou? Como que ele rodou? Com quais informações ele rodou? Então, também tem um diretório onde fica todos os logs do Greengrass, tudo bem? Então, aqui eu estou rodando o comandinho aqui, ele está me mostrando os logs, e aí percebem que existe aqui uma parte que ele me deu o nosso Hello World. Então, percebam, ele já executou a nossa rotina em Python. Um detalhe importante, aqui, nesse caso em específico, ela é uma execução de um script uma única vez. execução de um script uma única vez tá é caso você queira criar scripts que a gente chama de long running existem outras estratégias tá bom como a gente faz isso mas aqui a idéia é mostrar um pouco do conceitual e um pouco como a gente faz para construir um componente e colocar esse componente realmente pra rodar aqui no greengrass