Paso 4: Crear una organización

Ya creaste una cuenta y un proyecto de Google Cloud y habilitaste las API. Ahora puedes crear tu organización.

.

Requisitos

Para crear una organización, debes cumplir con una de las siguientes condiciones:

  • Tener una cuenta de Google Cloud. De forma predeterminada, una cuenta de Google Cloud te permitirá crear una organización de Apigee de evaluación no pagada. Las organizaciones de evaluación vencen después de 60 días. En ese momento, se borrará la organización.
  • Tener habilitadas una cuenta de Google Cloud y una suscripción pagada a Apigee dentro de tu proyecto de Google Cloud y tu cuenta de facturación. Una suscripción pagada te permite crear implementaciones completas y escalables de Apigee. Comunícate con Ventas de Apigee para comprar una cuenta pagada y habilitar la suscripción.

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

    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. Crea las siguientes variables de entorno para los elementos de la organización. Los usarás en el comando para crear la organización.
    • PROJECT_ID (Obligatorio) es el proyecto de Google Cloud que deseas vincular a tu nueva organización con entornos híbridos habilitados. Este es el ID que Google generó para ti en el Paso 2: Crea un proyecto de Google Cloud.
      export PROJECT_ID=your_project_id

      Nombre del ID del proyecto con punto final

    • ORG_NAME (Obligatorio) es el ID programático que deseas para tu organización con entornos híbridos habilitados.
      export ORG_NAME=$PROJECT_ID
    • ORG_DISPLAY_NAME (opcional) es el nombre fácil de usar de tu organización. No es necesario que este valor sea único y puede incluir espacios y caracteres especiales. Por ejemplo, “Mi organización híbrida”.
      ORG_DISPLAY_NAME="friendly_name"

      El contenido del nombre de la variable que contenga espacios debe estar entre comillas dobles. Por ejemplo: “Mi organización”

    • ORGANIZATION_DESCRIPTION (Opcional) información acerca de la organización que deseas usar como recordatorio de este propósito. Por ejemplo, “Mi primera organización”.
      ORGANIZATION_DESCRIPTION="description_text"
    • ANALYTICS_REGION (Obligatorio) es la región principal para el almacenamiento de los datos de estadísticas.
      export ANALYTICS_REGION=analytics_region

      En el ejemplo anterior, analytics_region es una de las siguientes opciones:

      asia-northeast1 asia-south1 asia-east1 asia-southeast1
      australia-southeast1 us-central1 us-east1 us-west1
      asia-southeast2 europe-west1 europe-west2

      Elige una región que esté geográficamente cerca o que cumpla con los requisitos de almacenamiento de tu organización.

    • RUNTIMETYPE (Obligatorio) es el tipo de entorno de ejecución de la organización de Apigee, en la que HÍBRIDO es el entorno de ejecución de Apigee Hybrid administrado por el usuario.
      export RUNTIMETYPE=HYBRID
  3. Envía una solicitud POST autenticada a Crea una API de la organización.

    En el siguiente ejemplo, se muestra la estructura de la solicitud que crea una organización:

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "displayName":"'"$ORG_DISPLAY_NAME"'",
        "description":"'"$ORGANIZATION_DESCRIPTION"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'"
      }' \
      "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    En una solicitud de creación exitosa, la API de organizaciones debe responder 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ó Apigee en la solicitud de creación inicial. 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",
        "displayName": "ORG_DISPLAY_NAME",
        "description": "ORGANIZATION_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": {}
        }
      }
    }

    Si no ingresaste una descripción, ese campo no aparecerá en la respuesta.

Ver los detalles de la organización

Puedes ver los detalles de los metadatos de la organización que creaste con una API de Apigee. También puedes usar una API para enumerar todas las organizaciones a las que tu cuenta de Google Cloud tiene acceso. Para realizar estas acciones, debes usar la API de organizaciones.

Antes de probar las API, actualiza el token de autorización:

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

Obtén detalles de la organización

Para obtener detalles sobre una sola organización, haz lo siguiente:

Envía una solicitud GET (sin cuerpo) al siguiente extremo de la API de obtención de organizaciones:

https://apigee.googleapis.com/v1/organizations/org_name

En el siguiente ejemplo, se obtienen detalles sobre la organización $ORG_NAME: en este ejemplo, $ORG_NAME se configura como “apigee-example”.

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.

En el siguiente ejemplo, se muestra una respuesta con detalles sobre la organización apigee-example:

{
  "name": "apigee-example",
  "displayName": "apigee-example-org",
  "description": "Apigee Example Org",
  "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": {}
  }
}

Enumerar organizaciones

Para obtener una lista de todas las organizaciones a las que tiene acceso tu cuenta de Google Cloud, haz lo siguiente:

Envía una solicitud GET (sin cuerpo) al siguiente extremo de la API de enumeración de organizaciones:

https://apigee.googleapis.com/v1/organizations

Por ejemplo:

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

La respuesta a tu solicitud contiene un arreglo de todas las organizaciones habilitadas para la nube híbrida a las que tienes acceso, en formato JSON.

En el siguiente ejemplo, se muestra una respuesta con una sola organización, apigee-example:

{
  "organizations": [
    {
      "organization": "apigee-example",
      "projectIds": [
        "apigee-example"
      ]
    },
    {
      "organization": "apigee-example-2",
      "projectIds": [
        "apigee-example-2"
      ]
    }
  ]
}

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 el siguiente ejemplo, se muestra una respuesta a un error común: el ID de la organización contiene caracteres no permitidos (los caracteres en mayúsculas no están permitidos en los ID de la organización):

{
  "error": {
    "code": 400,
    "message": "invalid Organization ID \"MY-ORG\": \"MY-ORG\" is an invalid Organization ID",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: invalid Organization ID \"MY-ORG\":
          \"My-ORG\" is an invalid Organization ID [google.rpc.error_details_ext]
          { message: \"invalid Organization ID \\\"MY-ORG\\\": \\\"MY-ORG\\\" is an invalid
          Organization ID\" }"
      }
    ]
  }
}

En este caso, puedes cambiar el nombre de la organización con letras en minúscula y reenviar la solicitud.

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.
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 Operaciones para verificar el estado de la operación de larga duración, como se describe en el paso 5.
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.
1 2 3 4 (SIGUIENTE) Paso 5: Crea un grupo de entornos