Étape 4 : Créez une organisation

Vous avez créé un compte et un projet Google Cloud, et vous avez activé les API. Vous pouvez maintenant créer votre organisation.

Conditions préalables

Pour créer une organisation, vous devez remplir l'une des conditions suivantes :

  • Posséder un compte d'évaluation Les comptes d'évaluation expirent au bout de 60 jours. Une fois ce délai atteint, l'organisation sera supprimée.
  • Disposer d'un compte payant

Dans le cas contraire, vous devez contacter le service commercial d'Apigee avant de continuer.

Autorisations requises

Le créateur de l'organisation doit disposer au minimum du rôle Administrateur de l'organisation Apigee. Si vous êtes le propriétaire du projet, vous êtes automatiquement autorisé à créer une organisation. Toutefois, si vous déléguez la création de l'organisation à un utilisateur qui n'est pas propriétaire du projet, cet utilisateur doit disposer du rôle "Administrateur de l'organisation Apigee" dans votre projet. Pour obtenir des informations sur l'attribution des rôles, consultez la section Accorder, modifier et révoquer les accès aux ressources.

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

  1. Sur la ligne de commande, obtenez vos identifiants d'authentification gcloud, comme le montre l'exemple suivant :

    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.

    Pour en savoir plus, consultez la section présentation de l'outil de ligne de commande gcloud.

  2. Créez les variables d'environnement suivantes pour les éléments de l'organisation. Vous en aurez besoin dans la commande pour créer l'organisation.
    • PROJECT_ID (obligatoire) est le projet Google Cloud que vous souhaitez associer à votre nouvelle organisation compatible hybride. Il s'agit de l'ID que Google a généré pour vous à l'Étape 2 : Créer un projet Google Cloud.
      export PROJECT_ID=your_project_id

      ID du projet avec point final

    • ORG_NAME (obligatoire) est l'ID programmatique que vous souhaitez pour votre organisation compatible hybride.
      export ORG_NAME=$PROJECT_ID
    • ORG_DISPLAY_NAME (facultatif) est le nom clair de votre organisation. Cette valeur n'a pas besoin d'être unique et peut inclure des espaces et des caractères spéciaux. Par exemple, "Mon organisation hybride".
      ORG_DISPLAY_NAME="friendly_name"

      Les noms de variables contenant des espaces doit être placés entre guillemets doubles. Par exemple : "Mon organisation"

    • ORGANIZATION_DESCRIPTION (facultatif) contient des informations sur l'organisation, que vous souhaitez utiliser comme rappel de son objectif. Par exemple, "Ma première organisation".
      ORGANIZATION_DESCRIPTION="description_text"
    • ANALYTICS_REGION (obligatoire) est la région principale pour le stockage de données d'analyse.
      export ANALYTICS_REGION=analytics_region

      analytics_region est l'un des éléments suivants :

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

      Choisissez une région géographiquement proche ou qui réponde aux exigences de stockage de votre organisation.

    • RUNTIMETYPE (obligatoire) est le type d'exécution de l'organisation Apigee, où HYBRID est un environnement d'exécution Apigee hybrid géré par l'utilisateur.
      export RUNTIMETYPE=HYBRID
  3. Envoyez une requête POST authentifiée à l'API Create Organizations.

    L'exemple suivant montre la structure de requête qui crée une organisation :

    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"

    Pour une requête de création réussie, l'API Organizations doit répondre avec 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 Apigee a été renvoyé dans votre requête de création initiale. 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 (EN_COURS)

    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 (TERMINÉ)

    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",
        "displayName": "display_name",
        "description": "description",
        "createdAt": "1600817805771",
        "lastModifiedAt": "1600817805771",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "us-central1",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL"
      }
    }

    Si vous n'avez pas saisi de description, ce champ n'apparaît pas dans la réponse.

Afficher les informations sur l'organisation

Vous pouvez afficher les détails des métadonnées de l'organisation que vous avez créée à l'aide d'une API Apigee. Vous pouvez également utiliser une API pour répertorier toutes les organisations auxquelles votre compte Google Cloud a accès. Pour effectuer ces actions, vous utilisez l'API Organizations.

Avant d'essayer les API, actualisez votre jeton d'autorisation :

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

Obtenir les détails d'une organisation

Pour obtenir des détails sur une seule organisation :

Envoyez une requête GET (sans corps) au point de terminaison de l'API Get Organizations suivant :

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

L'exemple suivant permet d'obtenir des informations sur l'organisation hybrid-example :

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

La réponse à votre requête contient des détails sur l'organisation spécifiée, au format JSON.

L'exemple suivant montre une réponse avec des détails sur l'organisation hybrid-example :

{
  "name": "organizations/org_name/operations/long_running_operation_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "org_name",
    "state": "FINISHED"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
    "name": "org_name",
    "displayName": "display_name",
    "description": "description",
    "createdAt": "1600817805771",
    "lastModifiedAt": "1600817805771",
    "properties": {
      "property": [
        {
          "name": "features.hybrid.enabled",
          "value": "true"
        },
        {
          "name": "features.mart.connect.enabled",
          "value": "true"
        }
      ]
    },
    "analyticsRegion": "us-central1",
    "runtimeType": "HYBRID",
    "subscriptionType": "TRIAL"
  }
}

Répertorier les organisations

Pour obtenir la liste de toutes les organisations auxquelles votre compte Google Cloud a accès :

Envoyez une requête GET (sans corps) au point de terminaison de l'API List Organizations suivant :

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

Exemple :

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

La réponse à votre requête contient un tableau de toutes les organisations compatibles hybrides auxquelles vous avez accès, au format JSON.

L'exemple suivant montre une réponse avec une seule organisation, hybrid-example :

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

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

L'exemple suivant montre une réponse à une erreur courante. L'ID de l'organisation contient des caractères non autorisés (les majuscules ne sont pas autorisés dans les ID d'organisation) :

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

Dans ce cas, vous pouvez renommer l'organisation en minuscules et renvoyer votre requête.

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 dans la procédure 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.
1 2 3 4 (SUIVANT) Étape 5 : Configurer votre DNS 6