Skip to content

Latest commit

 

History

History
102 lines (66 loc) · 3.83 KB

README.md

File metadata and controls

102 lines (66 loc) · 3.83 KB

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.