Étape 2 : Créez une organisation

Cette étape consiste à créer une organisation Apigee.

Pour créer une organisation et la provisionner, procédez comme suit :

  1. Sur la ligne de commande, obtenez vos identifiants d'authentification gcloud à l'aide de la commande suivante :

    Linux/MacOS

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

    Pour vérifier que votre jeton a été renseigné, utilisez echo, comme le montre l'exemple suivant :

    echo $TOKEN

    Votre jeton doit s'afficher sous forme de chaîne encodée.

    Windows

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

    Pour vérifier que votre jeton a été renseigné, utilisez echo, comme le montre l'exemple suivant :

    echo %TOKEN%

    Votre jeton doit s'afficher sous forme de chaîne encodée.

  2. À l'étape 1, vous avez créé la variable d'environnement PROJECT_ID. Ajoutez les variables d'environnement suivantes :

    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

    Où :

    • ORG_NAME (obligatoire) : cette valeur doit correspondre à l'identifiant PROJECT_ID.
    • ANALYTICS_REGION (obligatoire) : région principale pour le stockage des données d'analyse. Pour obtenir la liste des régions Apigee API Analytics disponibles, consultez la page Emplacements Apigee.
    • RUNTIMETYPE (obligatoire) : doit être défini sur HYBRID.
  3. Appelez l'API Apigee suivante pour créer l'organisation :
    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"

    Si la requête de création aboutit, l'API Organizations renvoie un message semblable à celui-ci :

    {
      "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"
      }
    }

    Où :

    • LONG_RUNNING_OPERATION_ID est l'UUID d'une opération asynchrone de longue durée. Vous pouvez utiliser cet ID pour vérifier l'état de votre demande de création d'organisation (décrite à l'étape 5).
    • org_name est l'ID de votre nouvelle organisation en cours de création.

    Comme l'indique la propriété state dans la réponse, Apigee a commencé à créer la nouvelle organisation. Son état est donc IN_PROGRESS. Ce processus peut prendre plusieurs minutes.

    Si vous recevez un message d'erreur, consultez la section Résoudre des problèmes de création d'organisation.

  4. Enregistrez l'ID de l'opération de longue durée dans une variable d'environnement. Vous en aurez besoin ultérieurement pour des tâches de gestion.

    Syntaxe

    export LONG_RUNNING_OPERATION_ID=LONG_RUNNING_OPERATION_ID

    Exemple

    export LONG_RUNNING_OPERATION_ID=6abc8a72-46de-f9da-bcfe-70d9ab347e4f
  5. Vous pouvez vérifier l'état de l'opération de longue durée dont l'ID a été renvoyé par la requête de création. Pour ce faire, utilisez l'API Operations. Exemple :
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    Les exemples suivants illustrent les réponses possibles à cette requête :

    IN_PROGRESS

    Si l'organisation est toujours en cours de création, Apigee répond avec l'état IN_PROGRESS. Exemple :

    {
      "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"
      }
    }

    Vous devez attendre quelques instants avant de tenter de vérifier que le processus de création est terminé.

    FINISHED

    Une fois l'organisation provisionnée, l'état de l'opération de longue durée est FINISHED. Exemple :

    {
      "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. Vous pouvez utiliser l'API Organizations d'Apigee pour récupérer des informations sur une organisation après sa création. Exemple :

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

    La réponse à votre requête contient des détails sur l'organisation spécifiée, au format 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": {}
      }
    }

Résoudre les problèmes de création d'organisation

Lorsque vous créez une organisation avec l'API Create Organizations, vous pouvez obtenir une réponse d'erreur. Les réponses se présentent comme suit :

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

Le tableau suivant répertorie les erreurs que vous pouvez recevoir et les solutions potentielles lorsque vous essayez de créer une organisation :

Code d'erreur HTTP Erreur HTTP Description
400 Invalid JSON payload received Soit la structure des données de votre requête contient une erreur de syntaxe, soit le chemin d'accès au point de terminaison est incorrect.
400 Invalid organization ID L'ID d'organisation que vous demandez ne peut pas contenir de lettres majuscules ou de caractères spéciaux autres que des traits d'union. Il ne doit contenir que des lettres minuscules, des chiffres et/ou des traits d'union. Il peut comporter jusqu'à 32 caractères.
400 Unsupported analytics region Vous n'avez pas spécifié la valeur de analyticsRegion dans le corps de la requête, ou la valeur que vous avez spécifiée n'est pas l'une des options valides.
400 Does not have an Apigee entitlement Votre projet Google Cloud (que vous avez créé à l'Étape 2 : Créer un projet Google Cloud) n'a pas encore été activé pour le mode hybride. Il peut s'agir d'un problème lié à votre facturation ou à une autre erreur liée à votre compte Google Cloud. Pour en savoir plus, contactez le service commercial d'Apigee.
401 Request had invalid authentication credentials Votre jeton d'authentification gcloud est incorrect ou obsolète, ou vous n'en avez pas inclus dans la requête. Générez un nouveau jeton et renvoyez l'adresse.
403 Permission denied on resource project project_ID Vous avez peut-être envoyé une requête contenant un chemin d'accès ou ID de projet incorrect.
403 Unable to retrieve project information L'organisation n'a pas encore été créée ni provisionnée. Vous pouvez envoyer une requête à l'API Operations pour vérifier l'état de l'opération de longue durée, comme décrit à l'étape 5.
409 Organization already exists Vous avez essayé de créer plusieurs organisations pour le projet Google Cloud. Vous ne pouvez créer qu'une seule organisation par projet.
409 Org proposed_org_name already exists Vous avez essayé de créer une organisation portant le même ID qu'une organisation existante. Les ID d'organisation doivent être uniques pour tous les clients hybrides. Envoyez une nouvelle demande avec un nouvel ID d'organisation proposé. Par exemple, ajoutez une valeur numérique à la fin de l'ID que vous avez essayé précédemment.

Étape suivante

Accédez à l'étape 3 : Créer un groupe d'environnements.