Exporter et afficher les résultats de l'aperçu

Cette page explique comment exporter et examiner les résultats d'un aperçu. Un aperçu décrit les actions permettant d'activer une configuration Terraform spécifique. Avant de créer ou de mettre à jour un déploiement, vous pouvez le prévisualiser pour vérifier les modifications prévues.

Si vous n'avez pas encore créé l'aperçu que vous souhaitez afficher, consultez Prévisualiser un déploiement.

Dans cette page, nous partons du principe que vous connaissez Terraform. Pour en savoir plus, consultez Terraform et Infrastructure Manager.

Avant de commencer

  1. Activez Infra Manager.
  2. Assurez-vous de disposer des autorisations IAM nécessaires pour exporter les aperçus : roles/config.admin.
  3. Créez un déploiement d'aperçu.

Exporter les résultats de l'aperçu

Pour examiner les résultats d'un aperçu, commencez par les exporter. Affichez ensuite les résultats exportés à l'aide d'un outil approprié.

Pour exporter un aperçu, son état doit être SUCCEEDED ou STALE. Vous pouvez afficher l'état actuel d'un aperçu à l'aide des commandes describe ou list.

Exportez les résultats d'un aperçu et enregistrez-les localement à l'aide de la commande suivante :

gcloud infra-manager previews export projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID

Remplacez :

  • PROJECT_ID : ID du projet dans lequel Infrastructure Manager s'exécute.
  • LOCATION : emplacement d'exécution d'Infra Manager. Pour obtenir la liste des emplacements valides, consultez Emplacements Infrastructure Manager.
  • PREVIEW_ID : identifiant de l'aperçu que vous spécifiez. Pour en savoir plus sur les contraintes liées à l'identifiant de l'aperçu, consultez Nom de l'aperçu.

Afficher les résultats de l'aperçu

Les résultats sont exportés dans deux formats : le fichier de plan binaire et la représentation JSON. Vous pouvez utiliser l'un ou l'autre format pour examiner les résultats. Pour afficher les résultats, utilisez un outil adapté au format.

Examiner le fichier de plan binaire

Pour afficher le fichier de plan binaire :

  1. Vérifiez que vous avez installé la Terraform CLI.

  2. Vérifiez que la configuration Terraform que vous avez utilisée pour créer l'aperçu est présente localement et initialisée avec terraform init.

  3. Imprimez le plan proposé à l'aide de terraform show.

Examiner la représentation JSON

Pour afficher la représentation JSON, vous pouvez utiliser votre IDE ou des outils tels que jq.

Pour appliquer les contraintes de règles, vous pouvez utiliser la représentation JSON avec des outils tels que Terraform vet.

Afficher les détails des modifications et de la dérive des ressources

Vous pouvez utiliser les aperçus pour afficher la dérive des ressources pour votre déploiement. L'affichage de la dérive des ressources pour vos déploiements est utile pour vérifier que les modifications apportées à vos configurations sont intentionnelles et pour résumer comment votre déploiement changera lorsque votre déploiement sera mis à jour avec un aperçu particulier.

Lorsque vous créez un aperçu, vous utilisez l'API Infra Manager pour afficher les modifications apportées à vos ressources lorsque vous mettez à jour vos déploiements.

Afficher la dérive des ressources

Pour afficher la dérive des ressources, appelez ListResourceDrifts :

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts"

Remplacez :

  • PROJECT_ID : identifiant du projet Google Cloud dans lequel se trouve votre déploiement en prévisualisation.
  • LOCATION : région ou zone de votre déploiement en preview.
  • PREVIEW_ID : identifiant de votre déploiement d'aperçu.

Le résultat doit ressembler à ceci :

{
    "resourceDrifts": [
        {
            "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts/RESOURCE_DRIFT_ID",
            "terraformInfo": {
                "address": "google_resource_type.resource_name",
                "type": "google_resource_type",
                "resourceName": "resource_name",
                "provider": "registry.terraform.io/hashicorp/google"
            },
            "propertyDrifts": [
                {
                    "path": "$.json_path_to_property_field",
                    "before": "config-defined-state",
                    "after": "remote-state"
                }
            ]
        }
    ]
}

Afficher les détails d'une dérive

Pour afficher les détails d'une dérive, appelez GetResourceDrift :

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts/RESOURCE_DRIFT_ID"

Remplacez :

  • PROJECT_ID : identifiant du projet Google Cloud dans lequel se trouve votre déploiement en prévisualisation.
  • LOCATION : région ou zone de votre déploiement en preview.
  • PREVIEW_ID : identifiant de votre déploiement d'aperçu.
  • RESOURCE_DRIFT_ID : identifiant de votre dérive.

Le résultat doit ressembler à ceci :

{
    "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceDrifts/RESOURCE_DRIFT_ID",
    "terraformInfo": {
        "address": "google_resource_type.resource_name",
        "type": "google_resource_type",
        "resourceName": "resource_name",
        "provider": "registry.terraform.io/hashicorp/google"
    },
    "propertyDrifts": [
        {
            "path": "$.json_path_to_property_field",
            "before": "config-defined-state",
            "after": "remote-state"
        }
    ]
}

Prévisualiser les modifications apportées aux ressources

Vous pouvez utiliser les aperçus pour vérifier comment vos ressources seront modifiées si vous mettez à jour un déploiement à partir de votre aperçu.

Afficher les modifications apportées aux ressources

Pour voir l'impact de votre déploiement d'aperçu sur vos ressources, appelez ListResourceChanges :

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges"

Remplacez :

  • PROJECT_ID : identifiant du projet Google Cloud dans lequel se trouve votre déploiement en prévisualisation.
  • LOCATION : région ou zone de votre déploiement en preview.
  • PREVIEW_ID : identifiant de votre déploiement d'aperçu.
  • RESOURCE_CHANGE_ID : identifiant de la modification de votre ressource.

Le résultat doit ressembler à ceci :

{
    "resourceChanges": [
        {
            "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges/RESOURCE_CHANGE_ID",
            "terraformInfo": {
                "address": "google_resource_type.resource_name",
                "type": "google_resource_type",
                "resourceName": "resource_name",
                "provider": "registry.terraform.io/hashicorp/google",
                "actions": [
                    "update"
                ]
            },
            "intent": "UPDATE",
            "propertyChanges": [
                {
                    "path": "$.json_path_to_property_field1",
                    "before": "true"
                },
                {
                    "path": "$.json_path_to_property_field2",
                    "before": "old value",
                    "after": "new value"
                }
            ]
        }
    ]
}

Afficher les détails d'une modification de ressource

Pour afficher les détails d'une modification de ressource, appelez GetResourceChange :

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
"https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges/RESOURCE_CHANGE_ID"

Remplacez :

  • PROJECT_ID : identifiant du projet Google Cloud dans lequel se trouve votre déploiement en prévisualisation.
  • LOCATION : région ou zone de votre déploiement en preview.
  • PREVIEW_ID : identifiant de votre déploiement d'aperçu.
  • RESOURCE_CHANGE_ID : identifiant de la modification de votre ressource.

Le résultat doit ressembler à ceci :

{
    "name": "projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID/resourceChanges/RESOURCE_CHANGE_ID",
    "terraformInfo": {
        "address": "google_resource_type.resource_name",
        "type": "google_resource_type",
        "resourceName": "resource_name",
        "provider": "registry.terraform.io/hashicorp/google",
        "actions": [
            "update"
        ]
    },
    "intent": "UPDATE",
    "propertyChanges": [
        {
            "path": "$.json_path_to_property_field1",
            "before": "true"
        },
        {
            "path": "$.json_path_to_property_field2",
            "before": "old value",
            "after": "new value"
        }
    ]
}

Étapes suivantes