Hospedando com segurança um aplicativo Lambda com uma arquitetura de microsserviço e MongoDB Atlas
BS
como
Babu Srinivasan, Igor Alekseev, Ashwin S.4 min read • Published Sep 19, 2024 • Updated Sep 19, 2024
Avalie esse Tutorial
Neste tutorial, você descobrirá como hospedar com segurança um aplicação Lambda projetado com uma arquitetura de microsserviço, utilizando Amazon Web Services Lambda, o Amazon API Gateway e o MongoDB Atlas. Amazon Web Services Lambda é essencial para as empresas, oferecendo implantação padronizada sem servidor, segurança aprimorada e gerenciamento simplificado, que coletivamente levam a desempenho consistente e operações simplificadas.
Este guia não apenas detalha o processo de configuração e implantação de um aplicação baseado no MongoDB Atlas com um microsserviço e padrão de API, mas também fornece uma estrutura robusta aplicável a qualquer implantação. Ao aproveitar Amazon Web Services CDK para implantação automatizada, você garante uma solução escalável, eficiente e segura que atende às necessidades empresariais e acelera o processo de implantação em vários ambientes.
Para acompanhar este tutorial, você deve ter proficiência intermediária com os serviços da AWS e do MongoDB.
A arquitetura descrita aqui inclui os seguintes componentes:
- Repositório deaplicativos sem servidorAmazon Web Services : Repositório público para o aplicação Amazon Web Services Lambda
- Amazon Web Services Lambda: hospeda a lógica de microsserviços
- Amazon API Gateway: Expõe as funções Lambda como APIs RESTful
- MongoDB Atlas: Armazena os dados do aplicação com segurança
Este tutorial pressupõe
us-east-1
como a região padrão. Atualize os scripts para sua região específica. se necessário.Antes de prosseguir, verifique se você tem os seguintes pré-requisitos instalados:
- Conta Amazon Web Services com função de criação IAM
- Amazon Web Services CLI: Instalar Amazon Web Services CLI
- Usuário IAM para Amazon Web Services CLI com chaves de acesso e chaves secretas
- SAM CLI: instalar SAM CLI
- Docker: Instalar o Docker
- Python 3.10: Instale o Python 3.10
Clone o repositório de aplicação .
1 git clone https://github.com/mongodb-partners/Microservice-api-lambda-MongoDBAtlas 2 cd Microservice-api-lambda-MongoDBAtlas
Configure Amazon Web Services CLI.
1 aws configure
Insira seu de chave de acesso do , chave de acesso secreta e região de preferência.Amazon Web Services ID
Configure o ambiente virtual Python.
1 python3 -m venv .venv 2 source .venv/bin/activate 3 pip3 install -r lambda/python-crud-lambda/requirements.txt
Para construir o projeto localmente, execute o seguinte comando:
1 sam build
Este comando construirá localmente o projeto e os arquivos de saída serão salvos em .aws-sam pasta.
Usar uma connection existente string: verifique se você tem a MongoDB connection completa string do SRV com seu nome de usuário e senha incluídos. Certifique-se Lambda de que o possa acessar seu cluster. Para fins de teste, você pode usar
0.0.0.0/0
na sua IP lista de acesso da rede. Na produção, considere a possibilidade de configurar uma VPC conexão de emparelhamento de entre Amazon Web Services VPC a do e a do Atlas VPC. Isso restringirá o acesso público e VPC aceitará somente VPC conexões da MongoDB Atlas sua . Saiba mais sobre na documentação do.Execute o seguinte comando para implementar o aplicação:
Bash
1 sam deploy --guided
Siga as instruções de implantação guiadas:
- Nome da pilha: insira um nome para a sua pilha.
- Região Amazon Web Services : insira sua região preferida.
- Parâmetro ConnectionString: insira sua string de conexão do MongoDB .
- Parâmetro DBName: insira o nome do seu banco de banco de dados MongoDB .
- Parâmetro CollectionName: Insira o nome da sua coleção MongoDB .
Valores de amostra para sistema
1 Setting default arguments for 'sam deploy' 2 ========================================= 3 Stack Name [sam-app]: sam-app-api-mdb 4 AWS Region [us-east-1]: 5 Parameter ConnectionString []: mongodb+srv://test1:test1@demo.mongodb.net/?retryWrites=true&w=majority 6 Parameter DBName [test]: sam-app-api-mdb 7 Parameter CollectionName [test]: microservice-lambda-app 8 #Shows you resources changes to be deployed and require a 'Y' to initiate deploy 9 Confirm changes before deploy [y/N]: y 10 #SAM needs permission to be able to create roles to connect to the resources in your template 11 Allow SAM CLI IAM role creation [Y/n]: y 12 #Preserves the state of previously provisioned resources when an operation fails 13 Disable rollback [y/N]: y 14 CRUDLambda has no authentication. Is this okay? [y/N]: y 15 Save arguments to configuration file [Y/n]: y 16 SAM configuration file [samconfig.toml]: 17 SAM configuration environment [default]:
Aguarde até que a pilha CloudFormation termine de criar a pilha. Após a implementação, você receberá o link do API Gateway nos resultados.
Crie um bucket público S3 para armazenar o código Lambda e restringir o acesso por meio da política de bucket.
1 aws s3api create-bucket --bucket aws-sam-cli-mongodb-app1 --region us-east-1 2 3 aws s3api put-bucket-policy --bucket my-unique-bucket-name --policy '{ 4 "Version": "2012-10-17", 5 "Statement": [ 6 { 7 "Effect": "Allow", 8 "Principal": { 9 "Service": "serverlessrepo.amazonaws.com" 10 }, 11 "Action": "s3:GetObject", 12 "Resource": "arn:aws:s3:::aws-sam-cli-mongodb-app1/*", 13 "Condition" : { 14 "StringEquals": { 15 "aws:SourceAccount": "<aws account id >" 16 } 17 }
Embale o aplicação implantado do modelo de aplicação sem servidor (SAM) no bucket S3 criado nas etapas anteriores da compilação do SAM.
1 sam package --template-file template.yaml --output-template-file packaged.yaml --s3-bucket aws-sam-cli-mongodb-app1
Para publicar seu aplicação como um pacote de modelo de aplicação sem servidor, execute o seguinte comando:
Bash
1 sam publish --template packaged.yml --region us-east-1
Siga as instruções para publicar seu aplicação. Por padrão, seu aplicação será publicado como um aplicativo privado. Após a publicação, você pode convertê-lo em um aplicativo público, se necessário. Para obter orientações detalhadas, consulte a documentação do SAM sobre a publicação de um aplicação.
Use o link do Gateway de API recebido nos resultados do sistema para testar as APIs. Você pode usar o Postman ou qualquer outra ferramenta de criação de solicitações.
- Coleção do Postman: Importe a coleção do Postman
postman/Python-Microservice.postman_collection.json
para o Postman para testar a API.
Use o seguinte comando para limpar todos os recursos do Amazon Web Services criados durante o sistema:
1 sam delete
Consulte o repositório doGithub para resolver problemas comuns encontrados ao usar Amazon Web Services SAM com o MongoDB Atlas.
sam build
: constrói o projeto localmentesam deploy --guided
: implementa o aplicação com prompts guiadossam publish --template packaged.yaml
: publica o aplicação como um pacote SAMsam delete
: exclui o aplicação implementado
Seguindo essas etapas, você pode configurar um ambiente de hospedagem privado para seu aplicação Lambda baseado em microsserviços usando os serviços Amazon Web Services e o MongoDB Atlas. Essa configuração garante uma solução segura, escalável e econômicas para hospedar aplicativos de microsserviços sem servidor.
Experimente o Amazon Web Services API Gateway de do! Para qualquer MongoDB consulta relacionada ao , visite o MongoDB Community Suporte da.
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.