Aprovisiona una organización de evaluación sin intercambio de tráfico de VPC

Esta página se aplica a Apigee, pero no a Apigee Hybrid.

Consulta la documentación de Apigee Edge.

En este documento, se explica cómo instalar y configurar una organización de evaluación de Apigee desde la línea de comandos sin intercambio de tráfico de VPC. Las organizaciones de evaluación vencen después de 60 días y pueden tener otras limitaciones. Consulta también Compara organizaciones pagadas y de evaluación.

Limitaciones

La opción de instalación de intercambio de tráfico sin VPC descrita en este documento tiene algunas limitaciones:

Para obtener una lista completa de las características y los enfoques de las herramientas de redes que son compatibles con el intercambio de tráfico que no es de VPC y los que no, consulta Cómo elegir una opción de herramientas de redes.

Resumen de los pasos

Los pasos de aprovisionamiento son los siguientes:

Paso 1: Definir las variables de entorno

Configura gcloud y define variables de entorno para usarlas en pasos posteriores:

  1. Asegúrate de haber completado los requisitos que se enumeran en Requisitos previos.
  2. Debes tener instalada gcloud CLI. Si debes instalarla, consulta Instala gcloud CLI.
  3. Inicializa la CLI de gcloud, como se describe en Inicializa gcloud CLI, o si la CLI ya se inicializó, asegúrate de que el proyecto de Google Cloud que creaste en Requisitos previos sea la siguiente: Proyecto predeterminado para gcloud.
  4. Define las siguientes variables de entorno:
    AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    PROJECT_ID="YOUR_PROJECT_ID"
    RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
    ANALYTICS_REGION="YOUR_ANALYTICS_REGION"

    Aquí:

    • AUTH define el encabezado Authentication con un token del portador. Usarás este encabezado cuando llames a las API de Apigee. Ten en cuenta que el token vence después de un período y, cuando lo hace, puedes volver a generarlo con el mismo comando. Para obtener más información, consulta la página de referencia del comando print-access-token.
    • PROJECT_ID es el ID del proyecto de Cloud que creaste como parte de los requisitos previos.
    • RUNTIME_LOCATION es la ubicación física en la que se encuentra la instancia de Apigee. Para obtener una lista de las ubicaciones disponibles del entorno de ejecución, consulta Ubicaciones de Apigee.

    • ANALYTICS_REGION es la ubicación física en la que se almacenarán los datos analíticos de Apigee. Para obtener una lista de las regiones disponibles de las estadísticas de la API de Apigee, consulta Ubicaciones de Apigee.

      Tanto RUNTIME_LOCATION como ANALYTICS_REGION pueden ser de la misma región, pero no es necesario que sean iguales. Sin embargo, puede haber un beneficio de rendimiento si son iguales.

  5. (Opcional) Para verificar su trabajo, repita los valores que acaba de configurar. Ten en cuenta que cuando quieras usar una variable en tus comandos, deberás colocar un signo de dólar antes de su nombre ($).
    echo $AUTH
    echo $PROJECT_ID
    echo $RUNTIME_LOCATION
    echo $ANALYTICS_REGION
    

    Las respuestas a tus comandos echo deberían verse de la siguiente manera:

    Authorization: Bearer ya29.a123456678940B63hPSAMPLEsampleKKYVsample0f3pWDWZDuH2-hENkNa
    TvgZ1PD977TMvv6edBQPJezdHw040880Ol_LoD5ZDkt-i-knizia_KhA9L20sSvztL81-SAMPLE42ELPMASk2_
    1CxN
    my-cloud-project
    us-west1
    us-west1
    

Paso 2: Habilitar las API

  1. Apigee requiere que habilites varias APIs de Google Cloud. Habilítalas a través de la ejecución del siguiente comando de services enable:

    gcloud services enable apigee.googleapis.com \
      cloudkms.googleapis.com --project=$PROJECT_ID
  2. Si deseas verificar tu trabajo, usa el comando services list para mostrar todas las APIs habilitadas (opcional):

    gcloud services list

    En la respuesta, se muestran todos los servicios habilitados, incluidas las APIs que acabas de habilitar (Apigee, Cloud KMS y Compute Engine).

Paso 3: Crear una organización

Una organización es el contenedor de nivel superior en Apigee. Contiene todos los proxies de API y los recursos relacionados. Para obtener detalles, consulta Información sobre las organizaciones.

  1. Crea una nueva eval org con la API de aprovisionamiento de la organización:
     suppresswarning="true">curl "https://apigee.googleapis.com/v1/projects/$PROJECT_ID:provisionOrganization"  \
      -H "$AUTH" \
      -X POST \
      -H "Content-Type:application/json" \
      -d '{
        "analyticsRegion":"'"$ANALYTICS_REGION"'",
        "runtimeLocation":"'"$RUNTIME_LOCATION"'",
        "disableVpcPeering":"true",
      }'

    Aquí:

    • -d define la carga útil de datos para la solicitud. Esta carga útil debe incluir lo siguiente:
      • ANALYTICS_REGION: Especifica la ubicación física en la que se almacenarán tus datos de estadísticas.

      • RUNTIME_LOCATION: Es la ubicación física donde se encuentra la instancia de Apigee.

      • disableVpcPeering: en este flujo de aprovisionamiento, no usamos el intercambio de tráfico de VPC, por lo que esta marca debe configurarse como true. Predeterminada: false.
  2. Apigee inicia una LRO para crear la organización de evaluación. Esta operación tardará hasta 40 minutos en completarse.

  3. Para verificar el estado de la solicitud de creación, envía una solicitud GET a la API de la lista de organizaciones de Apigee, como se muestra en el siguiente ejemplo:
    curl -H "$AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"

    Si ves esta respuesta, significa que la creación de la organización aún no se completó:

    {
    "error": {
    "code": 403,
    "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)",
    "status": "PERMISSION_DENIED"
    }
    }

    Si se ejecuta de forma correcta, el objeto de respuesta indicará "state": "ACTIVE" y podrás continuar con el siguiente paso.

Paso 4: Configurar el enrutamiento

En este paso, debes configurar cómo las aplicaciones cliente se comunican con Apigee. El tráfico de cliente a Apigee también se llama tráfico “ascendente”. Las opciones de configuración ascendentes incluyen las siguientes:

Tipo de acceso Descripción de los procesos de configuración e implementación
Interno con PSC

Permite solo el acceso interno a tus proxies de API desde cualquiera de tus proyectos de Google Cloud mediante Private Service Connect (PSC).

PSC permite establecer una conexión privada entre un productor de servicios (Apigee) y un consumidor de servicios (el proyecto de VPC con intercambio de tráfico o uno o más proyectos de Cloud que tú controlas). Con este método, las solicitudes pasan a través de un extremo de servicio o un balanceador de cargas interno regional a un único punto de adjunto, llamado adjunto de servicio. Esta configuración permite que tus clientes internos envíen solicitudes de proxy de API de Apigee desde cualquier máquina habilitada para la red.

Externo con PSC

Permite el acceso externo a tus proxies de API con Private Service Connect (PSC).

Utiliza Private Service Connect (PSC) para habilitar la conexión privada entre un productor de servicios (Apigee) y un consumidor de servicios (el proyecto de VPC con intercambio de tráfico o uno o más proyectos de Cloud que tú controlas). Con este método, las solicitudes pasan a través de un balanceador de cargas externo global o un balanceador de cargas externo regional a un único punto de adjunto, llamado adjunto de servicio. Esta configuración te permite enviar solicitudes de proxy de API de Apigee desde cualquier máquina habilitada para la red.

Cada uno de estos enfoques de enrutamiento se presenta en una pestaña en las instrucciones que aparecen a continuación.

Enrutamiento interno (PSC)

En esta sección, se explica cómo permitir solo el acceso interno a tus proxies de API desde cualquiera de tus proyectos de Google Cloud mediante Private Service Connect (PSC).

Tienes opciones para configurar el acceso interno con PSC:

  • Extremo de servicio: Las solicitudes pasan a través de un extremo de servicio a un único punto de adjunto, llamado adjunto de servicio.
  • Balanceador de cargas regional interno: Las solicitudes pasan a través de un balanceador de cargas HTTP(S) regional interno. Consulta también Balanceo de cargas global frente a regional.

Selecciona la pestaña que aparece a continuación para la opción de configuración y sigue los pasos que se indican a continuación:

Extremo de servicio

Crea un extremo de servicio de PSC para el adjunto de servicio

  1. Obtén el adjunto de servicio de la instancia de Apigee:
    curl -i -X GET -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    En el siguiente resultado de muestra, el valor serviceAttachment se muestra con letra negrita:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "runtimeVersion": "1-7-0-20220228-190814",
          "consumerAcceptList": [
            "my-project"
          ],
          "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1"
        }
      ]
    }
  2. Crea un extremo de servicio de PSC que apunte al adjunto de servicio que obtuviste del cuerpo de respuesta de la instancia en el paso anterior, como se explica en Crea un extremo de Private Service Connect.
  3. Anota la dirección IP del extremo del servicio. Necesitarás la dirección IP más adelante cuando pruebes la configuración mediante una llamada a un proxy de API. (Por ejemplo: 10.138.0.2).

El aprovisionamiento de Apigee se completó. Ve a Implementa un proxy de muestra.

Balanceo de cargas regional interno

Paso 8a: Configura variables de entorno

En las instrucciones de esta sección, se usan variables de entorno para hacer referencia a strings que se usan de forma repetida. Asegúrate de haber establecido las variables en Define variables de entorno.

Además, configura las siguientes variables de entorno:

  • Define las siguientes variables de entorno en tu terminal de comando:
    NEG_NAME=YOUR_NEG_NAME"
    TARGET_SERVICE=YOUR_TARGET_SERVICE"
    NETWORK_NAME=YOUR_NETWORK_NAME"
    SUBNET_NAME=YOUR_SUBNET_NAME"

    Aquí:

    • NEG_NAME: un nombre para el grupo de extremos de red.
    • TARGET_SERVICE: el adjunto de servicio al que deseas conectarte. Por ejemplo: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7.
    • NETWORK_NAME: Nombre de la red en la que se crea el NEG (opcional). Si omites este parámetro, se usa la red del proyecto default.
    • SUBNET_NAME: Nombre de la subred que se usa para la conectividad privada al productor. El tamaño de subred puede ser pequeño: el NEG de PSC solo necesita una IP de la subred. Para Apigee, solo se necesita un NEG de PSC por región. Las VMs y otras entidades pueden compartir y usar la subred. Si no se especifica una subred, los extremos de red pueden pertenecer a cualquier subred en la región donde se crea el grupo de extremos de red.
  • Paso 8b: Crear una subred de solo proxy

    gcloud compute networks subnets create testproxyonlysubnet \
      --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE --region=$RUNTIME_REGION --network=$NETWORK_NAME \
      --range=100.0.0.0/24 --project=$PROJECT_ID

    Paso 8c: Crea un grupo de extremos de red (NEG)

    1. Obtén el adjunto de servicio de la instancia que creaste antes:
      curl -i -X GET -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

      En el siguiente resultado de muestra, el valor serviceAttachment se muestra con letra negrita:

      {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "runtimeVersion": "1-7-0-20220228-190814",
          "consumerAcceptList": [
            "my-project"
          ],
          "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
        }
      ]
      }
    2. Crea un NEG de Private Service Connect que apunte al adjunto de servicio que obtuviste del cuerpo de respuesta de la instancia en el paso anterior.

      gcloud compute network-endpoint-groups create $NEG_NAME \
      --network-endpoint-type=private-service-connect \
      --psc-target-service=$TARGET_SERVICE \
      --region=$RUNTIME_LOCATION \
      --project=$PROJECT_ID
      

    Paso 8d: Configurar el balanceador de cargas interno regional

    1. Reserva una dirección IPv4 interna para el balanceador de cargas.
      gcloud compute addresses create ADDRESS_NAME \
      --ip-version=IPV4 --subnet=$SUBNET_NAME \
        --region=$RUNTIME_LOCATION --project=$PROJECT_ID

      Reemplaza ADDRESS_NAME con un nombre para el recurso de dirección IP

      Ejecuta este comando para ver la dirección IP reservada:

      gcloud compute addresses describe ADDRESS_NAME \
      --format="get(address)" --region=RUNTIME_LOCATION --project=$PROJECT_ID
    2. Crea un servicio de backend para el NEG.
      gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=HTTPS \
      --region=$RUNTIME_REGION \
      --project=$PROJECT_ID
    3. Reemplaza BACKEND_SERVICE_NAME por el nombre del servicio de backend.

    4. Agrega el servicio de backend al NEG.
      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --network-endpoint-group=NEG_NAME \
      --region=$RUNTIME_LOCATION \
      --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • BACKEND_SERVICE_NAME: el nombre del servicio de backend.
      • NEG_NAME: es el nombre del grupo de extremos de red.
    5. Debes tener un recurso de certificado SSL para usar en el proxy HTTPS de destino.

      Usa este comando para crear un recurso de certificado SSL autoadministrado. Para crear un certificado SSL autoadministrado, necesitas un archivo de clave privada local y un archivo de certificado local. Si necesitas crear estos archivos, consulta el Paso 1 sobre el uso de certificados SSL autoadministrados.

      gcloud compute ssl-certificates create CERTIFICATE \
      --certificate LB_CERT \
      --private-key LB_PRIVATE_KEY
      --region=RUNTIME_LOCATION --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • CERTIFICATE: un nombre para el certificado
      • LB_CERT: la ruta al archivo del certificado con formato PEM para tu certificado autoadministrado.
      • LB_PRIVATE_KEY: la ruta al archivo de claves privadas con formato PEM para tu certificado autoadministrado.
    6. Crea un mapa de URL para el balanceador de cargas.

      Un mapa de URL debe hacer referencia a un servicio de backend predeterminado. Configura el servicio de backend que acabas de crear como predeterminado.

      gcloud compute url-maps create URL_MAP_NAME \
          --default-service=DEFAULT_BACKEND_SERVICE_NAME \
          --global --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • URL_MAP_NAME: un nombre para el mapa de URL
      • DEFAULT_BACKEND_SERVICE_NAME: el nombre del servicio de backend predeterminado del balanceador de cargas. El valor predeterminado se usa cuando ninguna regla de host coincide con el nombre de host solicitado.
    7. Usa el recurso de certificado SSL para crear un proxy HTTPS de destino.

      gcloud compute target-https-proxies create PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --ssl-certificates=CERTIFICATE \
      --region=$RUNTIME_LOCATION --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • PROXY_NAME: un nombre para el proxy HTTPS de destino.
      • URL_MAP_NAME: el nombre del mapa de URL.
      • CERTIFICATE: el nombre del recurso de certificado.
    8. Crea la regla de reenvío.
      gcloud compute forwarding-rules create FWD_RULE \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --address=ADDRESS_NAME \
      --target-https-proxy=PROXY_NAME \
      --ports=443 \
      --target-https-proxy-region=$RUNTIME_REGION \
      --region=$RUNTIME_REGION
      --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • FWD_RULE: un nombre para la regla de reenvío.
      • ADDRESS_NAME: el recurso de dirección IP que reservaste para usar en la regla de reenvío.
      • PROXY_NAME: el nombre del proxy HTTPS de destino.

    El aprovisionamiento de Apigee se completó. Ve a Implementa un proxy de muestra.

    Enrutamiento externo (PSC)

    En esta sección, se describe cómo configurar el enrutamiento externo mediante Private Service Connect (PSC) para permitir la comunicación entre Apigee y las VPC que controlas. Debes hacer esto para poder enviar una solicitud desde un cliente externo hacia la instancia del entorno de ejecución de Apigee.

    Paso 8b: Crear un NEG y configura el balanceador de cargas

    Puedes crear un balanceador de cargas global o regional.

    Balanceo de cargas global externo

    Configura un balanceador de cargas HTTP(S) externo global (esquema de balanceo de cargas configurado como EXTERNAL_MANAGED).

    Aunque el NEG de Private Service Connect es regional, todos los demás componentes del balanceo de cargas de esta configuración son globales.

    1. Asegúrate de haber configurado las variables de entorno en Define variables de entorno.
    2. Obtén el adjunto de servicio de la instancia que creaste antes:
      curl -i -X GET -H "$AUTH" \
            "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

      En el siguiente resultado de muestra, el valor serviceAttachment se muestra con letra negrita:

      {
            "instances": [
              {
                "name": "us-west1",
                "location": "us-west1",
                "host": "10.82.192.2",
                "port": "443",
                "createdAt": "1645731488019",
                "lastModifiedAt": "1646504754219",
                "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
                "state": "ACTIVE",
                "peeringCidrRange": "SLASH_22",
                "runtimeVersion": "1-7-0-20220228-190814",
                "ipRange": "10.82.192.0/22,10.82.196.0/28",
                "consumerAcceptList": [
                  "875609189304"
                ],
                "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
              }
            ]
          }
    3. Crea un NEG de Private Service Connect que apunte al adjunto de servicio que obtuviste del cuerpo de respuesta de la instancia en el paso anterior.

          gcloud compute network-endpoint-groups create $NEG_NAME \
            --network-endpoint-type=private-service-connect \
            --psc-target-service=$TARGET_SERVICE \
            --region=$RUNTIME_LOCATION \
            --network=NETWORK_NAME \
            --subnet=SUBNET_NAME \
            --project=$PROJECT_ID
          

      Reemplaza lo siguiente:

      • NETWORK_NAME: Nombre de la red en la que se crea el NEG (opcional). Si omites este parámetro, se usa la red del proyecto default.
      • SUBNET_NAME: Nombre de la subred que se usa para la conectividad privada al productor. El tamaño de subred puede ser pequeño: el NEG de PSC solo necesita una IP de la subred. Para Apigee, solo se necesita un NEG de PSC por región. Las VMs y otras entidades pueden compartir y usar la subred. Si no se especifica una subred, los extremos de red pueden pertenecer a cualquier subred en la región donde se crea el grupo de extremos de red.
      • PROJECT_ID El proyecto de Cloud que ya está asociado a tu organización de Apigee o un proyecto de Cloud incluido en consumerAcceptlist cuando se crea la instancia del entorno de ejecución de Apigee.
    4. Reserva una dirección IPv4 externa global para el balanceador de cargas.
      gcloud compute addresses create ADDRESS_NAME \
        --ip-version=IPV4 --global --project=$PROJECT_ID

      Reemplaza ADDRESS_NAME con un nombre para el recurso de dirección IP

      Ejecuta este comando para ver la dirección IP reservada:

      gcloud compute addresses describe ADDRESS_NAME \
        --format="get(address)" --global --project=$PROJECT_ID
    5. Crea un servicio de backend para el NEG.
      gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTPS \
        --global --project=$PROJECT_ID
    6. Reemplaza BACKEND_SERVICE_NAME por el nombre del servicio de backend.

    7. Agrega el servicio de backend al NEG.
      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-region=$REGION \
        --global --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • BACKEND_SERVICE_NAME: el nombre del servicio de backend.
      • NEG_NAME: es el nombre del grupo de extremos de red.
      • REGION: la región del grupo de extremos de red
    8. Crea un mapa de URL para el balanceador de cargas.

      Un mapa de URL debe hacer referencia a un servicio de backend predeterminado. Configura el servicio de backend que acabas de crear como predeterminado.

      gcloud compute url-maps create URL_MAP_NAME \
        --default-service=DEFAULT_BACKEND_SERVICE_NAME \
        --global --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • URL_MAP_NAME: un nombre para el mapa de URL
      • DEFAULT_BACKEND_SERVICE_NAME: el nombre del servicio de backend predeterminado del balanceador de cargas. El valor predeterminado se usa cuando ninguna regla de host coincide con el nombre de host solicitado.
    9. Crea el proxy HTTPS de destino.

      Debes tener un recurso de certificado SSL para usar en el proxy HTTPS de destino. Puedes crear un recurso de certificado SSL mediante un certificado SSL administrado por Google o un certificado SSL autoadministrado. Se recomienda usar certificados administrados por Google, ya que Google Cloud obtiene, administra y renueva estos certificados de manera automática.

      Para crear un certificado administrado por Google, debes tener un dominio.

      Usa este comando para crear un recurso de certificado SSL administrado por Google:

      gcloud compute ssl-certificates create CERTIFICATE \
        --domains DOMAIN --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • CERTIFICATE: un nombre para el certificado
      • DOMAIN: el nombre de dominio del balanceador de cargas

      Usa este comando para crear un recurso de certificado SSL autoadministrado. Para crear un certificado SSL autoadministrado, necesitas un archivo de clave privada local y un archivo de certificado local. Si necesitas crear estos archivos, consulta el Paso 1 sobre el uso de certificados SSL autoadministrados.

      gcloud compute ssl-certificates create CERTIFICATE \
        --certificate LB_CERT \
        --private-key LB_PRIVATE_KEY --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • CERTIFICATE: un nombre para el certificado
      • LB_CERT: la ruta al archivo del certificado con formato PEM para tu certificado autoadministrado.
      • LB_PRIVATE_KEY: la ruta al archivo de claves privadas con formato PEM para tu certificado autoadministrado.

      Usa el recurso de certificado SSL para crear un proxy HTTPS de destino.

      gcloud compute target-https-proxies create PROXY_NAME \
        --url-map=URL_MAP_NAME \
        --ssl-certificates=CERTIFICATE --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • PROXY_NAME: un nombre para el proxy HTTPS de destino.
      • URL_MAP_NAME: el nombre del mapa de URL.
      • CERTIFICATE: el nombre del recurso de certificado.
    10. Crea la regla de reenvío.
      gcloud compute forwarding-rules create FWD_RULE \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --address=ADDRESS_NAME \
        --target-https-proxy=PROXY_NAME \
        --ports=443 \
        --global --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • FWD_RULE: un nombre para la regla de reenvío.
      • ADDRESS_NAME: el recurso de dirección IP que reservaste para usar en la regla de reenvío.
      • PROXY_NAME: el nombre del proxy HTTPS de destino.

    El aprovisionamiento de Apigee se completó. Ve a Implementa un proxy de muestra.

    Balanceo de cargas regional externo

    Configura un balanceador de cargas HTTP(S) regional externo. Consulta también la Descripción general del balanceador de cargas HTTP(S) externo.

    1. Asegúrate de haber establecido las variables en Define variables de entorno.
    2. Crea una subred de solo proxy:
      gcloud compute networks subnets create SUBNET_NAME \
        --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE \
        --region=$RUNTIME_LOCATION --network=NETWORK_NAME \
        --range=100.0.0.0/24 --project=$PROJECT_ID
      • Reemplaza SUBNET_NAME por el nombre de la subred.
      • (Opcional) Reemplaza NETWORK_NAME Nombre de la red en la que se crea la subred. Si omites este parámetro, se usa la red predeterminada del proyecto.
    3. Obtén el adjunto de servicio de la instancia que creaste antes:
      curl -i -X GET -H "$AUTH" \
              "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

      En el siguiente resultado de muestra, el valor serviceAttachment se muestra con letra negrita:

      {
              "instances": [
                {
                  "name": "us-west1",
                  "location": "us-west1",
                  "host": "10.82.192.2",
                  "port": "443",
                  "createdAt": "1645731488019",
                  "lastModifiedAt": "1646504754219",
                  "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
                  "state": "ACTIVE",
                  "peeringCidrRange": "SLASH_22",
                  "runtimeVersion": "1-7-0-20220228-190814",
                  "ipRange": "10.82.192.0/22,10.82.196.0/28",
                  "consumerAcceptList": [
                    "875609189304"
                  ],
                  "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
                }
              ]
            }
    4. Crea un grupo de extremos de red.
      gcloud compute network-endpoint-groups create NEG_NAME \
              --network-endpoint-type=private-service-connect \
              --psc-target-service=TARGET_SERVICE \
              --region=$RUNTIME_LOCATION --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • NEG_NAME: es el nombre del grupo de extremos de red.
      • TARGET_SERVICE: El nombre del adjunto de servicio al que deseas conectarte. Por ejemplo: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7.
    5. Crea un servicio de backend para el NEG.
      gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTPS \
        --region=$RUNTIME_LOCATION  \
        --project=$PROJECT_ID
    6. Reemplaza BACKEND_SERVICE_NAME por el nombre del servicio de backend.

    7. Agrega el servicio de backend al NEG.
      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --region=$RUNTIME_LOCATION  \
        --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • BACKEND_SERVICE_NAME: el nombre del servicio de backend.
      • NEG_NAME: es el nombre del grupo de extremos de red.
    8. Crea un mapa de URL para el balanceador de cargas.

      Un mapa de URL debe hacer referencia a un servicio de backend predeterminado. Configura el servicio de backend que acabas de crear como predeterminado.

      gcloud compute url-maps create URL_MAP_NAME \
        --default-service=DEFAULT_BACKEND_SERVICE_NAME \
        --region=$RUNTIME_LOCATION  \
        --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • URL_MAP_NAME: un nombre para el mapa de URL
      • DEFAULT_BACKEND_SERVICE_NAME: el nombre del servicio de backend predeterminado del balanceador de cargas. El valor predeterminado se usa cuando ninguna regla de host coincide con el nombre de host solicitado.
    9. Crea el proxy HTTPS de destino.

      Debes tener un recurso de certificado SSL para usar en el proxy HTTPS de destino.

      Usa este comando para crear un recurso de certificado SSL autoadministrado. Para crear un certificado SSL autoadministrado, necesitas un archivo de clave privada local y un archivo de certificado local. Si necesitas crear estos archivos, consulta el Paso 1 sobre el uso de certificados SSL autoadministrados.

      gcloud compute ssl-certificates create CERTIFICATE \
        --certificate LB_CERT \
        --private-key LB_PRIVATE_KEY --region=$RUNTIME_LOCATION \
        --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • CERTIFICATE: un nombre para el certificado
      • LB_CERT: la ruta al archivo del certificado con formato PEM para tu certificado autoadministrado.
      • LB_PRIVATE_KEY: la ruta al archivo de claves privadas con formato PEM para tu certificado autoadministrado.
    10. Agrega el dominio al grupo de entornos de Apigee que se creó para ti. El nombre del grupo de entornos es eval-group:
      curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group" \
            -H "$AUTH" \
            -X PATCH \
            -H "Content-Type:application/json" \
            -d '{
              "hostnames":["'"DOMAIN"'"]
            }'
    11. Verifica el estado de la operación del grupo de entornos:
      curl -H "$AUTH" \
            "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group/attachments"
          
    12. Usa el recurso de certificado SSL para crear un proxy HTTPS de destino.

      gcloud compute target-https-proxies create PROXY_NAME \
        --url-map=URL_MAP_NAME --region=$RUNTIME_LOCATION \
        --ssl-certificates=CERTIFICATE --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • PROXY_NAME: un nombre para el proxy HTTPS de destino.
      • URL_MAP_NAME: el nombre del mapa de URL.
      • CERTIFICATE: el nombre del recurso de certificado.
    13. Reserva una dirección externa regional para el balanceador de cargas. Ten en cuenta que el nivel de red se debe establecer en STANDARD.
      gcloud compute addresses create ADDRESS_NAME \
            --region=$RUNTIME_LOCATION --network-tier=STANDARD \
            --project=$PROJECT_ID

      Reemplaza ADDRESS_NAME con un nombre para el recurso de dirección IP

      Ejecuta este comando para ver la dirección IP reservada:

      gcloud compute addresses describe ADDRESS_NAME \
            --format="get(address)" --region=$RUNTIME_LOCATION \
            --project=$PROJECT_ID
    14. Crea la regla de reenvío.
      gcloud compute forwarding-rules create FWD_RULE \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=STANDARD \
        --address=ADDRESS_NAME \
        --target-https-proxy=PROXY_NAME \
        --ports=443  --region=$RUNTIME_LOCATION \
        --target-https-proxy-region=$RUNTIME_LOCATION --project=$PROJECT_ID

      Reemplaza lo siguiente:

      • FWD_RULE: un nombre para la regla de reenvío.
      • ADDRESS_NAME: el recurso de dirección IP que reservaste para usar en la regla de reenvío.
      • PROXY_NAME: el nombre del proxy HTTPS de destino.

    El aprovisionamiento de Apigee se completó. Ve a Llamar al proxy de API de muestra.

    Paso 5: Llamar al proxy de API de muestra

    Durante el aprovisionamiento, se creó y se implementó un proxy de API llamado hello-world. En este paso, probarás la nueva organización de evaluación a través de una llamada al proxy.

    Llama al proxy de API con enrutamiento interno

    Si elegiste un enrutamiento interno con una opción de extremo de servicio en el Paso 5, sigue los pasos que se indican en Llama a un proxy de API solo para uso interno acceso.

    Llama al proxy de API con enrutamiento externo

    Si elegiste la opción de enrutamiento externo en el Paso 5, sigue los pasos de esta sección.

    1. Configura una entrada de DNS para tu dominio. Existen dos formas de realizar esta tarea:
      • En tu registrador, crea un registro A que apunte a tu dominio. Por ejemplo, si tu dominio es sales.example.com y la IP es 10.23.0.2, dirige el registro de sales.example.com a la dirección 10.23.0.2.

        Ejecuta este comando para ver la dirección IP reservada:

        gcloud compute addresses describe ADDRESS_NAME \
            --format="get(address)" --region=$RUNTIME_LOCATION \
            --project=$PROJECT_ID
      • Usa Google Cloud DNS para asignar una URL a una dirección IP.
    2. Confirma que el proxy hello-world esté implementado:
      curl -i -H "$AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/eval/apis/hello-world/revisions/1/deployments"
    3. Llama al proxy de API

      Envía una solicitud al proxy de API desde cualquier máquina habilitada para la red a través de la ejecución del siguiente comando:

      curl -i -H "Host: DOMAIN" \
        https://DOMAIN/hello-world

      En el ejemplo anterior, DOMAIN es el dominio que colocas en el certificado y se agrega al grupo de entornos, como se explica en el Paso 5: Configura el enrutamiento. Si es necesario, puedes usar esta API para obtener el valor DOMAIN del grupo de entornos:

      curl -i -H "$AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"

      Si se realiza de forma correcta, el proxy de API de devuelve la siguiente respuesta:

      Hello, Guest!

      Sugerencias para solucionar problemas:

      Si recibe un error de protocolo de enlace, verifique el estado del certificado SSL. Para obtener más información sobre cómo solucionar problemas de certificados autoadministrados y administrados por Google, consulte Solución de problemas de certificados SSL.

      Asegúrate de que tu dominio registrado tenga un registro A que apunte a la dirección IP de la dirección IPv4 externa global que se creó en el paso 5. Ejecuta este comando para ver la dirección IP reservada:

      gcloud compute addresses describe ADDRESS_NAME \
                    --format="get(address)" --region=$RUNTIME_LOCATION \
                    --project=$PROJECT_ID

      Si no puedes resolver la configuración del dominio, intenta llamar al proxy con este comando:

      curl  -H Host:DOMAIN --resolve \
        DOMAIN:443:EXTERNAL_IP_ADDRESS  \
        https://DOMAIN:443/hello-world -k

    Siguiente: Para obtener más información sobre cómo compilar y, luego, implementar proxies de API, consulta Compila la primera descripción general del proxy de API.