Importar y exportar en bloque recursos Google Cloud
En esta página se describe el comando config-connector bulk-export
y cómo usarlo para Google Cloud exportar Google Cloud recursos a archivos YAML de Config Connector que puedes importar posteriormente a Config Connector.
config-connector bulk-export
usa la función Export de Inventario de Recursos de Cloud para descubrir los recursos de config-connector bulk-export
. Google Cloud Puede proporcionar una exportación de Cloud Asset Inventory o config-connector
puede realizar la exportación en su nombre.
Inventario de recursos de Cloud exporta estructuras JSON. Cada estructura tiene el nombre del recurso, su tipo de inventario de recursos y sus recursos antecesores: proyectos, carpetas y organización. Para descubrir los tipos admitidos por el inventario de recursos, consulta Tipos de recursos admitidos.
Limitaciones
No todos los recursos admiten el comando bulk-export
. Para obtener una lista de los recursos admitidos, ejecuta config-connector print-resources
.
Antes de empezar
Si quieres usar la herramienta
config-connector
para exportar directamente desde Inventario de Recursos de Cloud, habilita la API Cloud Asset Inventory en el proyecto de tu identidad con Google Cloudgcloud
.gcloud services enable cloudasset.googleapis.com
Ejemplo de exportación en bloque
En este ejemplo, creará un PubSubTopic con la CLI de Google Cloud y, a continuación, lo importará a Config Connector.
Crea un tema llamado
sample-topic
con Google Cloud CLI:gcloud pubsub topics create sample-topic
Recibirás una confirmación de que se ha creado el tema.
Created topic [projects/PROJECT_ID/topics/sample-topic].
En el resultado,
PROJECT_ID
se sustituye por tu Google Cloud proyecto.Obtén el nombre de recurso del tema Google Cloud y guárdalo en una variable de entorno con el siguiente comando:
TOPIC_RESOURCE_NAME=$(gcloud pubsub topics describe sample-topic --format "value(name)")
Para identificar objetos, la herramienta
config-connector
usa estructuras JSON de Inventario de Recursos de Cloud. Guarda la estructura JSON del recurso del tema en una variable de entorno:TOPIC_ASSET='{"name":"//pubsub.googleapis.com/'"${TOPIC_RESOURCE_NAME}"'","asset_type":"pubsub.googleapis.com/Topic"}'
Transfiere el recurso a
config-connector bulk-export
ejecutando el siguiente comando:echo ${TOPIC_ASSET} | config-connector bulk-export
La salida es un recurso de Config Connector en formato YAML.
--- apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: annotations: cnrm.cloud.google.com/project-id: PROJECT_ID name: sample-topic ...
En el resultado,
PROJECT_ID
se sustituye por tu Google Cloud proyecto.Puedes transferir este recurso a Config Connector con
kubectl apply -f -
. Para transferir el recurso directamente, ejecuta el siguiente comando:echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl apply -f - --namespace CC_NAMESPACE
Sustituye CC_NAMESPACE por el espacio de nombres desde el que Config Connector gestiona los recursos.
Config Connector adquiere el recurso.
Confirma que Config Connector gestiona el recurso con
kubectl describe
:kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
Sustituye
CC_NAMESPACE
por el espacio de nombres desde el que Config Connector gestiona los recursos.
Eliminar los recursos utilizados
Puedes eliminar tu PubSubTopic con config-connector bulk-export
y kubectl delete
.
echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl delete -f - --namespace CC_NAMESPACE
Sustituye CC_NAMESPACE
por el espacio de nombres desde el que Config Connector gestiona los recursos.
Descubrir recursos para importar
Al importar recursos, puedes realizar una exportación de Cloud Asset Inventory y proporcionar los resultados a config-connector bulk-export
o pedirle a config-connector bulk-export
que la realice en tu nombre.
Importar desde una exportación de Inventario de Recursos de Cloud
Puede proporcionar una exportación del inventario de recursos indicando la ruta de un archivo local que contenga la exportación o canalizando los resultados de una exportación a config-connector
en STDIN.
Importar desde un archivo local
Puede proporcionar una exportación del inventario de recursos
a config-connector bulk-export
mediante un archivo local con el parámetro --input
.
config-connector bulk-export --input ASSET_INVENTORY_EXPORT
Sustituye ASSET_INVENTORY_EXPORT
por el nombre de archivo de tu exportación de Inventario de Recursos de Cloud.
Importando desde STDIN
Para proporcionar una exportación del inventario de recursos en STDIN, canaliza los resultados de una exportación a
config-connector bulk-export
. Por ejemplo, si la exportación está en un archivo local llamado export.json
, canaliza el contenido del archivo a config-connector bulk-export
sin proporcionar ninguno de los parámetros de exportación.
cat export.json | config-connector bulk-export
Filtrar una exportación de inventario de recursos en STDIN
Para filtrar una exportación del inventario de recursos, puedes usar la herramienta jq
y una tubería para introducir los resultados en config-connector bulk-export
. Por ejemplo, si solo quiere importar recursos de PubSubTopic del archivo EXPORT_FILE, ejecute el siguiente comando:
cat EXPORT_FILE | jq '. | select( .asset_type == "pubsub.googleapis.com/Topic" )' | config-connector bulk-export
Exportar un inventario con config-connector
La herramienta config-connector bulk-export
puede exportar recursos de una Google Cloud
jerarquía de recursos.
Exportar un proyecto
Para exportar todos los recursos de tu proyecto, usa el parámetro --project
.
config-connector bulk-export --project PROJECT_ID
Sustituye PROJECT_ID
por tu Google Cloud proyecto.
Exportar una carpeta
Para exportar todos los recursos de una carpeta, usa el parámetro --folder
.
config-connector bulk-export --folder FOLDER_NUMBER
Sustituye FOLDER_NUMBER
por el Google Cloud número de tu carpeta.
Exportar tu organización
Para exportar todos los recursos de tu organización, usa el parámetro --organization
.
config-connector bulk-export --organization ORGANIZATION_ID
Sustituye ORGANIZATION_ID
por el Google Cloud ID de tu organización.
Ubicación de Cloud Storage
La ubicación de salida de la exportación del inventario de recursos es un URI de Cloud Storage. Cuando config-connector bulk-export
realiza una exportación, usa un segmento de Cloud Storage. De forma predeterminada, config-connector bulk-export
crea un segmento temporal. También puedes especificar el nombre del segmento.
Segmento temporal de Cloud Storage
Si no proporciona el parámetro --storage-key
, config-connector
bulk-export
creará un segmento de Cloud Storage temporal en su nombre. El segmento se crea en la ubicación predeterminada de los segmentos de almacenamiento, que es la US
multirregión. El contenedor se elimina cuando se completa la exportación.
Especificar un segmento temporal
Para especificar un segmento, usa un URI de Cloud Storage con el parámetro storage-key
. Si el URI es solo el nombre del segmento, se genera un nombre para el objeto de almacenamiento de la exportación. Si el URI es una ruta completa a un objeto de almacenamiento, se usa la ruta completa.
config-connector bulk-export --storage-key gs://BUCKET_NAME
Salida
El resultado del comando config-connector bulk-export
son recursos de Config Connector en formato YAML. El archivo YAML se escribe en
STDOUT de forma predeterminada. Puedes dirigir la salida de los recursos a archivos con la opción output
.
Generar un solo archivo
Cuando defines el parámetro --output
, config-connector bulk-export
escribe sus resultados en un solo archivo si se cumple una de las siguientes condiciones:
- El archivo especificado por
output
existe y es un archivoregular
. - El archivo especificado por
output
no existe, pero el directorio principal representado poroutput
sí.
Generar un archivo en un directorio
config-connector
escribe sus resultados en varios archivos cuando el parámetro --output
es un directorio que termina en /
. config-connector bulk-export
crea un archivo por recurso y los nombres de los archivos coinciden con los nombres de los recursos.
config-connector bulk-export --project PROJECT_ID --on-error continue --output OUTPUT_DIRECTORY/
Sustituye PROJECT_ID
por tu Google Cloud proyecto.
Por ejemplo, para generar recursos del proyecto my-project
en el directorio sample
, ejecuta el siguiente comando:
config-connector bulk-export --project my-project --on-error continue --output sample/
Opciones de línea de comandos
El comando config-connector bulk-export
tiene las siguientes opciones:
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
: archivo de entrada de Inventario de Recursos de Cloud.--output
: ruta de archivo de salida opcional que inhabilita la salida estándar. Si se trata de un archivo, el resultado contiene toda la salida del comando. Si se trata de un directorio, este contendrá un archivo nuevo por cada recurso de la salida.--storage-key
: segmento de Cloud Storage temporal de destino para la exportación.--project
: Google Cloud ID de proyecto que se va a exportar--folder
: Google Cloud ID de la carpeta que se va a exportar--organization
: Google Cloud ID de la organización que se va a exportar.--oauth2-token
: un token de OAuth 2 como Google Cloud identidad. De forma predeterminada,config-connector
usa las credenciales predeterminadas de Google Cloud CLI.--on-error
: controla el comportamiento cuando se produce un error recuperable. Las opciones son "continue", "halt" o "ignore".halt
: detiene la ejecución si se produce algún error (valor predeterminado)continue
: continúa procesando los recursos e imprime el error en STDERR.ignore
: continúa procesando los recursos y no imprimas el error
--iam-format
: especifica el tipo de recursos de gestión de identidades y accesos que se incluirán en la exportación. Las opciones sonpolicy
(opción predeterminada),policymember
onone
.--filter-deleted-iam-members
: especifica si se deben excluir los principales de gestión de identidades y accesos eliminados. Las opciones sontrue
ofalse
. El valor predeterminado esfalse
.--verbose
: habilita el registro detallado.
Siguientes pasos
- Consulta cómo adquiere Config Connector Google Cloud recursos
- Consulta información sobre Inventario de Recursos de Cloud y sobre cómo exportar recursos a Cloud Storage.
- Consulta los recursos que admite Config Connector.