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
- Activez Infra Manager.
- Assurez-vous de disposer des autorisations IAM nécessaires pour exporter les aperçus :
roles/config.admin
. - 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 :
Vérifiez que vous avez installé la Terraform CLI.
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
.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
- Afficher les aperçus de vues et de listes
- Déployez des ressources.
- En savoir plus sur Terraform avec Google Cloud
- Mettre à jour un déploiement
- Affichez l'état d'un déploiement.
- Afficher les ressources déployées
- Supprimez un déploiement.