English Version

Kumo Gopher

kumo: Emulador leve de serviços AWS em Go

kumo é uma nova ferramenta, semelhante ao localstack, que fornece emulação de serviços AWS em Go. Desenhado para ser simples e fácil de usar, fornecendo um conjunto mínimo de recursos que são comumente usados em desenvolvimento e teste de aplicações para AWS.

O conjunto de recursos inclui:

  • Nenhuma autenticação necessária - Perfeito para ambientes de CI
  • Binário único - Fácil de distribuir e implantar
  • Suporte a Docker - Execute como um contêiner
  • Leve - Inicialização rápida, uso mínimo de recursos
  • Compatível com AWS SDK v2
  • Persistência de dados opcional - Sobrevive a reinicializações

Atualmente, suporta 71 serviços AWS.

Iniciando o kumo

Iniciar o kumo é tão simples quanto executar o seguinte comando:

go run github.com/sivchari/kumo/cmd/kumo@latest

Trabalhando com filas SQS

Agora vamos ver como usar o CLI AWS para trabalhar com filas SQS simuladas pelo kumo.

# Criar uma fila
aws sqs --endpoint-url http://localhost:4566 create-queue --queue-name test
{
    "QueueUrl": "http://localhost:4566/000000000000/test"
}

# Listar filas
aws sqs --endpoint-url http://localhost:4566 list-queues
{
    "QueueUrls": [
        "http://localhost:4566/000000000000/test"
    ]
}

# Enviar uma mensagem
aws sqs --endpoint-url http://localhost:4566 send-message --queue-url http://localhost:4566/000000000000/test --message-body '123'
{
    "MD5OfMessageBody": "202cb962ac59075b964b07152d234b70",
    "MessageId": "0f9991ca-e0ef-4cea-9bc6-bbbffc913745"
}

# Receber uma mensagem
aws sqs --endpoint-url http://localhost:4566 receive-message --queue-url http://localhost:4566/000000000000/test
{
    "Messages": [
        {
            "MessageId": "0f9991ca-e0ef-4cea-9bc6-bbbffc913745",
            "ReceiptHandle": "bf3eef1a-f89e-4b1a-b74e-671d93095d6c",
            "MD5OfBody": "202cb962ac59075b964b07152d234b70",
            "Body": "123",
            "Attributes": {
                "ApproximateFirstReceiveTimestamp": "1775453411219",
                "ApproximateReceiveCount": "1",
                "SentTimestamp": "1775453397364"
            }
        }
    ]
}

# Excluir uma mensagem
aws sqs --endpoint-url http://localhost:4566 delete-message --queue-url http://localhost:4566/000000000000/test --receipt-handle bf3eef1a-f89e-4b1a-b74e-671d93095d6c

Conclusão

kumo pode ser mais uma ótima ferramenta indispensável para desenvolvedores que precisam de um emulador leve de serviços AWS para testes.

É fácil de usar, leve, rápido, e compatível com o AWS SDK v2.

Referências

kumo