es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Se pueden usar variables de entorno en la especificación OpenAPI para Google API Gateway?

Estoy tratando de gestionar la llamada a una función desde diferentes entornos. Las direcciones de las funciones se ven así:
“`
address: https://us-central1-dev-name.cloudfunctions.net/functionName<br>
address: https://us-central1-stg-name.cloudfunctions.net/functionName<br>
address: https://us-central1-prd-name.cloudfunctions.net/functionName

“`
Como puedes ver, el nombre del entorno está cambiando de dev a stg a prd. También me gustaría utilizar variables de región para una mayor escalabilidad.

He consultado esta documentación relevante: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/apigatewayapi_config y https://cloud.google.com/api-gateway/docs/openapi-overview

Me gustaría referenciar variables de entorno que estén configuradas con mi configuración de terraform. ¿Es posible esto con openapi spec / api gateway?

Soy bastante nuevo en este tema, así que cualquier consejo sería muy apreciado. Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible hacer referencia a variables de entorno en su especificación OpenAPI utilizando Terraform. Hay algunos pasos que puede seguir para lograr esto:

    1. Declare sus variables de entorno en su código de Terraform. Por ejemplo, puede crear un archivo de variables llamado “env_vars.tf” con el siguiente contenido:
    variable "function_env" {
      description = "El entorno actual (dev, stg, prd)"
      type        = string
    }
    
    variable "function_region" {
      description = "La región donde se implementa la función"
      type        = string
    }
    
    1. Utilice estas variables en la configuración de su API Gateway. En su especificación OpenAPI de API Gateway, puede hacer referencia a estas variables utilizando la sintaxis “${var.nombre_variable}”. Por ejemplo:
    ...
    "host": "${var.function_env}-name.cloudfunctions.net",
    "basePath": "/v1",
    "schemes": [
      "https"
    ],
    "x-google-backend": {
      "address": "https://${var.function_region}-name.cloudfunctions.net/functionName"
    }
    ...
    

    En este ejemplo, el parámetro “host” se establece en el nombre del entorno seguido de “-name.cloudfunctions.net”, lo cual corresponde a la estructura URL de su Cloud Function. El parámetro “x-google-backend” se establece en la dirección de la Cloud Function con la variable de región añadida utilizando la sintaxis “${var.function_region}”.

    1. Al implementar su API Gateway utilizando Terraform, puede especificar los valores de estas variables utilizando un archivo “terraform.tfvars” o una opción de línea de comando “-var”. Por ejemplo:
    terraform apply -var="function_env=dev" -var="function_region=us-central1"
    

    Esto establecerá la variable de entorno “function_env” en “dev” y la variable de región “function_region” en “us-central1” al implementar su infraestructura. De esta manera, puede cambiar fácilmente entre diferentes entornos y regiones sin modificar la especificación OpenAPI en sí.

    ¡Espero que esto sea útil! Avíseme si tiene alguna otra pregunta.

Comments are closed.