Importa y exporta de forma masiva recursos Google Cloud existentes
En esta página, se describe el comando config-connector bulk-export y cómo usarlo para Google Cloud recursos de exportación en archivos YAML de Config Connector, que luego puedes importar a Config Connector.
config-connector bulk-export usa la funcionalidad Exportar de Cloud Asset Inventory para descubrir los recursos existentes de Google Cloud . Puedes proporcionar una exportación de Cloud Asset Inventory o config-connector puede realizar la exportación en tu nombre.
Cloud Asset Inventory exporta estructuras JSON. Cada estructura tiene el nombre del recurso, su tipo de inventario de elementos y sus recursos principales: proyectos, carpetas y organización. Para descubrir los tipos que admite el inventario de elementos, consulta Tipos de elementos 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 comenzar
Si quieres usar la herramienta de
config-connectorpara exportar directamente desde Cloud Asset Inventory, habilita la API de Cloud Asset Inventory en tu proyecto de identidad de Google Cloudcongcloud.gcloud services enable cloudasset.googleapis.com
Ejemplo de exportación masiva
En este ejemplo, crearás un PubSubTopic con Google Cloud CLI y, luego, lo importarás a Config Connector.
Crea un tema llamado
sample-topiccon Google Cloud CLI:gcloud pubsub topics create sample-topicRecibirás la confirmación de que se creó el tema.
Created topic [projects/PROJECT_ID/topics/sample-topic].En el resultado,
PROJECT_IDse reemplaza por tu proyecto deGoogle Cloud .Obtén el nombre del recurso Google Cloud del tema 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 Cloud Asset Inventory. Guarda la estructura JSON del activo del tema en una variable de entorno:TOPIC_ASSET='{"name":"//pubsub.googleapis.com/'"${TOPIC_RESOURCE_NAME}"'","asset_type":"pubsub.googleapis.com/Topic"}'Pasa el elemento a
config-connector bulk-exportmediante la ejecución del siguiente comando:echo ${TOPIC_ASSET} | config-connector bulk-exportEl resultado es un recurso 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 reemplaza por tu proyecto deGoogle Cloud .Puedes pasar este recurso a Config Connector con
kubectl apply -f -. Para pasar el recurso de forma directa, ejecuta el siguiente comando:echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl apply -f - --namespace CC_NAMESPACEReemplaza CC_NAMESPACE con el espacio de nombres que administra Config Connector.
Config Connector adquiere el recurso.
Confirma que Config Connector administre el recurso con
kubectl describe:kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACEReemplaza
CC_NAMESPACEcon el espacio de nombres que administra Config Connector.
Realice una limpieza
Puedes borrar tu PubSubTopic con config-connector bulk-export y kubectl delete.
echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl delete -f - --namespace CC_NAMESPACE
Reemplaza CC_NAMESPACE con el espacio de nombres que administra Config Connector.
Descubre recursos para importar
Cuando importas recursos, puedes realizar una exportación de Cloud Asset Inventory y proporcionar los resultados a config-connector bulk-export o hacer que config-connector bulk-export realice uno en tu nombre.
Importa desde una exportación de Cloud Asset Inventory
Puedes proporcionar una exportación de inventario de elementos si proporcionas una ruta a un archivo local que contiene la exportación o canaliza los resultados de una exportación a config-connector en STDIN.
Importa desde un archivo local
Puedes proporcionar una exportación de inventario de elementos a config-connector bulk-export mediante un archivo local con el parámetro --input.
config-connector bulk-export --input ASSET_INVENTORY_EXPORT
Reemplaza ASSET_INVENTORY_EXPORT por el nombre de archivo de exportación de Cloud Asset Inventory.
Importa desde STDIN
Para proporcionar una exportación de inventario de activos en STDIN, canaliza los resultados de una exportación a config-connector bulk-export. Por ejemplo, si tu exportación se encuentra 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
Cómo filtrar una exportación de Asset Inventory en STDIN
Para filtrar una exportación de inventario de recursos, puedes usar la canalización y la herramienta jq para ingresar los resultados en config-connector bulk-export. Por ejemplo, si solo deseas importar elementos de PubSubTopic del archivo EXPORT_FILE, ejecuta el siguiente comando:
cat EXPORT_FILE | jq '. | select( .asset_type == "pubsub.googleapis.com/Topic" )' | config-connector bulk-export
Cómo exportar un inventario con config-connector
La herramienta de config-connector bulk-export puede exportar recursos desde una Google Cloud
jerarquía de recursos.
Exporta tu proyecto
Para exportar todos los recursos de tu proyecto, usa el parámetro --project.
config-connector bulk-export --project PROJECT_ID
Reemplaza PROJECT_ID por tu Google Cloud proyecto.
Exportar tu carpeta
Para exportar todos los recursos de una carpeta, usa el parámetro --folder.
config-connector bulk-export --folder FOLDER_NUMBER
Reemplaza FOLDER_NUMBER por tu número de carpeta Google Cloud .
Exporta tu organización
Para exportar todos los recursos de tu organización, usa el parámetro --organization.
config-connector bulk-export --organization ORGANIZATION_ID
Reemplaza ORGANIZATION_ID por el ID de tu organización Google Cloud .
Ubicación de Cloud Storage
La ubicación de salida de la exportación del inventario de elementos es un URI de Cloud Storage. Cuando config-connector bulk-export realiza una exportación, usa un bucket de Cloud Storage. De forma predeterminada, config-connector bulk-export crea un bucket temporal. También puedes especificar el nombre del bucket.
Bucket temporal de Cloud Storage
Si no proporcionas el parámetro --storage-key, config-connector
bulk-export crea un bucket temporal de Cloud Storage en tu nombre. El bucket se crea en la ubicación predeterminada para los buckets de almacenamiento: la multirregión US. El bucket se borra cuando se completa la exportación.
Especifica un bucket temporal
Para especificar un bucket, usa un URI de Cloud Storage con el parámetro storage-key. Si el URI es solo el nombre del bucket, se genera un nombre para el objeto de almacenamiento de exportación. Si el URI es una ruta de acceso completa a un objeto de almacenamiento, se usa la ruta de acceso completa.
config-connector bulk-export --storage-key gs://BUCKET_NAME
Salida
El resultado del comando config-connector bulk-export es los 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 los archivos con la opción output.
Salida a un solo archivo
Cuando configuras el parámetro --output, config-connector bulk-export escribe sus resultados en un solo archivo si se cumple una de las siguientes condiciones:
outputespecifica el archivo que existe y es un archivoregular.outputespecifica el archivo que no existe y existe el directorio superior que representaoutput.
Salida a 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 archivo coinciden con los nombres de sus recursos.
config-connector bulk-export --project PROJECT_ID --on-error continue --output OUTPUT_DIRECTORY/
Reemplaza PROJECT_ID por tu Google Cloud proyecto.
Por ejemplo, para enviar elementos del proyecto my-project al 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 Cloud Asset Inventory--output: Es una ruta de acceso opcional al archivo de salida que inhabilita el resultado estándar. Si es un archivo, el resultado contendrá todos los resultados del comando; si es un directorio, el directorio contendrá un archivo nuevo para cada recurso del resultado.--storage-key: destino del bucket temporal de Cloud Storage para exportar--project: Google Cloud ID del proyecto para exportar--folder: Google Cloud ID de la carpeta que se exportará--organization:ID de la organización de Google Cloud que se exportará.--oauth2-token: Un token de OAuth 2 como la identidad de Google Cloud . 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 de cualquier error (predeterminado)continue: continúa procesando los recursos, imprime el error en STDERRignore: Continúa procesando los recursos y no imprime el error
--iam-format: especifica el tipo de resultado de los recursos de IAM con tu exportación. Las opciones sonpolicy(predeterminado),policymemberonone.--filter-deleted-iam-members: Especifica si se deben filtrar las principales de IAM borradas. Las opciones sontrueofalse. El valor predeterminado esfalse.--verbose: Habilita el registro detallado.
¿Qué sigue?
- Lee sobre cómo Config Connector adquiere recursos Google Cloud existentes
- Obtén información sobre Cloud Asset Inventory y Exporta elementos a Cloud Storage.
- Obtén información sobre los recursos que admite Config Connector.