Importa y exporta de forma masiva recursos existentes de Google Cloud
En esta página, se describe el comando config-connector bulk-export
y cómo usarlo para exportar recursos de Google Cloud 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.
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 Google Cloud Identity congcloud
.gcloud services enable cloudasset.googleapis.com
Ejemplo de exportación masiva
En este ejemplo, se crea un PubSubTopic con Google Cloud CLI y, luego, impórtalos 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 recurso de 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 de
config-connector
usa el archivo JSON de Cloud Asset Inventory de las estructuras de datos. Guardar la estructura JSON del recurso de tema en un entorno variable: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 jerarquía de recursos de Google Cloud.
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 tu número de carpeta de 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 la organización de 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
creará un bucket temporal de Cloud Storage en tu nombre. El
bucket se crea en la ubicación predeterminada para los buckets de almacenamiento; US
multirregión. 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
Puedes imprimir la lista de recursos para la herramienta config-connector
junto con los formatos de nombres de recursos si ejecutas 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 archivo de salida opcional que inhabilita la salida estándar. Cuando un elemento , el resultado contiene todo el resultado del comando; cuando un directorio, el directorio contendrá un archivo nuevo para cada recurso en el resultado.--storage-key
: destino del bucket temporal de Cloud Storage para exportar--project
: ID del proyecto de Google Cloud para exportar--folder
: ID de la carpeta de Google Cloud para exportar--organization
: ID de la organización de Google Cloud para exportar.--oauth2-token
: un token OAUTH2 como la identidad de Google Cloud. De forma predeterminada,config-connector
usa el elemento 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 recursos existentes de Google Cloud
- Obtén información sobre Cloud Asset Inventory y Exporta elementos a Cloud Storage.
- Obtén más información sobre los recursos que admite Config Connector.