Importazione ed esportazione collettiva di risorse Google Cloud esistenti
Questa pagina descrive il comando config-connector bulk-export
e come utilizzarlo per
esportare Google Cloud risorse in file YAML di Config Connector
che puoi importare successivamente in Config Connector.
config-connector bulk-export
utilizza la funzionalità Esporta di Cloud Asset Inventory per rilevare le risorse Google Cloud esistenti. Puoi fornire un'esportazione di Cloud Asset Inventory o config-connector
può eseguire l'esportazione per tuo conto.
Cloud Asset Inventory esporta strutture JSON. Ogni struttura contiene il nome della risorsa, il relativo tipo di inventario delle risorse e le risorse predecessore: progetti, cartelle e organizzazione. Per scoprire i tipi supportati da Asset Inventory, consulta Tipi di asset supportati.
Limitazioni
Non tutte le risorse supportano il comando bulk-export
. Per visualizzare un elenco delle risorse supportate, esegui config-connector print-resources
.
Prima di iniziare
Se vuoi utilizzare lo strumento
config-connector
per esportare direttamente da Cloud Asset Inventory, abilita l'API Cloud Asset Inventory nel progetto Google Cloud di Identity congcloud
.gcloud services enable cloudasset.googleapis.com
Esempio di esportazione collettiva
In questo esempio, crei un PubSubTopic con Google Cloud CLI e poi lo importi in Config Connector.
Crea un argomento denominato
sample-topic
con Google Cloud CLI:gcloud pubsub topics create sample-topic
Riceverai una conferma della creazione dell'argomento.
Created topic [projects/PROJECT_ID/topics/sample-topic].
Nell'output,
PROJECT_ID
viene sostituito con il tuo progettoGoogle Cloud .Recupera il nome della risorsa Google Cloud dell'argomento e salvalo in una variabile di ambiente con il comando seguente:
TOPIC_RESOURCE_NAME=$(gcloud pubsub topics describe sample-topic --format "value(name)")
Per identificare gli oggetti, lo strumento
config-connector
utilizza strutture JSON di Cloud Asset Inventory. Salva la struttura JSON dell'asset dell'argomento in una variabile di ambiente:TOPIC_ASSET='{"name":"//pubsub.googleapis.com/'"${TOPIC_RESOURCE_NAME}"'","asset_type":"pubsub.googleapis.com/Topic"}'
Trasferisci l'asset in
config-connector bulk-export
eseguendo questo comando:echo ${TOPIC_ASSET} | config-connector bulk-export
L'output è una risorsa Config Connector in formato YAML.
--- apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: annotations: cnrm.cloud.google.com/project-id: PROJECT_ID name: sample-topic ...
Nell'output,
PROJECT_ID
viene sostituito con il tuo progettoGoogle Cloud .Puoi passare questa risorsa a Config Connector con
kubectl apply -f -
. Per passare la risorsa direttamente, esegui questo comando:echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl apply -f - --namespace CC_NAMESPACE
Sostituisci CC_NAMESPACE con lo spazio dei nomi da cui Config Connector gestisce le risorse.
Config Connector acquisisce la risorsa.
Verifica che Config Connector gestisca la risorsa con
kubectl describe
:kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
Sostituisci
CC_NAMESPACE
con lo spazio dei nomi da cui Config Connector gestisce le risorse.
Pulizia
Puoi eliminare il tuo PubSubTopic con config-connector bulk-export
e
kubectl delete
.
echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl delete -f - --namespace CC_NAMESPACE
Sostituisci CC_NAMESPACE
con lo spazio dei nomi da cui Config Connector
gestisce le risorse.
Individuare le risorse da importare
Quando importi le risorse, puoi eseguire un'esportazione di Cloud Asset Inventory e fornire i risultati a config-connector bulk-export
o chiedere a config-connector bulk-export
di eseguirne una per tuo conto.
Importazione da un'esportazione di Cloud Asset Inventory
Puoi fornire un'esportazione dell'inventario delle risorse fornendo un percorso a un file locale
contenente l'esportazione o reindirizzando i risultati di un'esportazione a config-connector
su STDIN.
Importare da un file locale
Puoi fornire un'esportazione dell'inventario delle risorse a config-connector bulk-export
utilizzando un file locale con il parametro --input
.
config-connector bulk-export --input ASSET_INVENTORY_EXPORT
Sostituisci ASSET_INVENTORY_EXPORT
con il nome file dell'esportazione di Cloud Asset Inventory.
Importazione da STDIN
Per fornire un'esportazione dell'inventario delle risorse su STDIN, reindirizza i risultati di un'esportazione a
config-connector bulk-export
. Ad esempio, se l'esportazione si trova in un file locale denominato
export.json
, invia i contenuti del file a config-connector bulk-export
senza
fornire nessuno dei parametri di esportazione.
cat export.json | config-connector bulk-export
Filtrare un'esportazione dell'inventario degli asset su STDIN
Per filtrare un'esportazione dell'inventario degli asset, puoi utilizzare lo strumento
jq
e la pipe per inserire i risultati in config-connector bulk-export
. Ad esempio, se vuoi importare solo
asset PubSubTopic dal file EXPORT_FILE, esegui il seguente
comando:
cat EXPORT_FILE | jq '. | select( .asset_type == "pubsub.googleapis.com/Topic" )' | config-connector bulk-export
Esportare un inventario con config-connector
Lo strumento config-connector bulk-export
può esportare risorse da una Google Cloud
gerarchia delle risorse.
Esportare il progetto
Per esportare tutte le risorse dal tuo progetto, utilizza il parametro --project
.
config-connector bulk-export --project PROJECT_ID
Sostituisci PROJECT_ID
con il tuo progetto Google Cloud .
Esportare la cartella
Per esportare tutte le risorse da una cartella, utilizza il parametro --folder
.
config-connector bulk-export --folder FOLDER_NUMBER
Sostituisci FOLDER_NUMBER
con il numero della tua cartella Google Cloud .
Esportare l'organizzazione
Per esportare tutte le risorse della tua organizzazione, utilizza il parametro --organization
.
config-connector bulk-export --organization ORGANIZATION_ID
Sostituisci ORGANIZATION_ID
con l' Google Cloud ID organizzazione.
Percorso di Cloud Storage
Il percorso di output dell'esportazione dell'inventario degli asset è un URI Cloud Storage. Quando
config-connector bulk-export
esegue un'esportazione, utilizza un
bucket Cloud Storage. Per impostazione predefinita, config-connector bulk-export
crea un bucket temporaneo. Puoi anche specificare il nome del bucket.
Bucket Cloud Storage temporaneo
Se non fornisci il parametro --storage-key
, config-connector
bulk-export
crea un bucket Cloud Storage temporaneo per tuo conto. Il bucket viene creato nella località predefinita per i bucket di archiviazione: la multi-regione US
. Il bucket viene eliminato al termine dell'esportazione.
Specifica di un bucket temporaneo
Per specificare un bucket, utilizza un URI Cloud Storage con il parametro storage-key
. Se l'URI è solo il nome del bucket, viene generato un nome
per l'oggetto di archiviazione dell'esportazione. Se l'URI è un percorso completo a un oggetto di archiviazione,
viene utilizzato il percorso completo.
config-connector bulk-export --storage-key gs://BUCKET_NAME
Output
L'output del comando config-connector bulk-export
sono
risorse Config Connector in formato YAML. Per impostazione predefinita, il file YAML viene scritto in STDOUT. Puoi indirizzare l'output delle risorse ai file con l'opzione
output
.
Output in un unico file
Quando imposti il parametro --output
, config-connector bulk-export
scrive i risultati in un
unico file se si verifica una delle seguenti condizioni:
- Il file specificato da
output
esiste ed è un fileregular
. - Il file specificato da
output
non esiste e la directory principale rappresentata daoutput
esiste.
Output in una directory
config-connector
scrive i risultati in più file quando il parametro --output
è una directory che termina con /
. config-connector bulk-export
crea un file per risorsa e i nomi dei file corrispondono ai nomi delle risorse.
config-connector bulk-export --project PROJECT_ID --on-error continue --output OUTPUT_DIRECTORY/
Sostituisci PROJECT_ID
con il tuo progetto Google Cloud .
Ad esempio, per generare asset dal progetto my-project
nella directory sample
, esegui questo comando:
config-connector bulk-export --project my-project --on-error continue --output sample/
Opzioni della riga di comando
Il comando config-connector bulk-export
ha le seguenti opzioni:
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
: file di input di Cloud Asset Inventory.--output
: Un percorso del file di output facoltativo che disattiva l'output standard. Quando un file, il risultato contiene tutto l'output comando; quando una directory, la directory conterrà un nuovo file per ogni risorsa nell'output.--storage-key
: Bucket Cloud Storage temporaneo di destinazione per l'esportazione.--project
: Google Cloud ID progetto da esportare--folder
: Google Cloud ID cartella da esportare--organization
: Google Cloud l'ID organizzazione da esportare.--oauth2-token
: un token OAUTH2 come identità Google Cloud . Per impostazione predefinita,config-connector
utilizza le credenziali predefinite di Google Cloud CLI.--on-error
: controlla il comportamento quando si verifica un errore recuperabile. Le opzioni sono "continua", "interrompi" o "ignora".halt
: interrompi l'esecuzione in caso di errore (impostazione predefinita)continue
: continua a elaborare le risorse, stampa l'errore su STDERRignore
: continua a elaborare le risorse e non stampare l'errore
--iam-format
: specifica il tipo di output delle risorse IAM con l'esportazione. Le opzioni sonopolicy
(impostazione predefinita),policymember
onone
.--filter-deleted-iam-members
: specifica se filtrare le entità IAM eliminate. Le opzioni sonotrue
ofalse
. Il valore predefinito èfalse
.--verbose
: attiva il logging dettagliato.
Passaggi successivi
- Scopri come Config Connector acquisisce le risorse Google Cloud esistenti
- Scopri di più su Cloud Asset Inventory e sull'esportazione di asset in Cloud Storage.
- Scopri di più sulle risorse supportate da Config Connector.