Détection des API Shadow : API Management

Présentation

Cette page fournit la syntaxe de référence pour gérer la détection d'API Shadow Apigee à partir des API Apigee Management (APIM). La documentation des API Management liées à la détection d'API Shadow, y compris des informations sur chaque champ d'une requête, est disponible aux adresses https://cloud.google.com/apigee/docs/reference/apis/apim/rest et https://cloud.google.com/apigee/docs/reference/apis/apim/rpc

Pour obtenir une présentation de la détection de l'API Shadow et des instructions pour la gérer à l'aide de l'interface utilisateur Apigee dans la console Cloud, consultez la page Détection de l'API Shadow. Pour obtenir des informations sur les comportements généraux et les limites de la détection d'API Shadow, consultez la page Comportements et limites.

Paramètres dans les appels d'API de référence

Les appels d'API de cette page peuvent utiliser les paramètres suivants, qui font référence aux informations de votre compte Apigee (telles que votre projet) ou aux informations utilisées lors de la création de jobs d'observation. Consultez la section Créer des jobs d'observation pour en savoir plus sur chacun de ces champs.

  • OBSERVATION_JOB_LOCATION est un emplacement pour un job d'observation.
  • OBSERVATION_JOB_NAME est un nom de job d'observation.
  • OBSERVATION_SOURCE_LOCATION est un emplacement source pour le job d'observation.
  • OBSERVATION_SOURCE_NAME est un nom de source d'observation.
  • PROJECT est votre projet Apigee.

Créer un job d'observation

La création d'un job d'observation nécessite plusieurs étapes/requêtes API.

  1. Créer une source d'observation : pour créer une source d'observation plutôt que d'utiliser une source existante, envoyez une requête POST au point de terminaison observationSources avec les détails de la source d'observation.
    curl \ https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_SOURCE_LOCATION/observationSources?observation_source_id=OBSERVATION_SOURCE_NAME \
    -X POST \
    -H 'Content-type: application/json' \
    -d @- <<'EOF'
    {
      "gclbObservationSource": {
        "pscNetworkConfigs": [
          {
            "network": "projects/PROJECT/global/networks/{network_name}",
            "subnetwork":"projects/PROJECT/regions/OBSERVATION_SOURCE_LOCATION/subnetworks/{subnet_name}"
          }
        ]
      }
    }
    EOF
    La création d'une source d'observation prend plusieurs minutes et lance une LRO, avec une réponse semblable à celle-ci :
    {
    "name": "projects/{project/locations/OBSERVATION_SOURCE_LOCATION/operations/operation-",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.apim.vl.ApiDiscoveryOperationMetadata",
      "createTime": "",
      "target": "projects/PROJECT/locations/OBSERVATION_SOURCE_LOCATION/observationSources/OBSERVATION_SOURCE_NAME",
      "verb": "create",
      "requestedCancellation": false,
      "apiVersion": "vl"
    },
    "done": false
    }
  2. Pour afficher la source d'observation nouvellement créée :
    curl \
    https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_SOURCE_LOCATION/observationSources/OBSERVATION_SOURCE_NAME
  3. Créer un job d'observation : créez un job qui recherche les API parallèles à l'aide de la source que vous venez de créer :
    curl \
    https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_JOB_LOCATION/observationJobs?observation_job_id=OBSERVATION_JOB_NAME \
    -X POST \
    -H 'Content-type: application/json' \
    -d @- <<'EOF'
    {
      "sources": [
        "projects/PROJECT/locations/OBSERVATION_SOURCE_LOCATION/observationSources/OBSERVATION_SOURCE_NAME"
      ]
    }
    EOF

Activer un job d'observation

Utilisez la commande suivante pour activer un nouveau job d'observation ou un job existant désactivé.

curl https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_JOB_LOCATION/observationJobs/OBSERVATION_JOB_NAME:enable \
-X POST \
-H 'Content-type: application/json' \
-d @- <<'EOF'
{}
EOF

Afficher les API détectées

Pour afficher les API détectées par les jobs d'observation activés, exécutez la commande suivante :

curl https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_JOB_LOCATION/observationJobs/OBSERVATION_JOB_NAME/apiObservations \
-X GET

Gérer les tags dans les résultats d'observation

Pour afficher les tags déjà ajoutés aux résultats :

curl -H "https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_JOB_LOCATION:listApiObservationTags"
  

Pour gérer les tags :

curl -H "Content-Type: appication/json" \
"https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_JOB_LOCATION/observationJobs/OBSERVATION_JOB_NAME/apiObservations:batchEditTags" \
-X POST -d @- <<'EOF'
{
  "requests": [
    {
      "apiObservationId": "API_OBSERVATION_ID",
      "tagActions": [
      {
        "tag": "demo",
        "action": "REMOVE"
      },
      {
        "tag": "Needs Attentions",
        "action": "ADD"
      }]
    }
  ]
}
EOF

Désactiver un job d'observation

Cette requête désactive un job d'observation sans le supprimer.

curl https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_JOB_LOCATION/observationsJobs/OBSERVATION_JOB_NAME:disable \
-X POST \
-H 'Content-type: application/json' \
-d @- <<'EOF'
{
}

Supprimer un job d'observation

Cette requête supprime un job d'observation.

curl -X DELETE https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_JOB_LOCATION/observationJobs/OBSERVATION_JOB_NAME

Supprimer une source d'observation

Cette requête supprime une source d'observation.

curl -X DELETE https://apim.googleapis.com/v1alpha/projects/PROJECT/locations/OBSERVATION_SOURCE_LOCATION/observationSources/OBSERVATION_SOURCE_NAME