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-connectorpara 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-topiccon Google Cloud CLI:gcloud pubsub topics create sample-topicRecibirás una confirmación de que se ha creado el tema.
Created topic [projects/PROJECT_ID/topics/sample-topic].En el resultado,
PROJECT_IDse 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-connectorusa 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-exportejecutando el siguiente comando:echo ${TOPIC_ASSET} | config-connector bulk-exportLa 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_IDse 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_NAMESPACESustituye 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_NAMESPACESustituye
CC_NAMESPACEpor 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
outputexiste y es un archivoregular. - El archivo especificado por
outputno existe, pero el directorio principal representado poroutputsí.
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-connectorusa las credenciales predeterminadas de Google Cloud CLI.--on-error: controla el comportamiento cuando se produce un error recuperable. Las opciones son "continuar", "detener" o "ignorar".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),policymemberonone.--filter-deleted-iam-members: especifica si se deben excluir las principales de gestión de identidades y accesos eliminadas. Las opciones sontrueofalse. 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.