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 exportar recursos de Google Cloud a 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 Google Cloud existentes. 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.
Antes de comenzar
Si quieres usar la herramienta de
config-connector
para exportar directamente desde Cloud Asset Inventory, habilita la API de Cloud Asset Inventory en tu proyecto de Identity 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-topic
con Google Cloud CLI:gcloud pubsub topics create sample-topic
Recibirás la confirmación de que se creó el tema.
Created topic [projects/PROJECT_ID/topics/sample-topic].
En el resultado,
PROJECT_ID
se reemplaza por el proyecto de Google Cloud.Obtén el nombre del Google Cloud recurso 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-connector
usa 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-export
mediante la ejecución del siguiente comando:echo ${TOPIC_ASSET} | config-connector bulk-export
El 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_ID
se reemplaza por el proyecto de Google 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_NAMESPACE
Reemplaza 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_NAMESPACE
Reemplaza
CC_NAMESPACE
con 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
con el proyecto de Google Cloud.
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 el Google Cloud número de carpeta.
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 Google Cloud ID de tu organización.
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:
output
especifica el archivo que existe y es un archivoregular
.output
especifica 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
con el proyecto de Google Cloud.
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/
Recursos admitidos
Para imprimir la lista de recursos de la herramienta config-connector
junto con los formatos de nombre de recurso, ejecuta el siguiente comando:
config-connector print-resources
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. Cuando es un archivo, el resultado contiene todos los resultados del comando. Cuando 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 que se exportará--folder
: Google Cloud ID de la carpeta para exportar--organization
: Google Cloud ID de la organización que se exportará.--oauth2-token
: Un token OAUTH2 como la identidad de Google Cloud . 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 “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),policymember
onone
.--filter-deleted-iam-members
: Especifica si se deben filtrar las principales de IAM borradas. Las opciones sontrue
ofalse
. El valor predeterminado esfalse
.--verbose
: Habilita el registro detallado.
¿Qué sigue?
- Lee sobre cómo Config Connector adquiere los Google Cloud recursos 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.