Paso 2: Crear una organización

En este paso, crearás una organización de Apigee.

Para crear una organización nueva y aprovisionarla, haz lo siguiente:

  1. En la línea de comandos, obtén tus credenciales de autenticación de gcloud con el siguiente comando:

    Linux/MacOS

    export TOKEN=$(gcloud auth print-access-token)

    Para verificar que tu token se haya propagado, usa echo, como se muestra en el siguiente ejemplo:

    echo $TOKEN

    Se debería mostrar tu token como una string codificada.

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a

    Para verificar que tu token se haya propagado, usa echo, como se muestra en el siguiente ejemplo:

    echo %TOKEN%

    Se debería mostrar tu token como una string codificada.

  2. En el Paso 1, creaste la variable de entorno PROJECT_ID. Agrega estas variables de entorno:

    Linux/MacOS

    export ORG_NAME=$PROJECT_ID
    export ANALYTICS_REGION="ANALYTICS_REGION"
    export RUNTIMETYPE=HYBRID

    Windows

    set ORG_NAME=$PROJECT_ID
    set ANALYTICS_REGION="ANALYTICS_REGION"
    set RUNTIMETYPE=HYBRID

    Aquí:

    • ORG_NAME (Obligatorio): Este valor debe coincidir con el PROJECT_ID.
    • ANALYTICS_REGION (Obligatorio): La región principal para el almacenamiento de los datos de estadísticas. Para obtener una lista de las regiones de Analytics de la API de Apigee disponibles, consulta Ubicaciones de Apigee.
    • RUNTIMETYPE (Obligatorio): Se debe configurar como HYBRID.
  3. Llama a la siguiente API de Apigee para crear la organización:
    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'"
      }' \
      "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    En una solicitud de creación correcta, la API de entornos responde con un mensaje similar al siguiente:

    {
      "name": "organizations/org_name/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/org_name",
        "state": "IN_PROGRESS"
      }
    }

    Donde:

    • LONG_RUNNING_OPERATION_ID es el UUID de una operación de larga duración asíncrona. Puedes usar este ID para verificar el estado de tu solicitud de creación de organización (descrito en el paso 5).
    • org_name es el ID de la organización nueva que se está creando actualmente.

    Como lo indica la propiedad state en la respuesta, Apigee comenzó a crear la organización nueva, por lo que su estado es IN_PROGRESS. Este proceso puede tardar varios minutos.

    Si recibes un error, consulta Solucionar los problemas de la creación de organizaciones.

  4. Guarda el ID de operación de larga duración en una variable de entorno. Será útil para las tareas de administración futuras.

    Sintaxis

    export LONG_RUNNING_OPERATION_ID=LONG_RUNNING_OPERATION_ID

    Ejemplo

    export LONG_RUNNING_OPERATION_ID=6abc8a72-46de-f9da-bcfe-70d9ab347e4f
  5. Puedes verificar el estado de la operación de larga duración cuyo ID mostró la solicitud de creación. Para hacer esto, usa la API de operaciones. Por ejemplo:
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    En los siguientes ejemplos, se muestran posibles respuestas a esta solicitud:

    IN_PROGRESS

    Si Apigee aún está creando la organización, Apigee responde con un estado de IN_PROGRESS. Por ejemplo:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "IN_PROGRESS"
      }
    }

    Debes esperar un poco más de tiempo antes de intentar verificar que se haya completado el proceso de creación.

    FINISHED

    Cuando se aprovisiona la organización, el estado de la operación de larga duración es FINISHED. Por ejemplo:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "ORG_NAME",
        "description": "",
        "createdAt": "1626237148461",
        "lastModifiedAt": "1626237149384",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "ANALYTICS_REGION",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL",
        "state": "ACTIVE",
        "billingType": "EVALUATION",
        "expiresAt": "1631421073171",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {}
        }
      }
    }
  6. Puedes usar la API de las organizaciones de Apigee para recuperar información sobre una organización después de crearla. Por ejemplo:

    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

    La respuesta a tu solicitud contiene detalles sobre la organización especificada en formato JSON.

    {
      "name": "apigee-example",
      "createdAt": "1626237148461",
      "lastModifiedAt": "1626237149384",
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "HYBRID",
      "subscriptionType": "TRIAL",
      "projectId": "apigee-example",
      "state": "ACTIVE",
      "billingType": "EVALUATION",
      "expiresAt": "1631421073171",
      "addonsConfig": {
        "advancedApiOpsConfig": {},
        "integrationConfig": {},
        "monetizationConfig": {}
      }
    }

Soluciona los problemas de la creación de organizaciones

Cuando creas una organización con la API de creación de organizaciones, es posible que recibas una respuesta de error. Las respuestas se ven de la siguiente manera:

{
  "error": {
    "code": HTTP_error_code,
    "message": "short_error_message",
    "status": "high_level_error_type",
    "details": [
      {
        "@type": "specific_error_type",
        "detail": "expanded_error_description"
      }
    ]
  }
}

En la siguiente tabla, se enumeran los errores que puedes recibir y las posibles soluciones cuando intentas crear una organización nueva:

Código de error HTTP Error HTTP Descripción
400 Invalid JSON payload received La estructura de los datos en tu solicitud contiene un error de sintaxis o la ruta de acceso al extremo es incorrecta.
400 Invalid organization ID El ID de la organización que solicitas no puede contener letras en mayúscula ni caracteres especiales que no sean guiones. Solo debe contener letras en minúscula, números o guiones. Puede tener hasta 32 caracteres de longitud.
400 Unsupported analytics region No especificaste el valor de analyticsRegion en el cuerpo de tu solicitud o el valor que especificaste no es una de las opciones válidas.
400 Does not have an Apigee entitlement El proyecto de Google Cloud (que creaste en el Paso 2: Crea un proyecto de Google Cloud) aún no está habilitado para un entorno híbrido. Esto podría indicar un problema con tu facturación o algún otro error relacionado con tu cuenta de Google Cloud. Para obtener más información, comunícate con Ventas de Apigee.
400 'global' violates constraint in constraints/gcp.resourceLocations on the resource projects/PROJECT_ID, Control Plane Region Intentaste crear una organización que podría no tener derecho a una suscripción PAGADA. Las organizaciones de Apigee Hybrid de tipo EVAL no admiten la residencia de datos.
400 runtimeType HYBRID is not supported for PAYG_V2, use CLOUD instead: invalid argument Intentaste crear una organización en un proyecto con un derecho de "pago por uso" (PAYG). Comunícate con tu representante de cuentas de Google Cloud si tienes preguntas sobre los derechos de la organización.
401 Request had invalid authentication credentials Tu token de autenticación de gcloud es incorrecto o está desactualizado, o no incluiste uno en la solicitud. Genera un token nuevo y vuelve a enviar la dirección.
403 Permission denied on resource project project_ID Es posible que hayas enviado una solicitud que contenía una ruta o un ID del proyecto incorrectos.
403 Unable to retrieve project information La organización aún no se creó ni aprovisionó. Puedes emitir una solicitud a la API de Operations para verificar el estado de la operación de larga duración, como se describe en el paso 5.
403 Permission denied on resource project organizations/PROJECT_ID/deployedIngressConfig Intentaste crear una organización, pero no tiene los derechos correctos. Comunícate con tu representante de cuentas de Google Cloud si tienes preguntas sobre los derechos de la organización.
409 Organization already exists Intentaste crear más de una organización para el proyecto de Google Cloud. Solo se puede crear una organización por proyecto.
409 Org proposed_org_name already exists Intentaste crear una organización que tiene el mismo ID que una que ya existe. Los ID de las organizaciones deben ser únicos para todos los clientes híbridos. Vuelve a enviarla con un nuevo ID de organización propuesto. Por ejemplo, agrega un valor numérico al final del ID que intentaste antes.

Próximo paso

Ve al paso 3: Crea un grupo de entornos.