Aprovisiona el centro de la API desde la línea de comandos

Esta página se aplica a Apigee y Apigee Hybrid.

En este documento, se explica cómo aprovisionar el concentrador de APIs desde la línea de comandos. Si prefieres aprovisionar el concentrador de APIs con la IU de estilo asistente, consulta Aprovisiona el concentrador de APIs en la consola de Cloud.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Make sure that you have the following role or roles on the project:

    • roles/serviceusage.serviceUsageAdmin
    • roles/cloudkms.admin
    • roles/apihub.provisioningAdmin
    • roles/resourcemanager.projectIamAdmin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Grant access.
    4. En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.

    5. En la lista Seleccionar un rol, elige un rol.
    6. Para otorgar funciones adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
    7. Haz clic en Guardar.

    Resumen de los pasos

    Los pasos de aprovisionamiento son los siguientes:

    1. Paso 1: Habilitar las APIs. Debes habilitar un conjunto de APIs de Google Cloud para que funcione el concentrador de APIs de Apigee.
    2. Paso 2: Crea la identidad de servicio del centro de API de Apigee. La identidad del servicio permite que la instancia del concentrador de APIs llame a las APIs de Google Cloud que requiere para realizar sus operaciones.
    3. Paso 3. Configura la encriptación. Puedes elegir si usar un enfoque de Google-owned and Google-managed encryption key (GMEK) o de clave de encriptación administrada por el cliente (CMEK) para encriptar y desencriptar los datos de la API en reposo. Consulta Comparación de CMEK y Google-owned and Google-managed encryption keysde Google.
    4. Paso 4: Crea la instancia del concentrador de APIs. Para finalizar, debes registrar el proyecto host y crear la instancia del concentrador de APIs.

    Pasos de aprovisionamiento

    Asegúrate de que cumples con los requisitos que se describen en Antes de comenzar.

    Paso 1: Habilitar las APIs

    Para aprovisionar el concentrador de APIs, debes habilitar las siguientes APIs en tu proyecto de Google Cloud :

    1. Habilita las APIs de Google Cloud requeridas mediante la ejecución del siguiente comando services enable:

      gcloud services enable apihub.googleapis.com \
          cloudkms.googleapis.com --project=YOUR_PROJECT_ID

      En el ejemplo anterior, YOUR_PROJECT_ID es el ID del proyecto de Cloud que creaste en Antes de comenzar.

    Paso 2: Crea la identidad de servicio del concentrador de APIs de Apigee

    La identidad del servicio permite que la instancia del concentrador de APIs llame a las APIs de Google Cloud que requiere para realizar sus operaciones.

    1. Crea la identidad del servicio:

      gcloud beta services identity create --service=apihub.googleapis.com \
        --project=YOUR_PROJECT_ID

      En el ejemplo anterior, YOUR_PROJECT_ID es el ID del proyecto de Cloud que creaste en Antes de comenzar.

    2. Verifica que el agente se haya creado correctamente. La respuesta incluye el nombre del agente en el siguiente formato: service-PROJECT_NUMBER@gcp-sa-apihub.iam.gserviceaccount.com. Por ejemplo:

      Service identity created: service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com

      Ten en cuenta que deberás usar esta identidad de servicio en un paso posterior.

    Paso 3: Configura la encriptación

    En este paso, configurarás cómo se administra la encriptación de los datos en tu instancia del concentrador de APIs. Puedes usar una Google-owned and Google-managed encryption key (GMEK) o crear tu propia clave de encriptación administrada por el cliente (CMEK). Consulta Comparación de CMEK y Google-owned and Google-managed encryption keysde Google.

    Pasos de CMEK

    Sigue estos pasos si deseas usar CMEK para la encriptación de datos:

    1. Crea un llavero de claves y una clave de encriptación de la base de datos del entorno de ejecución. Si lo deseas, puedes usar una clave y un llavero de CMEK existentes. Ten en cuenta que la clave se debe crear en la misma ubicación en la que planeas crear la instancia del concentrador de API.

      1. Crea un llavero de claves nuevo:

        El nombre del llavero de claves debe ser único para tu organización. Si creas una segunda región o una posterior, el nombre no puede ser el mismo que el de ningún otro llavero de claves.

        gcloud kms keyrings create KEY_RING_NAME \
          --location KEY_RING_LOCATION --project YOUR_PROJECT_ID

        Aquí:

        • KEY_RING_NAME: Es el nombre del llavero de claves que se creará.
        • KEY_RING_LOCATION: Es la ubicación física del llavero de claves. Esta ubicación debe ser la misma que planeas usar para la instancia del concentrador de API que crearás en un paso posterior. Debes usar una de estas ubicaciones admitidas:

          Descripción de la región Nombre de la región
          Iowa us-central1
          Virginia del Norte us-east4
          Oregón us-west1
          Bélgica europe-west1
          Londres europe-west2
          Singapur asia-southeast1
          Bombay asia-south1
          Sao Paulo southamerica-east1
          Sídney australia-southeast1

        • YOUR_PROJECT_ID: Es el ID del proyecto de Cloud que creaste en Antes de comenzar.
      2. Crea la clave de encriptación y agrégala al llavero de claves:

        gcloud kms keys create KEY_NAME \
          --keyring KEY_RING_NAME \
          --location KEY_LOCATION \
          --purpose "encryption" \
          --project YOUR_PROJECT_ID

        Aquí:

        • KEY_NAME: Es el nombre de la clave de la base de datos que estás creando.
        • KEY_RING_NAME: Es el nombre del llavero de claves que acabas de crear.
        • KEY_LOCATION: Es la ubicación física de la clave. Usa la misma ubicación que usaste para crear el llavero de claves.

      3. Obtén el ID de clave:
        gcloud kms keys list \
          --location=KEY_LOCATION \
          --keyring=KEY_RING_NAME \
          --project=YOUR_PROJECT_ID

        El ID de clave tiene la siguiente sintaxis (similar a una ruta de archivo). Conserva este ID de clave, ya que lo necesitarás en un paso posterior:

        projects/YOUR_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
      4. Otorga acceso al agente de servicio de Apigee para que use la clave nueva:

        gcloud kms keys add-iam-policy-binding KEY_NAME \
          --location KEY_LOCATION \
          --keyring KEY_RING_NAME \
          --member serviceAccount:SERVICE_ACCOUNT \
          --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
          --project YOUR_PROJECT_ID

        En el que SERVICE_ACCOUNT es el ID de la cuenta de servicio que creaste en el paso 2. El ID se verá similar a esto: service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com.

        Este comando vincula la clave al agente de servicio del centro de la API de Apigee.

        Cuando se completa correctamente esta solicitud, gcloud muestra una respuesta similar a la siguiente:

        Updated IAM policy for key [runtime].
        bindings:
        - members:
          - serviceAccount:service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com
          role: roles/cloudkms.cryptoKeyEncrypterDecrypter
        etag: BwWqgEuCuwk=
        version: 1

        Si recibes un error como el que se muestra a continuación, haz lo siguiente:

        INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.

        Asegúrate de haber usado el número del proyecto,y no el nombre, en la dirección de correo electrónico de la cuenta de servicio.

    Pasos de GMEK

    Si deseas usar la GMEK para la encriptación de datos, ve al siguiente paso, Paso 4: Crea la instancia del centro de APIs, ahora. No se requiere ninguna configuración de claves adicional.

    Paso 4: Crea la instancia del concentrador de APIs

    Un proyecto host es el Google Cloud proyecto en el que aprovisionarás el concentrador de APIs de Apigee. Solo puedes aprovisionar una instancia de concentrador de API por proyecto host.

    1. Registra el proyecto host:
      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -d '{
        "gcpProject": "projects/YOUR_PROJECT_ID"
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/hostProjectRegistrations?host_project_registration_id=HOST_ID

      Aquí:

      • YOUR_PROJECT_ID: Es el ID del proyecto de Cloud que creaste en Antes de comenzar.
      • PROJECT_LOCATION: Es la ubicación física (región) en la que deseas alojar la instancia del centro de APIs de Apigee. Debes usar la misma ubicación que usaste para crear la clave y el llavero de claves CMEK. Las regiones admitidas son las siguientes:

        Descripción de la región Nombre de la región
        Iowa us-central1
        Virginia del Norte us-east4
        Oregón us-west1
        Bélgica europe-west1
        Londres europe-west2
        Singapur asia-southeast1
        Bombay asia-south1
        Sao Paulo southamerica-east1
        Sídney australia-southeast1

      • HOST_ID: El nombre del proyecto host.
    2. Crea la instancia del concentrador de APIs:

      Con CMEK

      Si usaste CMEK para la encriptación de datos, ejecuta el siguiente comando:

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" -d '{
        "config":{
          "cmekKeyName":"KEY_NAME",
          "vertexLocation":"VERTEX_LOCATION",
          "encryptionType":"CMEK"
          }
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/apiHubInstances?api_hub_instance_id=INSTANCE_ID

      Aquí:

      • KEY_NAME (obligatorio): Es el nombre completamente calificado de la clave CMEK. Este nombre se mostró cuando se creó la clave. Por ejemplo: projects/YOUR_PROJECT_ID/locations/HOST_LOCATION/hostProjectRegistrations/HOST_ID.
      • VERTEX_LOCATION (opcional): Especifica la ubicación multirregional en la que se almacenarán tus datos de búsqueda basados en Vertex AI, los datos asociados con la función Búsqueda semántica del concentrador de APIs. Puedes usar us o eu para este valor. Si no quieres usar ninguna de estas regiones múltiples, puedes omitir este parámetro para inhabilitar la Búsqueda semántica.
      • encryptionType (obligatorio): Debes usar CMEK.
      • YOUR_PROJECT_ID es el ID del proyecto de Cloud que creaste en Antes de comenzar.
      • PROJECT_LOCATION: Debes usar la misma ubicación que usaste para registrar el proyecto host.
      • INSTANCE_ID: Es el nombre de la instancia del concentrador de APIs. Este valor debe tener entre 4 y 40 caracteres, y los caracteres válidos son /[a-z][A-Z][0-9]-_/.

      Con GMEK

      Si usas GMEK para la encriptación de datos, ejecuta el siguiente comando:

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" -d '{
        "config":{
          "vertexLocation":"VERTEX_LOCATION",
          "encryptionType":"GMEK"
          }
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/apiHubInstances?api_hub_instance_id=INSTANCE_ID

      Aquí:

      • VERTEX_LOCATION (opcional): Especifica la ubicación multirregional en la que se almacenarán tus datos de búsqueda basados en Vertex AI, los datos asociados con la función Búsqueda semántica del concentrador de APIs. Puedes usar us o eu para este valor. Si no quieres usar ninguna de estas regiones múltiples, puedes omitir este parámetro para inhabilitar la Búsqueda semántica.
      • encryptionType debe ser GMEK Si no proporcionas un tipo de encriptación, el valor predeterminado es GMEK.
      • YOUR_PROJECT_ID es el ID del proyecto de Cloud que creaste en Antes de comenzar.
      • PROJECT_LOCATION: Debes usar la misma ubicación que usaste para registrar el proyecto host.
      • INSTANCE_ID: Es el nombre de la instancia del concentrador de APIs. Este valor debe tener entre 4 y 40 caracteres, y los caracteres válidos son /[a-z][A-Z][0-9]-_/.
    3. Paso 5: Crea un archivo adjunto del proyecto del entorno de ejecución (opcional)

      Si aprovisionaste el centro de APIs en un proyecto que tiene proxies de Apigee, realiza este paso opcional para registrar automáticamente los proxies en el centro de APIs.

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" \
        https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/runtimeProjectAttachments?runtimeProjectAttachmentId=YOUR_PROJECT_ID

      Aquí:

      • YOUR_PROJECT_ID es el ID del proyecto de Cloud que creaste en Antes de comenzar.
      • PROJECT_LOCATION: Debes usar la misma ubicación que usaste para registrar el proyecto host.

      ¿Qué sigue?

      Ahora estás listo para comenzar a usar el concentrador de API: