< Return to Video

vimeo.com/.../1073321118

  • 0:08 - 0:11
    Para criar um serviço na AWS
    integrado com os demais serviços,
  • 0:11 - 0:15
    o ideal é que preparemos
    uma solução integrada
  • 0:15 - 0:17
    para que fique mais fácil
  • 0:17 - 0:19
    de entendermos
    os passos necessários
  • 0:19 - 0:21
    para fazer a distribuição
  • 0:21 - 0:23
    e a comunicação entre
    os serviços na AWS.
  • 0:23 - 0:27
    Então, eu preparei para vocês
    um diagrama para visualizarmos
  • 0:27 - 0:30
    os principais serviços
    que vamos utilizar
  • 0:30 - 0:31
    para receber imagens
  • 0:31 - 0:32
    por meio de uma API,
  • 0:32 - 0:35
    e depois distribuir
    para diversos clientes
  • 0:35 - 0:37
    por meio de e-mails,
    por exemplo.
  • 0:37 - 0:39
    Então, aqui
    nós temos um diagrama,
  • 0:39 - 0:43
    nós temos, por exemplo,
    a nossa nuvem na AWS,
  • 0:43 - 0:46
    que está dentro
    da região "us-east-1"
  • 0:46 - 0:49
    e na nossa
    rede padrão,
  • 0:49 - 0:50
    a nossa VPC padrão.
  • 0:50 - 0:53
    E eu tenho três
    serviços da AWS,
  • 0:53 - 0:56
    o SNS, que é um serviço
    para mensageria
  • 0:56 - 0:58
    do tipo pub/sub,
  • 0:58 - 1:00
    vai ser o primeiro serviço
    que ele vai criar.
  • 1:00 - 1:04
    Na sequência vamos criar
    uma função Lambda
  • 1:04 - 1:06
    para poder receber
    dados de uma API
  • 1:06 - 1:09
    e depois encaminhar
    para o SNS.
  • 1:09 - 1:11
    E para isso eu vou
    criar a minha API
  • 1:11 - 1:13
    que vai se integrar
    com a função Lambda.
  • 1:13 - 1:17
    E por último, quando todos
    os serviços estiverem prontos,
  • 1:17 - 1:21
    nós vamos fazer a integração
    recebendo o arquivo JSON
  • 1:21 - 1:22
    por meio da nossa API.
  • 1:22 - 1:26
    E por último, nós vamos
    enviar um e-mail
  • 1:26 - 1:29
    para o destinatário
    já pré-configurado.
  • 1:29 - 1:31
    Então, para criar
    a nossa solução integrada,
  • 1:31 - 1:34
    a primeira coisa que vamos
    criar é um tópico no SNS.
  • 1:34 - 1:36
    Então, eu vou mostrar para vocês
  • 1:36 - 1:40
    como podemos criar isso acessando
    a área do dashboard da AWS,
  • 1:40 - 1:42
    o nosso console da AWS.
  • 1:42 - 1:44
    Então, aqui no nosso console,
  • 1:44 - 1:47
    vou buscar aqui o serviço do SNS
  • 1:47 - 1:50
    que é o "Simple
    Notification Service",
  • 1:50 - 1:50
    clico nele.
  • 1:53 - 1:55
    E aqui eu tenho
    o painel do SNS,
  • 1:55 - 1:58
    vou ver aqui quantos
    tópicos nós temos,
  • 1:58 - 2:01
    já tenho aqui um
    pré-configurado para mim.
  • 2:01 - 2:03
    Vou criar um novo tópico,
  • 2:03 - 2:05
    clicando aqui
    no botão "Criar Tópico".
  • 2:07 - 2:09
    Aqui nós temos
    algumas opções.
  • 2:09 - 2:12
    Vamos escolher a opção padrão,
    que é a opção mais simples
  • 2:12 - 2:17
    e vou colocar aqui o nome
    do tópico de "recebe-pedidos"
  • 2:17 - 2:21
    porque nós vamos simular
    o recebimento de pedidos
  • 2:21 - 2:24
    de um parceiro
    de um e-commerce, por exemplo.
  • 2:26 - 2:30
    Vamos colocar o mesmo
    para o nome de exibição,
  • 2:30 - 2:33
    não preciso marcar mais nada
  • 2:33 - 2:35
    e vou clicar aqui em "Criar Tópico".
  • 2:38 - 2:40
    Pronto, nós temos já aqui
    o tópico criado,
  • 2:40 - 2:45
    já posso listar novamente,
    que é a primeira da nossa solução.
  • 2:45 - 2:48
    Então, esse tópico serve
  • 2:48 - 2:52
    para poder receber as informações
    que vão vir, por exemplo,
  • 2:52 - 2:56
    de uma API que ainda
    vamos construir.
  • 2:56 - 2:59
    Mas antes disso precisamos criar
    uma função Lambda
  • 2:59 - 3:01
    que será integrada
    com a nossa API.
  • 3:01 - 3:03
    Então, já temos
    aqui o tópico criado,
  • 3:03 - 3:05
    vamos criar a função Lambda.
  • 3:05 - 3:08
    Volto aqui na busca,
    digito "Lambda"
  • 3:08 - 3:11
    e vou acessar
    a função Lambda.
  • 3:12 - 3:15
    Então, vou criar
    aqui uma nova função,
  • 3:15 - 3:18
    selecionei aqui
    o botão "Criar função"
  • 3:18 - 3:20
    e vou dar
    um nome para ela,
  • 3:20 - 3:23
    "recebe-pedidos".
  • 3:23 - 3:25
    Nós vamos desenvolver
    a função em Python,
  • 3:25 - 3:27
    já temos ela pronta aqui, né,
  • 3:27 - 3:31
    pode ser essa versão
    do "Python 3.9".
  • 3:31 - 3:33
    Nas permissões,
  • 3:33 - 3:35
    como estávamos usando
    o ambiente de testes,
  • 3:35 - 3:37
    que é o que vocês
    têm acesso,
  • 3:37 - 3:39
    nós vamos alterar aqui
    a função de execução
  • 3:39 - 3:42
    para uma função existente,
  • 3:42 - 3:45
    que é a função
    chamada "LabRole".
  • 3:45 - 3:48
    E aí eu vou clicar
    aqui em "Criar função".
  • 3:51 - 3:54
    Já temos aqui
    a nossa visão geral da função,
  • 3:54 - 3:57
    cabe agora colocarmos
    o código da função.
  • 3:57 - 3:58
    Então, vou colocar
    aqui o código
  • 3:58 - 4:02
    que eu já tinha copiado
    aqui da minha colinha,
  • 4:02 - 4:05
    vamos ver aqui
    em detalhes o código.
  • 4:05 - 4:08
    Esse código vai acessar
    o tópico do SNS,
  • 4:08 - 4:10
    nós vamos pegar o nome
    do tópico já já,
  • 4:10 - 4:12
    para poder colocar aqui,
  • 4:12 - 4:15
    e vamos receber uma informação
    que vem da API.
  • 4:15 - 4:17
    Se a requisição
    não estiver vazia
  • 4:17 - 4:19
    então, ela vai ter
    um corpo preenchido,
  • 4:19 - 4:21
    um JSON, por exemplo.
  • 4:21 - 4:26
    E aí ele vai fazer uma postagem
    dentro desse tópico do SNS, tá?
  • 4:26 - 4:29
    Se der certo, ele vai retornar
    o "statusCode: 200",
  • 4:29 - 4:32
    se não, vai dar
    um erro interno, que é "500".
  • 4:32 - 4:33
    O que falta nós fazermos?
  • 4:33 - 4:37
    Pegar primeiro o nome
    do tópico do SNS,
  • 4:37 - 4:40
    para isso eu vou abrir
    uma nova aba,
  • 4:40 - 4:43
    vou clicar aqui
    no logo da AWS
  • 4:43 - 4:46
    com o botão do meio
    do mouse,
  • 4:46 - 4:48
    abrir aqui
    uma nova guia.
  • 4:48 - 4:49
    Vou voltar aqui para o SNS,
  • 4:49 - 4:51
    já tem até aqui um atalho,
  • 4:51 - 4:54
    Simple Notification Service
  • 4:54 - 4:55
    e vou clicar aqui em "Tópicos",
  • 4:55 - 4:57
    que foi o tópico
    que nós criamos agora há pouco.
  • 4:57 - 4:58
    Por quê?
  • 4:58 - 5:00
    Porque eu preciso
    desse número aqui,
  • 5:00 - 5:03
    que na verdade é o endereço
    do tópico dentro da AWS,
  • 5:03 - 5:06
    é o "Amazon Resource Name".
  • 5:06 - 5:09
    Copiei com o Ctrl + C,
  • 5:09 - 5:13
    vou voltar aqui para minha
    função Lambda
  • 5:13 - 5:17
    e vou criar uma variável de ambiente
    chamada "SNS_TOPIC_ARN".
  • 5:17 - 5:21
    Aqui embaixo, do lado
    esquerdo inferior,
  • 5:21 - 5:23
    tem aqui "Environment variables",
  • 5:23 - 5:26
    nós temos aqui as variáveis
    de ambiente.
  • 5:26 - 5:29
    Vou adicionar aqui
    uma nova variável de ambiente,
  • 5:29 - 5:32
    vou adicionar uma nova variável
    clicando no botão:
  • 5:32 - 5:38
    "Adicionar variáveis de ambiente"
    e colocar "SNS_TOPIC_ARN"
  • 5:38 - 5:39
    e vou colar o valor
  • 5:39 - 5:42
    que nós copiamos
    do endereço do tópico.
  • 5:42 - 5:46
    Vou clicar em "Salvar",
  • 5:46 - 5:47
    "SNS_TOPIC_ARN",
  • 5:47 - 5:49
    vou conferir aqui
    se já está aqui criado.
  • 5:49 - 5:52
    Já estamos aqui
    com a variável criada
  • 5:52 - 5:53
    nas variáveis de ambiente.
  • 5:53 - 5:57
    E aí finalmente eu posso fazer
  • 5:57 - 6:00
    o deploy da minha
    função Lambda.
  • 6:00 - 6:01
    Vou clicar aqui em "Deploy",
  • 6:03 - 6:04
    ele demora alguns instantes.
  • 6:05 - 6:08
    Já tem aqui a parte
    da minha função Lambda pronta
  • 6:08 - 6:12
    para receber
    informações de uma API.
  • 6:12 - 6:14
    O próximo passo vai ser criar a API
  • 6:14 - 6:18
    para poder receber o arquivo de resumo
    que vai acionar a função lambda,
  • 6:18 - 6:23
    e na sequência, encaminhar
    uma mensagem para o nosso SNS.
  • 6:23 - 6:25
    Então, agora vamos criar
    a nossa API
  • 6:25 - 6:27
    para poder receber
    o arquivo de resumo
  • 6:27 - 6:30
    e depois encaminhar a informação
    para a nossa função Lambda,
  • 6:30 - 6:34
    e na sequência, nós vamos
    cadastrar uma assinatura
  • 6:34 - 6:36
    dentro do tópico
    para receber um e-mail
  • 6:36 - 6:39
    toda vez que recebermos
    uma nova requisição.
  • 6:39 - 6:41
    Então, vou clicar aqui em busca
  • 6:41 - 6:45
    e vou digitar,
    por exemplo, API
  • 6:45 - 6:47
    para selecionar
    o serviço do API Gateway,
  • 6:47 - 6:48
    vou clicar nele.
  • 6:52 - 6:54
    E vou criar aqui
    uma nova API.
  • 6:56 - 6:59
    Vou criar uma API simples,
    uma API HTTP,
  • 6:59 - 7:02
    vou clicar na opção "Compilar"
  • 7:02 - 7:03
    e vou dar um nome
    para API:
  • 7:03 - 7:08
    "api-recebe-pedidos".
  • 7:09 - 7:11
    Vou clica em "Avançar",
  • 7:11 - 7:13
    não marquei nada
    por enquanto.
  • 7:14 - 7:17
    Aqui também vou clicar
    em "Avançar"
  • 7:17 - 7:18
    e vou criar a nossa API.
  • 7:22 - 7:23
    Pronto, a nossa
    API foi criada,
  • 7:23 - 7:25
    falta agora criar as rotas.
  • 7:25 - 7:28
    Então, vou clicar aqui em "Criar"
  • 7:30 - 7:32
    e vou criar uma rota
  • 7:32 - 7:37
    usando o método POST
    do protocolo HTTP
  • 7:37 - 7:41
    para o endereço
    "/pedidos".
  • 7:41 - 7:42
    Então, toda vez que
    eu fizer uma requisição
  • 7:42 - 7:43
    para esse endereço,
  • 7:43 - 7:46
    no endereço
    da API "/pedidos",
  • 7:46 - 7:51
    ele vai solicitar a função
    Lambda para poder gravar
  • 7:51 - 7:54
    no nosso tópico do SNS.
  • 7:54 - 7:55
    Vou clicar aqui em Criar,
  • 7:55 - 7:57
    já foi criado com sucesso.
  • 7:58 - 8:00
    Vou selecionar aqui o "POST"
  • 8:00 - 8:04
    e vou anexar a minha função
    Lambda nesse método POST.
  • 8:04 - 8:06
    Vou clicar aqui
    em "Anexar Integração",
  • 8:06 - 8:08
    vou criar
    uma nova integração.
  • 8:08 - 8:12
    Vou selecionar aqui,
    por exemplo, a função do Lambda,
  • 8:12 - 8:14
    e aqui na nossa
    região "us-east-1",
  • 8:14 - 8:17
    vou selecionar
    as funções existentes.
  • 8:17 - 8:20
    Então, eu já criei aqui a função,
  • 8:20 - 8:22
    tem a nossa função
    "recebe-pedidos"
  • 8:22 - 8:24
    que nós criamos
    agora a pouco,
  • 8:24 - 8:25
    e vou clicar aqui em "Criar".
  • 8:28 - 8:30
    Pronto, já temos
    aqui a API pronta
  • 8:30 - 8:35
    para poder receber
    uma informação do pedido
  • 8:35 - 8:37
    e encaminhar isso para
    a função Lambda.
  • 8:37 - 8:40
    Eu preciso anotar aqui
    só o endereço da API,
  • 8:40 - 8:46
    então, clicamos aqui na API
    e copia o endereço
  • 8:46 - 8:49
    de invocação
    dessa própria API,
  • 8:49 - 8:54
    nós vamos usar isso para poder
    acionar a nossa função.
  • 8:54 - 8:58
    Só que antes disso, eu vou abrir
    aqui mais uma guia nova.
  • 9:00 - 9:03
    E vou voltar para
    o nosso tópico do SNS.
  • 9:08 - 9:11
    Aqui nós temos nosso tópico
    "recebe-pedidos"
  • 9:11 - 9:13
    e aí eu vou criar uma assinatura
  • 9:13 - 9:15
    para toda vez
    que eu receber uma informação
  • 9:15 - 9:17
    que vem lá da API,
    que passou para Lambda,
  • 9:17 - 9:21
    ele vai mandar um e-mail
    me notificando.
  • 9:21 - 9:23
    Vou clicar aqui em assinaturas,
  • 9:24 - 9:26
    "Criar assinatura".
  • 9:29 - 9:31
    E aí eu seleciono o tópico
    que eu quero criar assinatura.
  • 9:31 - 9:34
    Quero ser um assinante para
    o tópico "recebe-pedidos",
  • 9:34 - 9:39
    Então, toda vez que eu receber
    uma informação nesse tópico,
  • 9:39 - 9:41
    ele vai me mandar um e-mail.
  • 9:41 - 9:45
    Vou selecionar aqui o protocolo
    para ele poder me enviar um e-mail
  • 9:45 - 9:46
    e vou colocar o meu e-mail,
  • 9:46 - 9:49
    no caso, vocês coloquem
    o e-mail de vocês.
  • 9:53 - 9:55
    E aí clica em "Criar Assinatura".
  • 9:55 - 9:57
    Vou colocar aqui
    as minhas informações,
  • 10:02 - 10:04
    "Criar assinatura".
  • 10:07 - 10:10
    Já posso visualizar
    as assinaturas criadas.
  • 10:10 - 10:13
    O que ele nos pergunta?
  • 10:13 - 10:16
    Toda vez quando eu adiciono
    uma nova assinatura,
  • 10:16 - 10:19
    principalmente por e-mail,
    ele pede uma confirmação.
  • 10:19 - 10:22
    Então, eu estou aqui
    com a confirmação pendente,
  • 10:22 - 10:24
    vou acessar aqui o meu e-mail.
  • 10:24 - 10:28
    Já recebi uma notificação
    de "recebe-pedidos",
  • 10:28 - 10:30
    que é o e-mail que a própria
    AWS nos manda.
  • 10:30 - 10:32
    Então, o SNS já enviou
    um e-mail para mim
  • 10:32 - 10:35
    para confirmar essa assinatura.
  • 10:35 - 10:38
    Vou clicar
    em "Confirmar subscrição",
  • 10:40 - 10:42
    já foi confirmado.
  • 10:42 - 10:44
    Então, toda vez que chegar
    uma informação no tópico,
  • 10:44 - 10:47
    eu vou receber
    essa informação por e-mail,
  • 10:47 - 10:52
    Então, vou voltar aqui
    para o nosso SNS,
  • 10:52 - 10:57
    vou dar uma atualizada
    na página,
  • 10:57 - 10:58
    acessar aqui
    de novo as assinaturas.
  • 11:01 - 11:03
    Já está confirmado,
  • 11:03 - 11:08
    agora já está pronto para poder
    simular o envio de um JSON,
  • 11:08 - 11:11
    de um pedido para
    nossa solução integrada.
  • 11:11 - 11:13
    Então, agora você já viu
  • 11:13 - 11:15
    como que nós fazemos
    para criar uma solução integrada
  • 11:15 - 11:19
    para receber pedidos
    por meio de uma API na AWS.
Title:
vimeo.com/.../1073321118
Video Language:
Portuguese, Brazilian
Duration:
11:22

Portuguese, Brazilian subtitles

Revisions Compare revisions