En este tema, se muestra cómo exportar los metadatos de activo de tu organización, carpeta o proyecto a una tabla de BigQuery y, luego, ejecutar un análisis de datos en tu inventario. BigQuery brinda una experiencia similar a SQL para que los usuarios analicen datos y generen estadísticas significativas sin usar secuencias de comandos personalizadas.
Antes de comenzar
Antes de comenzar, completa los pasos que se indican a continuación.
Habilita la API de Cloud Asset Inventory en el proyecto en el que ejecutarás los comandos de la API.
Configura los permisos necesarios para llamar a la API de Cloud Asset Inventory mediante la CLI de gcloud o la API.
Completa los siguientes pasos para configurar el entorno.
gcloud CLI
Si quieres configurar tu entorno para usar gcloud CLI a fin de llamar a la API de Cloud Asset Inventory, instala Google Cloud CLI en tu cliente local.
REST
Para configurar tu entorno a fin de llamar a la API de Cloud Asset Inventory con el comando
curl
, completa los siguientes pasos.Confirma que tienes acceso al comando
curl
.Asegúrate de otorgar a tu cuenta uno de los siguientes roles en tu proyecto, organización o carpeta.
Función de visualizador de Cloud Asset (
roles/cloudasset.viewer
)Función básica de propietario (
roles/owner
)
Si exportas metadatos de un proyecto a otro, asegúrate de que la cuenta de servicio predeterminada de Cloud Asset Inventory del proyecto de exportación exista y tenga los permisos correctos.
Limitaciones
Cuando exportes el resumen de un elemento, ten en cuenta lo siguiente:
No se admiten las tablas de BigQuery encriptadas con claves personalizadas de Cloud Key Management Service (Cloud KMS).
No se admite agregar el resultado de la exportación a una tabla existente, a menos que exportes a una tabla con particiones. La tabla de destino debe estar vacía o debes reemplazarla. Para reemplazarlo, usa la marca
--output-bigquery-force
con gcloud CLI o usaforce
con la API de REST.Los tipos de recursos de Google Kubernetes Engine (GKE), excepto
container.googleapis.com/Cluster
ycontainer.googleapis.com/NodePool
, no son compatibles cuando se exporta a tablas separadas por tipo de recurso.Si la tabla a la que exportarás ya existe y a la que ya se está exportando, se mostrará un error
400
.
Configura el esquema de BigQuery para la exportación
A cada tabla de BigQuery se define en un esquema que describe los nombres de las columnas, los tipos de datos y otra información. Configurar el tipo de contenido durante la exportación determina el esquema para tu tabla.
Recurso o sin especificar: Cuando configuras el tipo de contenido en
RESOURCE
o no lo especificas, y estableces la marcaper-asset-type
enfalse
o no la usas, se crea una tabla de BigQuery que tiene el siguiente esquema.Esquema de recursos
[ { "name": "name", "type": "STRING", "mode": "NULLABLE" }, { "name": "asset_type", "type": "STRING", "mode": "NULLABLE" }, { "name": "resource", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "name": "version", "type": "STRING", "mode": "NULLABLE" }, { "name": "discovery_document_uri", "type": "STRING", "mode": "NULLABLE" }, { "name": "discovery_name", "type": "STRING", "mode": "NULLABLE" }, { "name": "resource_url", "type": "STRING", "mode": "NULLABLE" }, { "name": "parent", "type": "STRING", "mode": "NULLABLE" }, { "name": "data", "type": "STRING", "mode": "NULLABLE" }, { "name": "location", "type": "STRING", "mode": "NULLABLE" } ] }, { "name": "ancestors", "type": "STRING", "mode": "REPEATED" }, { "name": "update_time", "type": "TIMESTAMP", "mode": "NULLABLE" } ]
La columna
resource.data
son los metadatos de recursos representados como una string JSON.Cuando configuras el tipo de contenido en
RESOURCE
o no configuras el tipo de contenido y estableces la marcaper-asset-type
entrue
, creas tablas separadas por tipo de recurso. El esquema de cada tabla incluye columnas de tipo RECORD asignadas a los campos anidados en el campoResource.data
de ese tipo de recurso (hasta los 15 niveles anidados que admite BigQuery). Para ver tablas de ejemplo de BigQuery por tipo, consulta projects/export-assets-examples/datasets/structured_export.Política de IAM: Cuando configuras el tipo de contenido como
IAM_POLICY
en la API de REST oiam-policy
en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.Esquema de política de IAM
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "version", "mode": "NULLABLE", "type": "INTEGER" }, { "fields": [ { "name": "role", "mode": "NULLABLE", "type": "STRING" }, { "name": "members", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "expression", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "location", "mode": "NULLABLE", "type": "STRING" } ], "name": "condition", "mode": "NULLABLE", "type": "RECORD" } ], "name": "bindings", "mode": "REPEATED", "type": "RECORD" }, { "fields": [ { "name": "service", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "log_type", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "exempted_members", "mode": "REPEATED", "type": "STRING" } ], "name": "audit_log_configs", "mode": "REPEATED", "type": "RECORD" } ], "name": "audit_configs", "mode": "REPEATED", "type": "RECORD" }, { "name": "etag", "mode": "NULLABLE", "type": "STRING" } ], "name": "iam_policy", "mode": "NULLABLE", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Política de la organización: Cuando configuras el tipo de contenido como
ORG_POLICY
en la API de REST oorg-policy
en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.Esquema de políticas de la organización
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "version", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "constraint", "mode": "NULLABLE", "type": "STRING" }, { "name": "etag", "mode": "NULLABLE", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" }, { "fields": [ { "name": "allowed_values", "mode": "REPEATED", "type": "STRING" }, { "name": "denied_values", "mode": "REPEATED", "type": "STRING" }, { "name": "all_values", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "suggested_value", "mode": "NULLABLE", "type": "STRING" }, { "name": "inherit_from_parent", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "list_policy", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "enforced", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "boolean_policy", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "_present", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "restore_default", "mode": "NULLABLE", "type": "RECORD" } ], "name": "org_policy", "mode": "REPEATED", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Política de VPCSC: Cuando configuras el tipo de contenido como
ACCESS_POLICY
en la API de REST oaccess-policy
en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.Esquema de la política de VPCSC
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "parent", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "scopes", "mode": "REPEATED", "type": "STRING" }, { "name": "etag", "mode": "NULLABLE", "type": "STRING" } ], "name": "access_policy", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "fields": [ { "name": "ip_subnetworks", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "require_screenlock", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "allowed_encryption_statuses", "mode": "REPEATED", "type": "INTEGER" }, { "fields": [ { "name": "os_type", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "minimum_version", "mode": "NULLABLE", "type": "STRING" }, { "name": "require_verified_chrome_os", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "os_constraints", "mode": "REPEATED", "type": "RECORD" }, { "name": "allowed_device_management_levels", "mode": "REPEATED", "type": "INTEGER" }, { "name": "require_admin_approval", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "require_corp_owned", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "device_policy", "mode": "NULLABLE", "type": "RECORD" }, { "name": "required_access_levels", "mode": "REPEATED", "type": "STRING" }, { "name": "negate", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "members", "mode": "REPEATED", "type": "STRING" }, { "name": "regions", "mode": "REPEATED", "type": "STRING" } ], "name": "conditions", "mode": "REPEATED", "type": "RECORD" }, { "name": "combining_function", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "basic", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "expression", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "location", "mode": "NULLABLE", "type": "STRING" } ], "name": "expr", "mode": "NULLABLE", "type": "RECORD" } ], "name": "custom", "mode": "NULLABLE", "type": "RECORD" } ], "name": "access_level", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "perimeter_type", "mode": "NULLABLE", "type": "INTEGER" }, { "fields": [ { "name": "resources", "mode": "REPEATED", "type": "STRING" }, { "name": "access_levels", "mode": "REPEATED", "type": "STRING" }, { "name": "restricted_services", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "enable_restriction", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "allowed_services", "mode": "REPEATED", "type": "STRING" } ], "name": "vpc_accessible_services", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "fields": [ { "name": "access_level", "mode": "NULLABLE", "type": "STRING" }, { "name": "resource", "mode": "NULLABLE", "type": "STRING" } ], "name": "sources", "mode": "REPEATED", "type": "RECORD" }, { "name": "identities", "mode": "REPEATED", "type": "STRING" }, { "name": "identity_type", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "ingress_from", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "service_name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "method", "mode": "NULLABLE", "type": "STRING" }, { "name": "permission", "mode": "NULLABLE", "type": "STRING" } ], "name": "method_selectors", "mode": "REPEATED", "type": "RECORD" } ], "name": "operations", "mode": "REPEATED", "type": "RECORD" }, { "name": "resources", "mode": "REPEATED", "type": "STRING" } ], "name": "ingress_to", "mode": "NULLABLE", "type": "RECORD" } ], "name": "ingress_policies", "mode": "REPEATED", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "identities", "mode": "REPEATED", "type": "STRING" }, { "name": "identity_type", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "egress_from", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "resources", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "service_name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "method", "mode": "NULLABLE", "type": "STRING" }, { "name": "permission", "mode": "NULLABLE", "type": "STRING" } ], "name": "method_selectors", "mode": "REPEATED", "type": "RECORD" } ], "name": "operations", "mode": "REPEATED", "type": "RECORD" }, { "name": "external_resources", "mode": "REPEATED", "type": "STRING" } ], "name": "egress_to", "mode": "NULLABLE", "type": "RECORD" } ], "name": "egress_policies", "mode": "REPEATED", "type": "RECORD" } ], "name": "status", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "resources", "mode": "REPEATED", "type": "STRING" }, { "name": "access_levels", "mode": "REPEATED", "type": "STRING" }, { "name": "restricted_services", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "enable_restriction", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "allowed_services", "mode": "REPEATED", "type": "STRING" } ], "name": "vpc_accessible_services", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "fields": [ { "name": "access_level", "mode": "NULLABLE", "type": "STRING" }, { "name": "resource", "mode": "NULLABLE", "type": "STRING" } ], "name": "sources", "mode": "REPEATED", "type": "RECORD" }, { "name": "identities", "mode": "REPEATED", "type": "STRING" }, { "name": "identity_type", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "ingress_from", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "service_name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "method", "mode": "NULLABLE", "type": "STRING" }, { "name": "permission", "mode": "NULLABLE", "type": "STRING" } ], "name": "method_selectors", "mode": "REPEATED", "type": "RECORD" } ], "name": "operations", "mode": "REPEATED", "type": "RECORD" }, { "name": "resources", "mode": "REPEATED", "type": "STRING" } ], "name": "ingress_to", "mode": "NULLABLE", "type": "RECORD" } ], "name": "ingress_policies", "mode": "REPEATED", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "identities", "mode": "REPEATED", "type": "STRING" }, { "name": "identity_type", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "egress_from", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "resources", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "service_name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "method", "mode": "NULLABLE", "type": "STRING" }, { "name": "permission", "mode": "NULLABLE", "type": "STRING" } ], "name": "method_selectors", "mode": "REPEATED", "type": "RECORD" } ], "name": "operations", "mode": "REPEATED", "type": "RECORD" }, { "name": "external_resources", "mode": "REPEATED", "type": "STRING" } ], "name": "egress_to", "mode": "NULLABLE", "type": "RECORD" } ], "name": "egress_policies", "mode": "REPEATED", "type": "RECORD" } ], "name": "spec", "mode": "NULLABLE", "type": "RECORD" }, { "name": "use_explicit_dry_run_spec", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "service_perimeter", "mode": "NULLABLE", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Inventario de instancias de OSConfig: cuando configuras el tipo de contenido como
OS_INVENTORY
en la API de REST oos-inventory
en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.Esquema del inventario del SO
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "hostname", "mode": "NULLABLE", "type": "STRING" }, { "name": "long_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "short_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "kernel_version", "mode": "NULLABLE", "type": "STRING" }, { "name": "kernel_release", "mode": "NULLABLE", "type": "STRING" }, { "name": "osconfig_agent_version", "mode": "NULLABLE", "type": "STRING" } ], "name": "os_info", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "key", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "id", "mode": "NULLABLE", "type": "STRING" }, { "name": "origin_type", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "create_time", "mode": "NULLABLE", "type": "TIMESTAMP" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" }, { "name": "type", "mode": "NULLABLE", "type": "INTEGER" }, { "fields": [ { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "yum_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "apt_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "zypper_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "googet_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "patch_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "category", "mode": "NULLABLE", "type": "STRING" }, { "name": "severity", "mode": "NULLABLE", "type": "STRING" }, { "name": "summary", "mode": "NULLABLE", "type": "STRING" } ], "name": "zypper_patch", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "id", "mode": "NULLABLE", "type": "STRING" }, { "name": "name", "mode": "NULLABLE", "type": "STRING" } ], "name": "categories", "mode": "REPEATED", "type": "RECORD" }, { "name": "kb_article_ids", "mode": "REPEATED", "type": "STRING" }, { "name": "support_url", "mode": "NULLABLE", "type": "STRING" }, { "name": "more_info_urls", "mode": "REPEATED", "type": "STRING" }, { "name": "update_id", "mode": "NULLABLE", "type": "STRING" }, { "name": "revision_number", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "last_deployment_change_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "wua_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "caption", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "hot_fix_id", "mode": "NULLABLE", "type": "STRING" }, { "name": "install_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "qfe_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "cos_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "display_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "display_version", "mode": "NULLABLE", "type": "STRING" }, { "name": "publisher", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "year", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "month", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "day", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "install_date", "mode": "NULLABLE", "type": "RECORD" }, { "name": "help_link", "mode": "NULLABLE", "type": "STRING" } ], "name": "windows_application", "mode": "NULLABLE", "type": "RECORD" } ], "name": "installed_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "yum_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "apt_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "zypper_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "googet_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "patch_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "category", "mode": "NULLABLE", "type": "STRING" }, { "name": "severity", "mode": "NULLABLE", "type": "STRING" }, { "name": "summary", "mode": "NULLABLE", "type": "STRING" } ], "name": "zypper_patch", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "id", "mode": "NULLABLE", "type": "STRING" }, { "name": "name", "mode": "NULLABLE", "type": "STRING" } ], "name": "categories", "mode": "REPEATED", "type": "RECORD" }, { "name": "kb_article_ids", "mode": "REPEATED", "type": "STRING" }, { "name": "support_url", "mode": "NULLABLE", "type": "STRING" }, { "name": "more_info_urls", "mode": "REPEATED", "type": "STRING" }, { "name": "update_id", "mode": "NULLABLE", "type": "STRING" }, { "name": "revision_number", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "last_deployment_change_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "wua_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "caption", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "hot_fix_id", "mode": "NULLABLE", "type": "STRING" }, { "name": "install_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "qfe_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "cos_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "display_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "display_version", "mode": "NULLABLE", "type": "STRING" }, { "name": "publisher", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "year", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "month", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "day", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "install_date", "mode": "NULLABLE", "type": "RECORD" }, { "name": "help_link", "mode": "NULLABLE", "type": "STRING" } ], "name": "windows_application", "mode": "NULLABLE", "type": "RECORD" } ], "name": "available_package", "mode": "NULLABLE", "type": "RECORD" } ], "name": "value", "mode": "NULLABLE", "type": "RECORD" } ], "name": "items", "mode": "REPEATED", "type": "RECORD" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "os_inventory", "mode": "NULLABLE", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Relación: Cuando configuras el tipo de contenido como
RELATIONSHIP
en la API de REST orelationship
en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.Esquema de relación
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "asset", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "relationship_type", "mode": "NULLABLE", "type": "STRING" } ], "name": "related_asset", "mode": "NULLABLE", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Exporta una instantánea del recurso a BigQuery
Exportar recursos en una marca de tiempo determinada
Para exportar una instantánea de elementos en una marca de tiempo determinada a una tabla de BigQuery llamada TABLE_NAME
, realiza una de las siguientes solicitudes.
gcloud
Proyectos
gcloud asset export \
--project=PROJECT_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force
Ingresa los siguientes valores:
PROJECT_ID
por el ID del proyecto cuyos metadatos deseas exportar.BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo. El tipo de contenidoaccess-policy
solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: La tabla a la que exportas los metadatos. Si no existe, se crea.
Otras marcas:
--output-bigquery-force
: Reemplaza la tabla de destino si existe.
Carpetas
gcloud asset export \
--folder=FOLDER_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force
Ingresa los siguientes valores:
FOLDER_ID
: El ID de la carpeta cuyos metadatos deseas exportar.Cómo encontrar un ID de carpeta de Google Cloud
Consola
Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción
--format
para ver más información sobre las carpetas encontradas.Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo. El tipo de contenidoaccess-policy
solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.PROJECT_ID
: El ID del proyecto en el que se encuentra la tabla de BigQuery.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: La tabla a la que exportas los metadatos. Si no existe, se crea.
Otras marcas:
--output-bigquery-force
: Reemplaza la tabla de destino si existe.
Organizaciones
gcloud asset export \
--organization=ORGANIZATION_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force
Ingresa los siguientes valores:
ORGANIZATION_ID
: El ID de la organización cuyos metadatos deseas exportar.Cómo encontrar un ID de organización de Google Cloud
Consola
Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.PROJECT_ID
: El ID del proyecto en el que se encuentra la tabla de BigQuery.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: La tabla a la que exportas los metadatos. Si no existe, se crea.
Otras marcas:
--output-bigquery-force
: Reemplaza la tabla de destino si existe.
REST
curl -X POST \
-H "X-Goog-User-Project: BILLING_PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"contentType": "CONTENT_TYPE",
"readTime": "SNAPSHOT_TIME",
"outputConfig": {
"bigqueryDestination": {
"dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
"table": "TABLE_NAME",
"force": true
}
}
}' \
https://cloudasset.googleapis.com/v1/SCOPE:exportAssets
Ingresa los siguientes valores:
BILLING_PROJECT_ID
: Es el ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus conjuntos de datos y tablas de BigQuery. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo. El tipo de contenidoACCESS_POLICY
solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se creará una tabla vacía.SNAPSHOT_TIME
: Opcional La hora a la que deseas tomar una instantánea de tus elementos, en formato RFC 3339. El valor debe ser la hora actual o una hora de no más de 35 días en el pasado. Si no se proporciona, se toma una instantánea en el momento actual.PROJECT_ID
: El ID del proyecto en el que se encuentra la tabla de BigQuery.DATASET_ID
: Es el ID del conjunto de datos de BigQuery.TABLE_NAME
La tabla a la que exportas los metadatos. Si no existe, se crea.SCOPE
: El alcance puede ser un proyecto, una carpeta o una organización.Los valores permitidos son los siguientes:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Cómo encontrar un número de proyecto de Google Cloud
Consola
Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:
-
Ve a la página Panel en la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Elige tu organización en el cuadro Seleccionar una opción y, luego, busca el nombre del proyecto.
- Haz clic en el nombre del proyecto para cambiarlo. El número de proyecto se muestra en la tarjeta Información del proyecto.
gcloud CLI
Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Cómo encontrar un ID de carpeta de Google Cloud
Consola
Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción
--format
para ver más información sobre las carpetas encontradas.Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Cómo encontrar un ID de organización de Google Cloud
Consola
Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Otros parámetros:
"force": true
: Reemplaza la tabla de destino, si existe.
Exportar tablas separadas para cada tipo de recurso
Si quieres exportar elementos a tablas de BigQuery separadas para cada tipo de recurso, usa la marca --per-asset-type
. El nombre de cada tabla es TABLE_NAME
concatenado con _
(guion bajo) y el nombre del tipo de recurso. Los caracteres que no son alfanuméricos se reemplazan por _
.
Ten en cuenta que los tipos de recursos de GKE, excepto container.googleapis.com/Cluster
y container.googleapis.com/NodePool
, no son compatibles con este tipo de exportación.
gcloud
Proyectos
gcloud asset export \
--project=PROJECT_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force \
--per-asset-type
Ingresa los siguientes valores:
PROJECT_ID
por el ID del proyecto cuyos metadatos deseas exportar.BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo. El tipo de contenidoaccess-policy
solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: La tabla a la que exportas los metadatos. Si no existe, se crea.
Otras marcas:
--output-bigquery-force
: Reemplaza la tabla de destino si existe.--per-asset-type
: Exporta a varias tablas de BigQuery por tipo de recurso.
Carpetas
gcloud asset export \
--folder=FOLDER_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force \
--per-asset-type
Ingresa los siguientes valores:
FOLDER_ID
: El ID de la carpeta cuyos metadatos deseas exportar.Cómo encontrar un ID de carpeta de Google Cloud
Consola
Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción
--format
para ver más información sobre las carpetas encontradas.Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo. El tipo de contenidoaccess-policy
solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.PROJECT_ID
: El ID del proyecto en el que se encuentra la tabla de BigQuery.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: La tabla a la que exportas los metadatos. Si no existe, se crea.
Otras marcas:
--output-bigquery-force
: Reemplaza la tabla de destino si existe.--per-asset-type
: Exporta a varias tablas de BigQuery por tipo de recurso.
Organizaciones
gcloud asset export \
--organization=ORGANIZATION_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force \
--per-asset-type
Ingresa los siguientes valores:
ORGANIZATION_ID
: El ID de la organización para la que deseas obtener estadísticas.Cómo encontrar un ID de organización de Google Cloud
Consola
Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.PROJECT_ID
: El ID del proyecto en el que se encuentra la tabla de BigQuery.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: La tabla a la que exportas los metadatos. Si no existe, se crea.
Otras marcas:
--output-bigquery-force
: Reemplaza la tabla de destino si existe.--per-asset-type
: Exporta a varias tablas de BigQuery por tipo de recurso.
REST
curl -X POST \
-H "X-Goog-User-Project: BILLING_PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"contentType": "CONTENT_TYPE",
"readTime": "SNAPSHOT_TIME",
"outputConfig": {
"bigqueryDestination": {
"dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
"table": "TABLE_NAME",
"force": true,
"separateTablesPerAssetType": true
}
}
}' \
https://cloudasset.googleapis.com/v1/SCOPE:exportAssets
Ingresa los siguientes valores:
BILLING_PROJECT_ID
: Es el ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus conjuntos de datos y tablas de BigQuery. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo. El tipo de contenidoACCESS_POLICY
solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se creará una tabla vacía.SNAPSHOT_TIME
: Opcional La hora a la que quieres tomar una instantánea de tus elementos, en formato RFC 3339. El valor debe ser la hora actual o una hora de no más de 35 días en el pasado. Si no se proporciona, se toma una instantánea en el momento actual.PROJECT_ID
: El ID del proyecto en el que se encuentra la tabla de BigQuery.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: La tabla a la que exportas los metadatos. Si no existe, se crea.SCOPE
: El alcance puede ser un proyecto, una carpeta o una organización.Los valores permitidos son los siguientes:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Cómo encontrar un número de proyecto de Google Cloud
Consola
Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:
-
Ve a la página Panel en la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Elige tu organización en el cuadro Seleccionar una opción y, luego, busca el nombre del proyecto.
- Haz clic en el nombre del proyecto para cambiarlo. El número de proyecto se muestra en la tarjeta Información del proyecto.
gcloud CLI
Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Cómo encontrar un ID de carpeta de Google Cloud
Consola
Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción
--format
para ver más información sobre las carpetas encontradas.Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Cómo encontrar un ID de organización de Google Cloud
Consola
Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Otros parámetros:
"force": true
: Reemplaza la tabla de destino, si existe.
Si la exportación a cualquier tabla falla, la operación de exportación completa falla y muestra el primer error. Se conservan los resultados de las exportaciones exitosas anteriores.
Los siguientes tipos se empaquetan en una string JSON para solucionar un problema de compatibilidad entre los tipos de BigQuery y JSON3.
google.protobuf.Timestamp
google.protobuf.Duration
google.protobuf.FieldMask
google.protobuf.ListValue
google.protobuf.Value
google.protobuf.Struct
google.api.*
Exporta a una tabla particionada
Para exportar elementos de un proyecto a tablas particionadas, define la clave de partición en la solicitud de exportación. La instantánea exportada se almacena en una tabla de BigQuery llamada TABLE_NAME
con un nivel de detalle diario y dos columnas de marca de tiempo adicionales, readTime
y requestTime
, una de las cuales se especifica mediante el valor PARTITION_KEY
.
Para exportar elementos de un proyecto a tablas con particiones, realiza una de las siguientes solicitudes.
gcloud
Proyectos
gcloud asset export \
--project=PROJECT_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--partition-key=PARTITION_KEY \
--output-bigquery-force
Ingresa los siguientes valores:
PROJECT_ID
por el ID del proyecto cuyos metadatos deseas exportar.BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo. El tipo de contenidoaccess-policy
solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: Es la tabla a la que se exportarán los metadatos. Si no existe, se crea.PARTITION_KEY
: Es la columna de claves de partición cuando se exporta a tablas particionadas de BigQuery. Los valores válidos sonread-time
yrequest-time
.
Otras marcas:
--output-bigquery-force
: Reemplaza la tabla de destino si existe.
Carpetas
gcloud asset export \
--folder=FOLDER_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--partition-key=PARTITION_KEY \
--output-bigquery-force
Ingresa los siguientes valores:
FOLDER_ID
: El ID de la carpeta cuyos metadatos deseas exportar.Cómo encontrar un ID de carpeta de Google Cloud
Consola
Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción
--format
para ver más información sobre las carpetas encontradas.Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo. El tipo de contenidoaccess-policy
solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.PROJECT_ID
: El ID del proyecto en el que se encuentra la tabla de BigQuery.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: La tabla a la que exportas los metadatos. Si no existe, se crea.PARTITION_KEY
: Es la columna de claves de partición cuando se exporta a tablas particionadas de BigQuery. Los valores válidos sonread-time
yrequest-time
.
Otras marcas:
--output-bigquery-force
: Reemplaza la tabla de destino si existe.
Organización
gcloud asset export \
--organization=ORGANIZATION_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--partition-key=PARTITION_KEY \
--output-bigquery-force
Ingresa los siguientes valores:
ORGANIZATION_ID
: El ID de la organización para la que deseas obtener estadísticas.Cómo encontrar un ID de organización de Google Cloud
Consola
Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
BILLING_PROJECT_ID
: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación congcloud config set project
. Obtén más información sobre los proyectos de facturación.CONTENT_TYPE
: Es el tipo de contenido del activo.SNAPSHOT_TIME
: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.PROJECT_ID
: El ID del proyecto en el que se encuentra la tabla de BigQuery.DATASET_ID
: el ID del conjunto de datos de BigQuery.TABLE_NAME
: La tabla a la que exportas los metadatos. Si no existe, se crea.PARTITION_KEY
: Es la columna de claves de partición cuando se exporta a tablas particionadas de BigQuery. Los valores válidos sonread-time
yrequest-time
.
Otras marcas:
--output-bigquery-force
: Reemplaza la tabla de destino si existe.
Si la marca output-bigquery-force
se configura como true
, los resultados de la instantánea reemplazan la partición correspondiente. Sin embargo, los datos de una o más particiones diferentes permanecen intactos. Si no se configura output-bigquery-force
o false
, agrega los datos a la partición correspondiente.
La operación de exportación falla si falla una actualización del esquema o un intento de adjuntar datos. Esto incluye si la tabla de destino ya existe y no tiene el esquema que espera la exportación.
REST
curl -X POST \
-H "X-Goog-User-Project: BILLING_PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"contentType": "CONTENT_TYPE",
"readTime": "SNAPSHOT_TIME",
"outputConfig": {
"bigqueryDestination": {
"dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
"table": "TABLE_NAME",
"force": true,
"partitionSpec": {
"partitionKey": "PARTITION_KEY"
}
}
}
}' \
https://cloudasset.googleapis.com/v1/SCOPE:exportAssets
Ingresa los siguientes valores:
BILLING_PROJECT_ID
: Es el ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus conjuntos de datos y tablas de BigQuery. Obtén más información sobre los proyectos de facturación.PROJECT_ID
: El ID del proyecto en el que se encuentra la tabla de BigQuery.CONTENT_TYPE
: Es el tipo de contenido del activo. El tipo de contenidoACCESS_POLICY
solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se creará una tabla vacía.SNAPSHOT_TIME
: Opcional La hora a la que deseas tomar una instantánea de tus elementos, en formato RFC 3339. El valor debe ser la hora actual o una hora de no más de 35 días en el pasado. Si no se proporciona, se toma una instantánea en el momento actual.DATASET_ID
: Es el ID del conjunto de datos de BigQuery.TABLE_NAME
: Es la tabla a la que exportas los metadatos. Si no existe, se crea.PARTITION_KEY
: Es la columna de claves de partición cuando se exporta a tablas particionadas de BigQuery. Los valores válidos sonread-time
yrequest-time
.SCOPE
: El alcance puede ser un proyecto, una carpeta o una organización.Los valores permitidos son los siguientes:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Cómo encontrar un número de proyecto de Google Cloud
Consola
Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:
-
Ve a la página Panel en la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Elige tu organización en el cuadro Seleccionar una opción y, luego, busca el nombre del proyecto.
- Haz clic en el nombre del proyecto para cambiarlo. El número de proyecto se muestra en la tarjeta Información del proyecto.
gcloud CLI
Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Cómo encontrar un ID de carpeta de Google Cloud
Consola
Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.
gcloud CLI
Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción
--format
para ver más información sobre las carpetas encontradas.Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Cómo encontrar un ID de organización de Google Cloud
Consola
Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:
-
Ve a la consola de Google Cloud.
- Haz clic en el cuadro de cambio en la barra de menú.
- Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
- Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.
gcloud CLI
Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Otros parámetros:
"force": true
: Reemplaza la tabla de destino, si existe. Esto solo funciona si la tabla tiene la misma estructura de partición que espera la exportación.Si
force
se configura comotrue
, los resultados de la instantánea reemplazan la partición correspondiente, mientras que los datos de diferentes particiones permanecen intactos. Siforce
no está configurado o se establece enfalse
, los datos se agregan a la partición correspondiente.
La operación de exportación falla si falla una actualización del esquema o un intento de adjuntar datos. Esto incluye si la tabla de destino ya existe y no tiene el esquema que espera la exportación.
Verifica el estado de una exportación
Las operaciones se asocian con un ID de operación, que es un UUID.
Este valor es potencialmente sensible, ya que el comando gcloud asset operations describe
no requiere permisos adicionales para ejecutarse correctamente. Asegúrate de compartir el ID de operación solo con usuarios de confianza.
El servidor rechaza las solicitudes si una solicitud anterior al mismo destino comenzó hace menos de 15 minutos y aún se está ejecutando. Pueden producirse resultados indefinidos si el tiempo de exportación es superior a 15 minutos y se ejecuta una solicitud consecutiva al mismo destino antes de que la primera solicitud tenga éxito.
Para verificar el estado de una exportación, ejecuta los siguientes comandos.
gcloud CLI
Para verificar el estado de la exportación, puedes ejecutar el siguiente comando. OPERATION_PATH
se muestra en la respuesta después de ejecutar el comando de exportación.
gcloud asset operations describe OPERATION_PATH
REST
Para ver el estado de tu exportación, ejecuta el siguiente comando con el ID de operación que se muestra en la respuesta a tu exportación.
Puedes encontrar el
OPERATION_PATH
en el camponame
de la respuesta a la exportación, que tiene el siguiente formato:"name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
Para verificar el estado de la exportación, ejecuta el siguiente comando con
OPERATION_PATH
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://cloudasset.googleapis.com/v1/OPERATION_PATH
Visualiza la instantánea de un activo
Para ver la tabla que contiene los metadatos de la instantánea de activos, completa los siguientes pasos.
Consola
Ve a la página de BigQuery Studio en la consola de Google Cloud.
Para mostrar las tablas y vistas del conjunto de datos, abre el panel de navegación. En la sección Recursos, selecciona el proyecto para expandirlo y, luego, selecciona un conjunto de datos.
En la lista, selecciona tu tabla.
Selecciona Detalles y anota el valor de Número de filas. Es posible que necesites este valor para controlar el punto de partida de tus resultados mediante gcloud CLI o la API de REST.
Para ver una muestra del conjunto de datos, selecciona Vista previa.
REST
Para explorar los datos de la tabla, llama a tabledata.list
.
En el parámetro tableId
, especifica el nombre de tu tabla.
Puedes configurar los siguientes parámetros opcionales para controlar el resultado.
maxResults
es la cantidad máxima de resultados que se mostrarán.selectedFields
es una lista de las columnas separadas por comas que se mostrarán, si no se especifica, se mostrarán todas las columnas.startIndex
es el índice basado en cero de la fila inicial que se leerá.
Los valores se muestran unidos en un objeto JSON que debes analizar, como se describe en la documentación de referencia de tabledata.list
.
La exportación enumera los elementos y sus nombres de recursos.
Consulta una instantánea de recursos
Después de exportar la instantánea a BigQuery, puedes ejecutar consultas en los metadatos de tus activos. Consulta Cómo exportar consultas de muestra de BigQuery para obtener más información sobre varios casos prácticos típicos.
De forma predeterminada, BigQuery ejecuta trabajos de consulta interactivos o a pedido, lo que significa que la consulta se ejecuta en cuanto sea posible. Las consultas interactivas se toman en cuenta para tu límite de frecuencia simultánea y límite diario.
Los resultados de las consultas se guardan en una tabla temporal o permanente. Puedes agregar o reemplazar datos en una tabla existente o crear una tabla nueva, si no existe una con el mismo nombre.
Para ejecutar una consulta interactiva que escribe el resultado en una tabla temporal, completa los siguientes pasos.
Consola
Ve a la página de BigQuery Studio en la consola de Google Cloud.
Selecciona
Redactar consulta nueva.En el área de texto del Editor de consultas, ingresa una consulta de SQL de BigQuery válida.
Opcional: Para cambiar la ubicación de procesamiento de datos, completa los siguientes pasos.
Selecciona Más y, luego, Configuración de consulta.
En Ubicación de procesamiento, selecciona Selección automática y, luego, elige la ubicación de tus datos.
Para actualizar la configuración de la consulta, selecciona Guardar.
Selecciona Ejecutar.
REST
Para iniciar un trabajo nuevo, llama al método
jobs.insert
. En el recurso de trabajo, configura los siguientes parámetros.En el campo
configuration
, configura el campoquery
como una JobConfigurationQuery que describa el trabajo de consulta de BigQuery.En el campo
jobReference
, configura el campolocation
de forma adecuada para tu trabajo.
Para consultar los resultados, llama a
getQueryResults
. Busca hasta quejobComplete
sea igual atrue
. Puedes comprobar si hay errores y advertencias en la listaerrors
.