Importer et exporter des ressources Google Cloud existantes de manière groupée
Cette page décrit la commande config-connector bulk-export
et explique comment l'utiliser pour exporter des ressources Google Cloud vers des fichiers YAML Config Connector, que vous pourrez ensuite importer dans Config Connector.
config-connector bulk-export
utilise la fonctionnalité d'exportation de l'inventaire des éléments cloud pour découvrir les ressources Google Cloud existantes. Vous pouvez fournir à config-connector
une exportation de l'inventaire des éléments cloud ou lui demander d'effectuer l'exportation en votre nom.
L'inventaire des éléments cloud exporte des structures JSON. Chaque structure possède le nom de la ressource, son type dans l'inventaire et ses ressources parentes : projets, dossiers et organisation. Pour connaître les types pris en charge par l'inventaire des éléments, consultez l'article Types d'éléments compatibles.
Avant de commencer
Si vous souhaitez utiliser l'outil
config-connector
pour exporter directement depuis l'inventaire des éléments cloud, activez l'API correspondante sur votre projet Google Cloud Identity à l'aide de la commandegcloud
suivante :gcloud services enable cloudasset.googleapis.com
Exemple d'exportation groupée
Dans cet exemple, vous créez un sujet PubSub-Topic avec la Google Cloud CLI, puis vous et importez-le dans Config Connector.
Créez un sujet nommé
sample-topic
avec la Google Cloud CLI :gcloud pubsub topics create sample-topic
Une confirmation indiquant que le sujet a été créé s'affiche.
Created topic [projects/PROJECT_ID/topics/sample-topic].
Dans le résultat,
PROJECT_ID
est remplacé par votre projet Google Cloud.Récupérez le nom de la ressource Google Cloud du sujet et enregistrez-le dans une variable d'environnement à l'aide de la commande suivante :
TOPIC_RESOURCE_NAME=$(gcloud pubsub topics describe sample-topic --format "value(name)")
Pour identifier les objets, l'outil
config-connector
utilise les structures JSON de l'inventaire des éléments cloud. Enregistrez dans une variable d'environnement l'élément sujet sous forme de structure JSON :TOPIC_ASSET='{"name":"//pubsub.googleapis.com/'"${TOPIC_RESOURCE_NAME}"'","asset_type":"pubsub.googleapis.com/Topic"}'
Transmettez l'élément à
config-connector bulk-export
en exécutant la commande suivante :echo ${TOPIC_ASSET} | config-connector bulk-export
Le résultat est une ressource Config Connector au format YAML.
--- apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: annotations: cnrm.cloud.google.com/project-id: PROJECT_ID name: sample-topic ...
Dans le résultat,
PROJECT_ID
est remplacé par votre projet Google Cloud.Vous pouvez transmettre cette ressource à Config Connector à l'aide de la commande
kubectl apply -f -
. Pour transmettre la ressource directement, exécutez la commande suivante :echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl apply -f - --namespace CC_NAMESPACE
Remplacez CC_NAMESPACE par l'espace de noms à partir duquel Config Connector gère les ressources.
Config Connector acquiert la ressource.
Vérifiez que Config Connector gère la ressource à l'aide de la commande
kubectl describe
suivante :kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
Remplacez
CC_NAMESPACE
par l'espace de noms à partir duquel Config Connector gère les ressources.
Nettoyer
Vous pouvez supprimer le sujet PubSubTopic à l'aide de config-connector bulk-export
et kubectl delete
:
echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl delete -f - --namespace CC_NAMESPACE
Remplacez CC_NAMESPACE
par l'espace de noms à partir duquel Config Connector gère les ressources.
Découvrir les ressources à importer
Concernant les ressources à importer, vous pouvez soit effectuer une exportation de l'inventaire des éléments cloud et fournir les résultats à config-connector bulk-export
, soit demander à config-connector bulk-export
qu'il effectue une exportation en votre nom.
Importer à partir d'une exportation de l'inventaire des éléments cloud
Vous pouvez fournir une exportation de l'inventaire des éléments en fournissant un chemin d'accès au fichier local contenant l'exportation ou en transmettant à config-connector
les résultats d'une exportation sur l'entrée standard STDIN.
Importer à partir d'un fichier local
Vous pouvez fournir à config-connector bulk-export
une exportation de l'inventaire des éléments à l'aide d'un fichier local en utilisant le paramètre --input
.
config-connector bulk-export --input ASSET_INVENTORY_EXPORT
Remplacez ASSET_INVENTORY_EXPORT
par le nom de fichier contenant l'exportation de l'inventaire des éléments cloud.
Importer depuis l'entrée standard STDIN
Pour fournir une exportation de l'inventaire des éléments sur STDIN, redirigez les résultats de l'exportation vers config-connector bulk-export
à l'aide d'un tube. Par exemple, si votre exportation se trouve dans un fichier local nommé export.json
, transmettez le contenu de ce fichier à config-connector bulk-export
à l'aide d'un tube sans fournir aucun paramètre d'exportation.
cat export.json | config-connector bulk-export
Filtrer une exportation de l'inventaire des éléments sur STDIN
Pour filtrer une exportation de l'inventaire des éléments, vous pouvez utiliser l'outil jq
et rediriger les résultats vers config-connector bulk-export
à l'aide d'un tube. Par exemple, si vous souhaitez importer uniquement les éléments PubSubTopic du fichier EXPORT_FILE, exécutez la commande suivante :
cat EXPORT_FILE | jq '. | select( .asset_type == "pubsub.googleapis.com/Topic" )' | config-connector bulk-export
Exporter un inventaire avec config-connector
L'outil config-connector bulk-export
peut exporter des ressources à partir d'une hiérarchie de ressources Google Cloud.
Exporter votre projet
Pour exporter toutes les ressources un projet, utilisez le paramètre --project
.
config-connector bulk-export --project PROJECT_ID
Remplacez PROJECT_ID
par votre projet Google Cloud.
Exporter un dossier
Pour exporter toutes les ressources d'un dossier, utilisez le paramètre --folder
.
config-connector bulk-export --folder FOLDER_NUMBER
Remplacez FOLDER_NUMBER
par le numéro de votre dossier Google Cloud.
Exporter une organisation
Pour exporter toutes les ressources d'une organisation, utilisez le paramètre --organization
.
config-connector bulk-export --organization ORGANIZATION_ID
Remplacez ORGANIZATION_ID
par l'ID de votre organisation Google Cloud.
Emplacement Cloud Storage
L'emplacement de sortie de l'exportation de l'inventaire d'éléments est un URI Cloud Storage. Lorsque config-connector bulk-export
effectue une exportation, il utilise un bucket Cloud Storage. Par défaut, config-connector bulk-export
crée un bucket temporaire. Vous pouvez également spécifier le nom du bucket.
Bucket Cloud Storage temporaire
Si vous ne fournissez pas le paramètre --storage-key
, config-connector
bulk-export
crée un bucket Cloud Storage temporaire en votre nom. Le bucket est créé dans l'emplacement par défaut des buckets de stockage, l'emplacement multirégional US
. Le bucket est supprimé lorsque
l'exportation est terminée.
Spécifier un bucket temporaire
Pour spécifier un bucket, utilisez un URI Cloud Storage avec le paramètre storage-key
. Si l'URI est uniquement le nom du bucket, un nom est généré pour l'objet de stockage d'exportation. Si l'URI est un chemin d'accès complet à un objet de stockage, c'est le chemin complet qui est utilisé.
config-connector bulk-export --storage-key gs://BUCKET_NAME
Résultat
Le résultat de la commande config-connector bulk-export
génère des ressources au format YAML utilisables par Config Connector. Par défaut, le fichier YAML est écrit sur la sortie standard STDOUT. Les ressources en sortie peuvent être redirigées vers des fichiers à l'aide de l'option output
.
Sortie vers un seul fichier
Lorsque vous définissez le paramètre --output
, config-connector bulk-export
écrit les résultats dans un fichier unique si l'une des conditions suivantes est remplie :
- Le fichier spécifié par le paramètre
output
existe et est un fichierregular
(véritable). - Le fichier spécifié par paramètre
output
n'existe pas, mais le répertoire parent spécifié dans le même paramètreoutput
existe.
Sortie dans un répertoire
config-connector
écrit ses résultats dans plusieurs fichiers lorsque le paramètre --output
est le chemin d'un répertoire se terminant par /
. Dans ce cas, config-connector bulk-export
crée un fichier par ressource. Les noms de fichiers correspondent aux noms des ressources.
config-connector bulk-export --project PROJECT_ID --on-error continue --output OUTPUT_DIRECTORY/
Remplacez PROJECT_ID
par votre projet Google Cloud.
Par exemple, pour générer les éléments du projet my-project
dans le répertoire sample
, exécutez la commande suivante :
config-connector bulk-export --project my-project --on-error continue --output sample/
Ressources compatibles
Vous pouvez imprimer la liste des ressources de l'outil config-connector
ainsi que les formats de nom de ressource en exécutant la commande suivante:
config-connector print-resources
Options de ligne de commande
La commande config-connector bulk-export
comporte les options suivantes :
config-connector bulk-export
--input FILENAME \
--output FILENAME \
--storage-key gs://BUCKET_NAME \
--project PROJECT_ID \
--folder FOLDER_NUMBER \
--organization ORGANIZATION_ID \
--oauth2-token TOKEN \
--on-error [halt | continue | ignore] \
--iam-format [policy | policymember | none] \
--filter-deleted-iam-members [true | false] \
--verbose
--input
: fichier d'entrée pour l'inventaire des éléments cloud.--output
: chemin d'accès au fichier de sortie facultatif qui désactive le résultat standard. Quand un fichier contient l'intégralité du résultat de la commande ou quand un répertoire contiendra un nouveau fichier pour chaque ressource du résultat.--storage-key
: bucket Cloud Storage temporaire cible pour l'exportation.--project
: ID du projet Google Cloud à exporter.--folder
: ID du dossier Google Cloud à exporter.--organization
: ID de l'organisation Google Cloud à exporter.--oauth2-token
: un jeton OAUTH2 en tant qu'identité Google Cloud. Par défaut,config-connector
utilise les identifiants par défaut de Google Cloud CLI.--on-error
: paramètre contrôlant le comportement lorsqu'une erreur récupérable se produit. Les options possibles sont "continue" (continuer), "halt" (arrêter) ou "ignore" (ignorer).halt
: arrête l'exécution en cas d'erreur (valeur par défaut).continue
: poursuit le traitement des ressources tout en écrivant les erreurs sur STDERR.ignore
: poursuit le traitement des ressources sans écrire les erreurs.
--iam-format
: spécifie le type de sortie des ressources IAM avec l'exportation. Les options sontpolicy
(par défaut),policymember
ounone
.--filter-deleted-iam-members
: indique s'il faut filtrer les comptes principaux IAM supprimés. Les options sonttrue
oufalse
. La valeur par défaut estfalse
.--verbose
: active la journalisation détaillée.
Étape suivante
- Découvrez comment Config Connector acquiert les ressources Google Cloud existantes.
- En savoir plus sur l'inventaire des éléments cloud et sur l'exportation d'éléments vers Cloud Storage
- Découvrez les ressources compatibles avec Config Connector.