API Gateway Terraform de automóveis de automóveis automáticos da OpenAPI especificações

O problema você escreveu suas especificações OpenAPI. É lindo, bem documentado e descreve sua API perfeitamente. Mas agora você precisa implantá -lo no AWS API Gateway, e isso significa escrever Terraform.Again. pela quinta vez este mês. hclResource “aws_apigatewayv2_api” “pagamentos_api” {name = “pagamentos-api” protocol_type = “http”} resource “aws_apigatewayv2_route” “pagamentos_post” {api_id = aws_apwayv2_apte ” “Integrações/$ {aws_apigatewayv2_integration.payments.id}”} Resource “aws_apigatewayv2_integration” “pagamentos” {api_id = aws_apigatewayv2_api.payments_api.id integration_type = “http_apxy” Saia do modo de tela completa SONE FAMÍLIO? 3.0.3 Informações: Título: Serviço de pagamento API Versão: 1.0.0 X Service: Pagamentos # Caminhos de dica de infraestrutura: /Process: Post: Resumo: Processar pagamento de taxa X-Limit: # Infraestrutura Configuração Solicitações de Pagamento. Pagamento-api.yaml -P AWS-A API Gateway é ativa, com limitação de taxa, roteamento e toda a Terraforma que você não precisava escrever. Como funciona a ferramenta (gateway StrichE) segue um simples pipeline: Pipelines de impressão e modelo de impressão, PAPELATRATURATIMENTETRATURATIMENTETIMENTETIMENTETIMENTETRATIMENTETRATIMENTE, PATEMATRATURATIMENTO, PATEMURTRATRATRATURATIMENTETRATURATIMENTETRATIMENTETRATIMENTETRATIMENTETRATIMENTE, PATEMATRATIMENTO, Modelo canônico → Momentos de plataforma → Terra-mema-forma → Extensões: TypeScript // Parsing simplificado lógica const = aguarda parseopenapi (‘pagamento-api.yaml’);[‘x-service’] || ‘padrão’; Rotas const = extractroutes (spec.paths); const ratelimits = extractratelimits (spec.paths); Entre no modo de tela cheia de saída do modo de tela cheia gerar infraestrutura Use modelos de guidão para criar um módulo limpo TerraMorm: HCl# Gerado Main.TF “{{Service}} _ Service” {Source = “./modules/Service” Service_name = “{{Service}}” Routes = [
{{#each routes}}
{
path = “{{path}}”
method = “{{method}}”
{{#if rateLimit}}
rate_limit = {{rateLimit.requests}}
burst_limit = {{rateLimit.burst}}
{{/if}}
}{{#unless @last}},{{/unless}}
{{/each}}
]
} Digite o modo de tela de tela cheia de tela cheia de tela cheia de areia de trabalho Terraform padrão – Nada mágico, apenas automatizado: Bash Terraform Init Terraform Plan Terraform Aplicar o padrão de gateway unificado A parte interessante não está apenas gerando configurações básicas de gateway de API. Está resolvendo o problema “Múltiplos microsserviços, um gateway”. Em vez de implantar gateways separados para cada serviço: bash# vários serviços através de um único gateway ./striche.sh implant -s auth-api.yaml, pagamentos-api.yaml, ordens-api.yaml -P Aws Result: One API Gateway com roteamento inteligente: post/auth/login → Auth-lotes Post/Payments/Payments/Payments/Payments/Payments/Payments/Payments/Pagamentos… O back-end entra no modo de saída da tela cheia de tela cheia em um único ponto final com limitação e monitoramento da taxa consolidada. Proteção X-Service: Auth # Rota para aut-end essas extensões se traduzem diretamente para os recursos do Terraform: hclResource “aws_apigatewayv2_route” “auth_login” {api_id = aws_apigatewayv2_api.main.id route_key = “pós /auth /login” tlottlettings {route_key = “post /auth /login” tlottleghttings {route_key = “pós /auth /login” tlottleghttings {route_key = “pós /auth /login” throttleghttleghttings: mode Exit fullscreen mode Real-World BenefitsAfter using this approach for several microservices deployments:Time Savings: What used to take 30-45 minutes of Terraform writing now takes 2 minutesConsistency: Every API Gateway follows the same patterns and best practicesSingle Source of Truth: API documentation and infrastructure config live togetherEasy Updates: Change the spec, redeploy, infrastructure updates automaticallyGenerated vs Hand-Written Terraforma A saída é o TerraForm padrão que você poderia ter escrito manualmente: out/ ├── main.tf # limpo e legível configuração raiz ├── variables.tf # entradas parametrizadas ├── Terraform.tfvars # Valores específicos de serviço ├─ Muitos. main.tf ├── variáveis.tf └── Outputs.TF Digite Modo de tela cheia Modo de tela cheia sem provedores personalizados, sem abstrações estranhas. Apenas o Terraform bem estruturado que segue as convenções da comunidade. Quando isso faz com que a abordagem do Sensethis funcione bem quando: você tem várias APIs com a infraestrutura semelhante PatternSyour Team mantém as especificações do OpenAPI, de qualquer maneira, você deseja constituir o que está sendo o que há de implantação de limitação e roteamento de que o tipo de implantação de implantação de uso não é provável que o uso de implantação de API não seja que o tipo de implantação de API não seja um único, que não é possível que o uso de implantação de implantação de API não seja uma pessoa que se aproxima, que não é possível que seja a implantação de implantação de API, que não é possível que a implantação de Api. No Github: Bash Git clone Striche -gatewaynpm install ./striche.sh implant -s specs/paging -service.yaml -p aws entra no modo de tela cheia de tela cheia no modo AWS (API Gateway V2), com o GCP e o Azure planejado. Sua especificação OpenAPI já descreve o comportamento da sua API – por que não deixar que ela descreva a infraestrutura também? Estamos nos movendo para um mundo onde a infraestrutura é mais declarativa e menos manual. Tratar as especificações da API como definições de infraestrutura parece uma evolução natural.

Fonte

Você pode ter perdido