En este paso, crearás una organización de Apigee.
Para crear una organización nueva y aprovisionarla, haz lo siguiente:
-
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.
-
En el Paso 1, creaste la variable de entorno
PROJECT_ID
. Agrega las siguientes variables de entorno: Selecciona la pestaña que corresponda al tipo de organización que necesitas: Sin residencia de datos o con Residencia de datos:Sin residencia de datos
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 elPROJECT_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 comoHYBRID
.
Residencia de los datos
Linux/MacOS
export ORG_NAME=$PROJECT_ID
export ANALYTICS_REGION="ANALYTICS_REGION"
export RUNTIMETYPE=HYBRID
export CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
export CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
export BILLING_TYPE="SUBSCRIPTION"
Windows
set ORG_NAME=$PROJECT_ID
set ANALYTICS_REGION="ANALYTICS_REGION"
set RUNTIMETYPE=HYBRID
set CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
set CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
set BILLING_TYPE="SUBSCRIPTION"
Aquí:
ORG_NAME
: Este valor debe coincidir con elPROJECT_ID
.ANALYTICS_REGION
: La región principal para el almacenamiento de los datos de estadísticas. Para obtener una lista de las regiones de estadísticas de la API de Apigee disponibles, consulta Ubicaciones de Apigee.-
RUNTIMETYPE
: Se debe configurar comoHYBRID
. CONTROL_PLANE_LOCATION
: Es la ubicación en la que se almacena el contenido principal del cliente, como los paquetes de proxy. Para obtener una lista, consulta Regiones del plano de control de la API de Apigee disponibles.CONSUMER_DATA_REGION
: Una subregión de la región del plano de control. Debes especificarCONTROL_PLANE_LOCATION
yCONSUMER_DATA_REGION
. Para obtener una lista de las regiones de datos del consumidor disponibles, consulta Ubicaciones de Apigee.BILLING_TYPE
: Se debe configurar como"SUBSCRIPTION"
. Este es el tipo de facturación de tu organización de Apigee Hybrid. Consulta Derechos de suscripción para obtener más información.
Por ejemplo:
export ORG_NAME=$PROJECT_ID
export ANALYTICS_REGION="us-west1"
export RUNTIMETYPE=HYBRID
export CONSUMER_DATA_REGION="us-west1"
export CONTROL_PLANE_LOCATION="us"
export BILLING_TYPE="SUBSCRIPTION"
- Llama a la siguiente API de Apigee para crear la organización:
Sin residencia de datos
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"
Residencia de los datos
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ -d '{ "name":"'"$ORG_NAME"'", "billingType":"'"$BILLING_TYPE"'", "runtimeType":"'"$RUNTIMETYPE"'", "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'", "analyticsRegion":"'"$ANALYTICS_REGION"'" }' \ "https://$CONTROL_PLANE_LOCATION-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 esIN_PROGRESS
. Este proceso puede tardar varios minutos.Si recibes un error, consulta Solucionar los problemas de la creación de organizaciones.
- 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
- 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:
Sin residencia de datos
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": {} } } }
Residencia de los datos
curl -H "Authorization: Bearer $TOKEN" \ "https://$CONTROL_PLANE_LOCATION-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": "SUBSCRIPTION", "apiConsumerDataLocation": "CONSUMER_DATA_REGION", "expiresAt": "1631421073171", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {} } } }
- Puedes usar la API de las organizaciones de Apigee para recuperar información sobre una organización después de crearla.
Por ejemplo:
Sin residencia de datos
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": "PAID", "projectId": "apigee-example", "state": "ACTIVE", "billingType": "SUBSCRIPTION", "expiresAt": "1631421073171", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {} } }
Residencia de los datos
curl -H "Authorization: Bearer $TOKEN" \ "https://$CONTROL_PLANE_LOCATION-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": "PAID", "projectId": "apigee-example", "state": "ACTIVE", "billingType": "SUBSCRIPTION", "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.