Skip to content

nikurida/multipedidos-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Multipedidos Challenge

Este projeto foi criado para resolver um desafio técnico usando Terraform para configurar a infraestrutura na AWS.

Dependências

Configuração

  1. Instale as dependências:

  2. Configure suas credenciais AWS:

    Configure suas credenciais AWS usando o AWS CLI:

    aws configure
    
  3. Clone o repositório:

    git clone [email protected]:nikurida/multipedidos-challenge.git
    cd multipedidos-challange
    
  4. Copie o arquivo de exemplo .env-example para .env e preencha as informações necessárias:

    cp .env-example .env
    
  5. Inicialize e aplique o Terraform:

    tfenv use ou tfenv install # caso utilize o tfenv
    cd src
    chmod -x terraform-init.sh deploy-lambda.sh # ou substituia o -x por 777 
    ./terraform-init # execute via script para atribuir corretamente as variaveis ambiente e criar o arquivo .tfvars.json para alocação automatica das variaveis
    ./deploy-lambda.sh # execute esse segundo script para instalar as dependencias para função lambda corretamente e criar o arquivo .zip para upload na aws
    terraform apply # o uso do -auto-approve fica a seu critério
    

Estrutura do Projeto

  • src/main.tf: Arquivo principal do Terraform.
  • src/providers.tf: Configuração dos provedores.
  • src/variables.tf: Definição das variáveis.
  • src/outputs.tf: Definição das saídas.
  • src/modules/dynamodb: Módulo para configuração do DynamoDB.
  • src/modules/security_group: Módulo para configuração do Security Group para lambda function regitrar os logs no cloudwatch.
  • src/modules/lambda: Módulo para configuração do Lambda.
  • src/modules/apigateway: Módulo para configuração do API Gateway.

Uso

Após aplicar o Terraform, a infraestrutura será criada na AWS conforme especificado nos arquivos de configuração.

Testando a API

  1. Obtenha o endpoint da API Gateway:

    Após a conclusão da execução do Terraform, você pode encontrar o endpoint da API Gateway no console da AWS ou através da saída do Terraform, se configurado para mostrar o endpoint.

  2. Defina uma variável de ambiente para o endpoint da API:

    Para facilitar as chamadas subsequentes, exporte o endpoint da API para uma variável de ambiente:

    export API_ENDPOINT=https://SUA_API_ID.execute-api.YOUR_REGION.amazonaws.com
    
  3. Envie uma solicitação HTTP:

    Use ferramentas como curl, Postman ou qualquer cliente HTTP de sua escolha para enviar uma solicitação para o endpoint da API.

    # Criar um item:
    curl -X POST $API_ENDPOINT/ -H "Content-Type: application/json" -d '{"id": "123", "name": "ItemName"}'
    
    # Obter todos os itens
    curl -X GET $API_ENDPOINT/
    
    # Obter um item específico
    curl -X GET $API_ENDPOINT/123
    
    # Atualizar um item específico
    curl -X PUT $API_ENDPOINT/123 -H "Content-Type: application/json" -d '{"name": "UpdatedName"}'
    
    # Excluir um item específico
    curl -X DELETE $API_ENDPOINT/123
  4. Verifique a resposta:

    A resposta deve ser a saída esperada da função Lambda configurada. Verifique os logs no CloudWatch para depuração, se necessário.


Este README.md fornece uma visão geral básica do projeto e das etapas necessárias para configurá-lo e usá-lo. Para detalhes adicionais, consulte a documentação oficial das ferramentas mencionadas.

About

Repository for Multipedidos challange

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published