Cet article explique comment exporter les métadonnées d'éléments pour votre organisation, votre dossier ou votre projet vers une table BigQuery, puis comment exécuter une analyse de données sur votre inventaire. BigQuery offre aux utilisateurs une expérience semblable à SQL pour analyser des données et produire des insights pertinents sans avoir à utiliser de scripts personnalisés.
Avant de commencer
Avant de commencer, suivez les étapes ci-dessous.
Activez l'API Cloud Asset Inventory sur le projet dans lequel vous allez exécuter les commandes de l'API.
Configurez les autorisations requises pour appeler l'API Cloud Asset Inventory à l'aide de la gcloud CLI ou de l'API.
Pour configurer votre environnement, procédez comme suit :
CLI gcloud
Pour configurer votre environnement afin d'utiliser la gcloud CLI pour appeler la API Cloud Asset Inventory, installez la Google Cloud CLI sur votre client local.
REST
Pour configurer votre environnement afin d'appeler l'API Cloud Asset Inventory avec la commande
curl
, procédez comme suit :Vérifiez que vous avez accès à la commande
curl
.Assurez-vous d'accorder votre compte l'un des rôles suivants sur votre projet, dossier ou organisation.
Rôle Lecteur d'éléments cloud (
roles/cloudasset.viewer
)Rôle de base Propriétaire (
roles/owner
)
Si vous exportez des métadonnées d'un projet vers un autre, assurez-vous que le compte de service Cloud Asset Inventory par défaut du projet exportateur existe et dispose des autorisations appropriées.
Limites
Lorsque vous exportez un instantané d'élément, tenez compte des points suivants:
Tables BigQuery chiffrées avec Cloud Key Management Service personnalisé (Cloud KMS) ne sont pas acceptées.
L'ajout du résultat de l'exportation à une table existante n'est pas possible, sauf si vous exportez vers une table partitionnée. La destination doit être vide, sinon vous devez l'écraser. Pour l'écraser, utilisez l'option
--output-bigquery-force
avec la CLI gcloud ouforce
avec l'API REST.les types de ressources Google Kubernetes Engine (GKE), à l'exception de
container.googleapis.com/Cluster
etcontainer.googleapis.com/NodePool
, ne sont pas acceptées lors de l'exportation vers des tables distinctes par type de ressource.Si la table vers laquelle vous exportez existe déjà et est déjà en cours d'exportation une erreur
400
est renvoyée.
Définir le schéma BigQuery pour l'exportation
Chaque table BigQuery est définie par un schéma qui décrit les noms de colonne, les types de données et d'autres informations. La définition du type de contenu lors de l'exportation détermine le schéma de votre table.
Ressource ou non spécifié : lorsque vous définissez le type de contenu sur
RESOURCE
ou que vous ne le spécifiez pas, et que vous définissez l'indicateurper-asset-type
surfalse
ou que vous ne l'utilisez pas, vous créez une table BigQuery dont le schéma est le suivant.Schéma de ressources
[ { "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 colonne
resource.data
correspond aux métadonnées de ressource représentées sous forme de .Lorsque vous définissez le type de contenu sur
RESOURCE
ou ne le définissez pas, et définissez l'optionper-asset-type
surtrue
, vous créez des tables distinctes par type d'élément. Le schéma de chaque table inclut des colonnes de type RECORD mises en correspondance avec les champs imbriqués du champResource.data
de ce type d'élément (jusqu'au niveau imbriqué 15 compatible avec BigQuery). Pour BigQuery par type des exemples de tables, consultez projects/export-assets-examples/datasets/structured_export.Stratégie IAM : lorsque vous définissez le type de contenu sur
IAM_POLICY
dans l'API REST ou suriam-policy
dans la CLI gcloud, vous créez une table BigQuery dont le schéma est le suivant.Schéma de la stratégie 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" } ]
Règle d'administration : lorsque vous définissez le type de contenu sur
ORG_POLICY
dans l'API REST ou surorg-policy
dans la CLI gcloud, vous créez une table BigQuery dont le schéma est le suivant.Schéma des règles d'administration
[ { "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" } ]
Stratégie VPCSC : lorsque vous définissez le type de contenu sur
ACCESS_POLICY
dans l'API REST ou suraccess-policy
dans la CLI gcloud, vous créez une table BigQuery dont le schéma est le suivant.Schéma de la règle 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" } ]
Inventaire d'instances OSConfig:lorsque vous définissez le type de contenu sur
OS_INVENTORY
dans l'API REST ouos-inventory
dans la gcloud CLI, vous créez un Table BigQuery présentant le schéma suivant.Schéma de l'inventaire de l'OS
[ { "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" } ]
Relation : lorsque vous définissez le type de contenu sur
RELATIONSHIP
dans l'API REST ou surrelationship
dans la gcloud CLI, vous créez une table BigQuery dont le schéma est le suivant.Schéma de relation
[ { "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" } ]
Exporter un instantané d'élément vers BigQuery
Exporter des éléments à un horodatage donné
Pour exporter un instantané d'élément associé à un horodatage donné vers un fichier BigQuery
une table nommée TABLE_NAME
, définissez l'une comme suit
requêtes.
gcloud
Projets
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
Indiquez les valeurs suivantes :
PROJECT_ID
: ID du projet dont vous souhaitez exporter les métadonnées.BILLING_PROJECT_ID
: facultatif. ID de projet dans lequel se trouve l'agent de service Cloud Asset Inventory par défaut, qui dispose des autorisations nécessaires pour gérer vos ensembles de données et vos tables BigQuery. Non obligatoire si vous êtes déjà passé au projet de facturation avecgcloud config set project
. En savoir plus sur les projets de facturationCONTENT_TYPE
: type de contenu de l'élément Le type de contenuaccess-policy
ne peut être exporté que pour un organisation. Si vous l'exportez pour un projet ou un dossier, est créée.SNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. Cette valeur doit correspondre au soit l'heure actuelle, soit 35 jours maximum en arrière. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats de date et d'heure, consultez la section Date et heure gcloud.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: la table dans laquelle vous exportez vos les métadonnées. Si elle n'existe pas, elle est créée.
Autres indicateurs:
--output-bigquery-force
: écrase la table de destination si elle existe.
Dossiers
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
Indiquez les valeurs suivantes :
FOLDER_ID
: l'identifiant du dossier dont des métadonnées à exporter.Trouver un ID de dossier Google Cloud
Console
Pour trouver un ID de dossier Google Cloud, procédez comme suit :
-
Accédez à Google Cloud Console.
- Cochez la case Activer dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
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)"
TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez le
--format
pour afficher plus d'informations sur les dossiers trouvés.Pour obtenir l'ID d'un dossier dans un autre dossier, listez les sous-dossiers :
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: facultatif. ID du projet dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut, qui dispose des autorisations pour gérer vos ensembles de données et vos tables BigQuery. Non obligatoire si vous êtes déjà passé au projet de facturation avecgcloud config set project
. En savoir plus sur les projets de facturationCONTENT_TYPE
: type de contenu de l'élément Le type de contenuaccess-policy
ne peut être exporté que pour un organisation. Si vous l'exportez pour un projet ou un dossier, une table vide est créée.SNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit être l'heure actuelle ou une heure datant de moins de 35 jours. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats de date et d'heure, consultez la section Date et heure gcloud.PROJECT_ID
: ID du projet dans laquelle se trouve la table BigQuery.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: la table dans laquelle vous exportez vos les métadonnées. Si elle n'existe pas, elle est créée.
Autres indicateurs:
--output-bigquery-force
: écrase la table de destination si elle existe.
Organisations
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
Indiquez les valeurs suivantes :
ORGANIZATION_ID
: ID de l'organisation dont vous souhaitez exporter les métadonnées.Trouver un ID d'organisation Google Cloud
Console
Pour trouver un ID d'organisation Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le boutons d'activation/de désactivation dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation est indiqué à côté du nom de l'organisation.
CLI gcloud
Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
BILLING_PROJECT_ID
: facultatif. ID du projet dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut, qui dispose des autorisations pour gérer vos ensembles de données et vos tables BigQuery. Non obligatoire si vous êtes déjà passé au projet de facturationgcloud config set project
En savoir plus sur les projets de facturationCONTENT_TYPE
: type de contenu de l'élémentSNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. Cette valeur doit correspondre à la valeur soit l'heure actuelle, soit 35 jours maximum en arrière. Dans le cas contraire fournie, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats de date et d'heure, consultez la section Date et heure gcloud.PROJECT_ID
: ID du projet dans laquelle se trouve la table BigQuery.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: la table dans laquelle vous exportez vos les métadonnées. Si elle n'existe pas, elle est créée.
Autres indicateurs:
--output-bigquery-force
: écrase la table de destination si elle 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
Indiquez les valeurs suivantes :
BILLING_PROJECT_ID
: ID du projet l'agent de service inventaire des éléments cloud par défaut, qui dispose des autorisations nécessaires pour gérer dans vos ensembles de données et tables BigQuery. En savoir plus sur la facturation des projetsCONTENT_TYPE
: type de contenu de l'élément Le type de contenuACCESS_POLICY
ne peut être exporté que pour une organisation. Si vous l'exportez pour un projet ou un dossier, une table vide est créée.SNAPSHOT_TIME
: facultatif. L'heure à laquelle Vous souhaitez prendre un instantané de vos éléments, au format RFC 3339. La valeur doit être l'heure actuelle ou une heure datant de moins de 35 jours. Si elle n'est pas fournie, un instantané est pris à l'heure actuelle.PROJECT_ID
: ID du projet dans laquelle se trouve la table BigQuery.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
Table dans laquelle vous exportez vos métadonnées. Si elle n'existe pas, elle est créée.SCOPE
: un champ d'application peut être un projet, un dossier ou un organisation.Les valeurs autorisées sont les suivantes :
projects/PROJECT_ID
projects/PROJECT_NUMBER
Trouver le numéro d'un projet Google Cloud
Console
Pour trouver un numéro de projet Google Cloud, procédez comme suit:
-
Accédez à la page Tableau de bord de la console Google Cloud.
- Cochez la case Activer dans la barre de menu.
- Dans la zone Sélectionner, sélectionnez votre organisation, puis recherchez votre nom du projet.
- Cliquez sur le nom du projet pour y accéder. Le numéro de projet est indiqué dans la fiche Informations sur le projet.
CLI gcloud
Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Trouver un ID de dossier Google Cloud
Console
Pour trouver un ID de dossier Google Cloud, procédez comme suit :
-
Accédez à Google Cloud Console.
- Cliquez sur la case de sélecteur dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
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)"
TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez le
--format
pour afficher plus d'informations sur les dossiers trouvés.Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Trouver un ID d'organisation Google Cloud
Console
Pour trouver un ID d'organisation Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le boutons d'activation/de désactivation dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation est indiqué à côté du nom de l'organisation.
CLI gcloud
Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Autres paramètres :
"force": true
: écrase la table de destination si elle existe.
Exporter des tables distinctes pour chaque type de ressource
Pour exporter des éléments vers des tables BigQuery distinctes pour chaque type de ressource, utilisez l'indicateur --per-asset-type
. Le nom de chaque
tableau est
TABLE_NAME
concaténé avec _
(trait de soulignement) et
le nom du type d'élément. Les caractères non alphanumériques sont remplacés par _
.
Notez que les types de ressources GKE, à l'exception de container.googleapis.com/Cluster
et container.googleapis.com/NodePool
, ne sont pas compatibles avec ce type d'exportation.
gcloud
Projets
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
Indiquez les valeurs suivantes :
PROJECT_ID
: ID du projet dont vous souhaitez exporter les métadonnées.BILLING_PROJECT_ID
: facultatif. ID de projet dans lequel se trouve l'agent de service Cloud Asset Inventory par défaut, qui dispose des autorisations nécessaires pour gérer vos ensembles de données et vos tables BigQuery. Non obligatoire si vous êtes déjà passé au projet de facturationgcloud config set project
En savoir plus sur la facturation des projetsCONTENT_TYPE
: type de contenu de l'élément. Le type de contenuaccess-policy
ne peut être exporté que pour un organisation. Si vous l'exportez pour un projet ou un dossier, une table vide est créée.SNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. Cette valeur doit correspondre au soit l'heure actuelle, soit 35 jours maximum en arrière. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats de date et d'heure, consultez la section Date et heure gcloud.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: la table dans laquelle vous exportez vos les métadonnées. Si elle n'existe pas, elle est créée.
Autres indicateurs:
--output-bigquery-force
: écrase la table de destination si elle existe.--per-asset-type
: exportation vers plusieurs tables BigQuery par type de ressource.
Dossiers
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
Indiquez les valeurs suivantes :
FOLDER_ID
: l'identifiant du dossier dont des métadonnées à exporter.Trouver un ID de dossier Google Cloud
Console
Pour trouver un ID de dossier Google Cloud, procédez comme suit :
-
Accédez à Google Cloud Console.
- Cliquez sur le boutons d'activation/de désactivation dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
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)"
TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez le
--format
pour afficher plus d'informations sur les dossiers trouvés.Pour obtenir l'ID d'un dossier dans un autre dossier, listez les sous-dossiers :
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: facultatif. ID de projet dans lequel se trouve l'agent de service Cloud Asset Inventory par défaut, qui dispose des autorisations nécessaires pour gérer vos ensembles de données et vos tables BigQuery. Non obligatoire si vous êtes déjà passé au projet de facturation avecgcloud config set project
. En savoir plus sur les projets de facturationCONTENT_TYPE
: type de contenu de l'élément. Le type de contenuaccess-policy
ne peut être exporté que pour une organisation. Si vous l'exportez pour un projet ou un dossier, est créée.SNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit être l'heure actuelle ou une heure datant de moins de 35 jours. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats de date et d'heure, consultez la section Date et heure gcloud.PROJECT_ID
: ID du projet dans laquelle se trouve la table BigQuery.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: la table dans laquelle vous exportez vos les métadonnées. Si elle n'existe pas, elle est créée.
Autres indicateurs:
--output-bigquery-force
: écrase la table de destination si elle existe.--per-asset-type
: exportations vers plusieurs tables BigQuery par type de ressource.
Organisations
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
Indiquez les valeurs suivantes :
ORGANIZATION_ID
: ID de l'organisation pour laquelle vous souhaitez obtenir des insights.Trouver un ID d'organisation Google Cloud
Console
Pour trouver un ID d'organisation Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le boutons d'activation/de désactivation dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation est indiqué à côté du nom de l'organisation.
CLI gcloud
Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
BILLING_PROJECT_ID
: facultatif. ID de projet dans lequel se trouve l'agent de service Cloud Asset Inventory par défaut, qui dispose des autorisations nécessaires pour gérer vos ensembles de données et vos tables BigQuery. Non obligatoire si vous êtes déjà passé au projet de facturationgcloud config set project
En savoir plus sur la facturation des projetsCONTENT_TYPE
: type de contenu de l'élément.SNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit être l'heure actuelle ou une heure datant de moins de 35 jours. Dans le cas contraire fournie, un instantané est pris à l'heure actuelle. Pour plus d'informations sur formats d'heure, consultez gcloud topic datetimes.PROJECT_ID
: ID du projet dans laquelle se trouve la table BigQuery.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: la table dans laquelle vous exportez vos les métadonnées. Si elle n'existe pas, elle est créée.
Autres indicateurs:
--output-bigquery-force
: écrase la table de destination si elle existe.--per-asset-type
: exportation vers plusieurs tables BigQuery par type de ressource.
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
Indiquez les valeurs suivantes :
BILLING_PROJECT_ID
: ID du projet l'agent de service inventaire des éléments cloud par défaut, qui dispose des autorisations nécessaires pour gérer dans vos ensembles de données et tables BigQuery. En savoir plus sur les projets de facturationCONTENT_TYPE
: type de contenu de l'élément Le type de contenuACCESS_POLICY
ne peut être exporté que pour une organisation. Si vous l'exportez pour un projet ou un dossier, une table vide est créée.SNAPSHOT_TIME
: facultatif. L'heure à laquelle vous vous souhaitez prendre un instantané de vos éléments, au format RFC 3339. La valeur doit être l'heure actuelle ou une heure datant de moins de 35 jours. Si elle n'est pas fournie, un instantané est pris à l'heure actuelle.PROJECT_ID
: ID du projet dans lequel se trouve la table BigQuery.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: la table dans laquelle vous exportez vos les métadonnées. Si elle n'existe pas, elle est créée.SCOPE
: un champ d'application peut être un projet, un dossier ou un organisation.Les valeurs autorisées sont les suivantes :
projects/PROJECT_ID
projects/PROJECT_NUMBER
Trouver le numéro d'un projet Google Cloud
Console
Pour trouver un numéro de projet Google Cloud, procédez comme suit:
-
Accédez à la page Tableau de bord de la console Google Cloud.
- Cliquez sur la case de sélecteur dans la barre de menu.
- Dans la zone Sélectionner, sélectionnez votre organisation, puis recherchez votre nom du projet.
- Cliquez sur le nom du projet pour y accéder. Le numéro de projet est indiqué dans la fiche Informations sur le projet.
CLI gcloud
Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Trouver un ID de dossier Google Cloud
Console
Pour trouver un ID de dossier Google Cloud, procédez comme suit :
-
Accédez à Google Cloud Console.
- Cliquez sur la case de sélecteur dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
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)"
TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez le
--format
pour afficher plus d'informations sur les dossiers trouvés.Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Trouver un ID d'organisation Google Cloud
Console
Pour trouver un ID d'organisation Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur la case de sélecteur dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation est indiqué à côté du nom de l'organisation.
CLI gcloud
Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Autres paramètres :
"force": true
: écrase la table de destination si elle existe.
En cas d'échec de l'exportation vers une table, toute l'opération d'exportation échoue et renvoie la première erreur. Les résultats des exportations précédentes réussies sont conservés.
Les types suivants sont regroupés dans une chaîne JSON pour résoudre un problème de compatibilité entre les types JSON3 et BigQuery.
google.protobuf.Timestamp
google.protobuf.Duration
google.protobuf.FieldMask
google.protobuf.ListValue
google.protobuf.Value
google.protobuf.Struct
google.api.*
Exporter vers une table partitionnée
Pour exporter les éléments d'un projet vers des tables partitionnées :
définir la clé de partitionnement
dans la requête d'exportation. L'instantané exporté est stocké
Dans une table BigQuery nommée TABLE_NAME
avec une précision quotidienne et deux colonnes de code temporel supplémentaires, readTime
et
requestTime
, dont l'un est spécifié par
PARTITION_KEY
.
Pour exporter les éléments d'un projet vers des tables partitionnées, créez l'une des tables suivantes : requêtes.
gcloud
Projets
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
Indiquez les valeurs suivantes :
PROJECT_ID
: ID du projet dont vous souhaitez exporter les métadonnées.BILLING_PROJECT_ID
: facultatif. ID de projet dans lequel se trouve l'agent de service Cloud Asset Inventory par défaut, qui dispose des autorisations nécessaires pour gérer vos ensembles de données et vos tables BigQuery. Non obligatoire si vous êtes déjà passé au projet de facturationgcloud config set project
En savoir plus sur la facturation des projetsCONTENT_TYPE
: type de contenu de l'élément. Le type de contenuaccess-policy
ne peut être exporté que pour une organisation. Si vous l'exportez pour un projet ou un dossier, une table vide est créée.SNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. Cette valeur doit correspondre au soit l'heure actuelle, soit 35 jours maximum en arrière. Dans le cas contraire fournie, un instantané est pris à l'heure actuelle. Pour plus d'informations sur formats d'heure, consultez gcloud topic datetimes.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: table vers laquelle vous exportez vos métadonnées. Si elle n'existe pas, elle est créée.PARTITION_KEY
: colonne de clé de partitionnement lors de l'exportation vers des tables partitionnées BigQuery. Valide les valeurs sontread-time
etrequest-time
.
Autres indicateurs:
--output-bigquery-force
: écrase la table de destination si elle existe.
Dossiers
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
Indiquez les valeurs suivantes :
FOLDER_ID
: l'identifiant du dossier dont des métadonnées à exporter.Trouver un ID de dossier Google Cloud
Console
Pour trouver un ID de dossier Google Cloud, procédez comme suit :
-
Accédez à Google Cloud Console.
- Cliquez sur la case de sélecteur dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
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)"
TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez le
--format
pour afficher plus d'informations sur les dossiers trouvés.Pour obtenir l'ID d'un dossier dans un autre dossier, listez les sous-dossiers :
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: facultatif. ID de projet dans lequel se trouve l'agent de service Cloud Asset Inventory par défaut, qui dispose des autorisations nécessaires pour gérer vos ensembles de données et vos tables BigQuery. Non obligatoire si vous êtes déjà passé au projet de facturation avecgcloud config set project
. En savoir plus sur la facturation des projetsCONTENT_TYPE
: type de contenu de l'élément Le type de contenuaccess-policy
ne peut être exporté que pour une organisation. Si vous l'exportez pour un projet ou un dossier, est créée.SNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit être l'heure actuelle ou une heure datant de moins de 35 jours. Dans le cas contraire fournie, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats de date et d'heure, consultez la section Date et heure gcloud.PROJECT_ID
: ID du projet dans laquelle se trouve la table BigQuery.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: la table dans laquelle vous exportez vos les métadonnées. Si elle n'existe pas, elle est créée.PARTITION_KEY
: colonne de clé de partitionnement lors de l'exportation vers des tables partitionnées BigQuery. Valide les valeurs sontread-time
etrequest-time
.
Autres indicateurs:
--output-bigquery-force
: écrase la table de destination si elle existe.
Organisation
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
Indiquez les valeurs suivantes :
ORGANIZATION_ID
: ID de l'organisation pour laquelle vous souhaitez obtenir des insights.Trouver un ID d'organisation Google Cloud
Console
Pour trouver un ID d'organisation Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le boutons d'activation/de désactivation dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation est indiqué à côté du nom de l'organisation.
CLI gcloud
Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
BILLING_PROJECT_ID
: facultatif. ID du projet dans lequel se trouve l'agent de service Cloud Asset Inventory par défaut, qui dispose des autorisations nécessaires pour gérer vos ensembles de données et vos tables BigQuery. Non obligatoire si vous êtes déjà passé au projet de facturation avecgcloud config set project
. En savoir plus sur les projets de facturationCONTENT_TYPE
: type de contenu de l'élément.SNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. Cette valeur doit correspondre au soit l'heure actuelle, soit 35 jours maximum en arrière. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats de date et d'heure, consultez la section Date et heure gcloud.PROJECT_ID
: ID du projet dans laquelle se trouve la table BigQuery.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: la table dans laquelle vous exportez vos les métadonnées. Si elle n'existe pas, elle est créée.PARTITION_KEY
: colonne de clé de partitionnement lors de l'exportation vers des tables partitionnées BigQuery. Valide les valeurs sontread-time
etrequest-time
.
Autres indicateurs:
--output-bigquery-force
: écrase la table de destination si elle existe.
Si l'option output-bigquery-force
est définie sur true
, la valeur
est écrasée par les résultats de l'instantané, mais les données d'une ou plusieurs
différentes partitions restent intactes. Si output-bigquery-force
n'est pas défini ou
false
, il ajoute les données à la partition correspondante.
L'opération d'exportation échoue si une mise à jour du schéma ou une tentative d'ajout de données échoue. C'est également le cas si la table de destination existe déjà et qu'elle ne possède pas du schéma attendu par l'exportation.
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
Indiquez les valeurs suivantes :
BILLING_PROJECT_ID
: ID du projet dans lequel se trouve l'agent de service d'inventaire des ressources Cloud par défaut, qui dispose des autorisations nécessaires pour gérer vos ensembles de données et vos tables BigQuery. En savoir plus sur la facturation des projetsPROJECT_ID
: ID du projet dans lequel se trouve la table BigQuery.CONTENT_TYPE
: type de contenu de l'élément Le type de contenuACCESS_POLICY
ne peut être exporté que pour une organisation. Si vous l'exportez pour un projet ou un dossier, une table vide est créée.SNAPSHOT_TIME
: facultatif. L'heure à laquelle Vous souhaitez prendre un instantané de vos éléments, au format RFC 3339. La valeur doit correspondre à l'heure actuelle ou à une heure ne dépassant pas 35 jours de la passé. Si elle n'est pas fournie, un instantané est pris à l'heure actuelle.DATASET_ID
: ID de l'ensemble de données BigQuery.TABLE_NAME
: table vers laquelle vous exportez les métadonnées. Si elle n'existe pas, elle est créée.PARTITION_KEY
: colonne de clé de partitionnement lors de l'exportation vers des tables partitionnées BigQuery. Valeurs valides sontread-time
etrequest-time
.SCOPE
: un champ d'application peut être un projet, un dossier ou un organisation.Les valeurs autorisées sont les suivantes :
projects/PROJECT_ID
projects/PROJECT_NUMBER
Trouver le numéro d'un projet Google Cloud
Console
Pour trouver un numéro de projet Google Cloud, procédez comme suit:
-
Accédez à la page Tableau de bord de la console Google Cloud.
- Cliquez sur la case de sélecteur dans la barre de menu.
- Dans la zone Sélectionner, sélectionnez votre organisation, puis recherchez votre nom du projet.
- Cliquez sur le nom du projet pour y accéder. Le numéro de projet est indiqué dans la fiche Informations sur le projet.
CLI gcloud
Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Trouver un ID de dossier Google Cloud
Console
Pour trouver un ID de dossier Google Cloud, procédez comme suit :
-
Accédez à Google Cloud Console.
- Cliquez sur la case de sélecteur dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
CLI gcloud
Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
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)"
TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez le
--format
pour afficher plus d'informations sur les dossiers trouvés.Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Trouver un ID d'organisation Google Cloud
Console
Pour trouver un ID d'organisation Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cochez la case Activer dans la barre de menu.
- Cliquez sur la zone Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation est indiqué à côté du nom de l'organisation.
CLI gcloud
Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Autres paramètres :
"force": true
: écrase la table de destination si elle existe. Cette fonctionne si la table a la même structure de partition attendue par la exporter.Si
force
est défini surtrue
, la partition correspondante est écrasée. par les résultats de l'instantané, tandis que les données de différentes partitions restent intacts. Siforce
n'est pas défini ou est défini surfalse
, les données sont ajoutées à la partition correspondante.
L'opération d'exportation échoue si une mise à jour de schéma ou une tentative d'ajout de données échoue. Cela inclut si la table de destination existe déjà et n'a pas avec le schéma attendu par l'exportation.
Vérifier le statut d'une exportation
Les opérations sont associées à un ID d'opération, qui est un UUID.
Cette valeur est potentiellement sensible, car gcloud asset operations describe
ne nécessite aucune autorisation supplémentaire pour s'exécuter correctement. Veillez à ne partager l'ID d'opération qu'avec des utilisateurs de confiance.
Le serveur refuse les requêtes si une requête précédente envoyée à la même destination a commencé il y a moins de 15 minutes et est toujours en cours d'exécution. Les résultats non définis peuvent se produire si la durée d'exportation est supérieure à 15 minutes et qu'une demande consécutive à la même destination est exécutée avant que la première requête aboutisse.
Pour vérifier l'état d'une exportation, exécutez les commandes suivantes.
CLI gcloud
Pour vérifier l'état de l'exportation, exécutez la commande suivante. La
OPERATION_PATH
s'affiche dans la réponse après
en exécutant la commande
d'exportation.
gcloud asset operations describe OPERATION_PATH
REST
Pour afficher l'état de l'exportation, exécutez la commande suivante en spécifiant l'ID d'opération renvoyé dans la réponse à l'exportation.
Vous pouvez trouver l'
OPERATION_PATH
dans le champname
de la réponse à l'exportation, au format suivant :"name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
Pour vérifier l'état de l'exportation, exécutez la commande suivante avec l'ID d'opération
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
Afficher un instantané d'élément
Pour afficher la table contenant les métadonnées de l'instantané d'élément, procédez comme suit :
Console
Accédez à la page BigQuery Studio dans la console Google Cloud.
Pour afficher les tables et les vues de l'ensemble de données, ouvrez le panneau de navigation. Dans la section Ressources, sélectionnez votre projet pour le développer, puis sélectionnez un ensemble de données.
Dans la liste, sélectionnez votre table.
Sélectionnez Détails et notez la valeur indiquée pour le champ Nombre de lignes. Vous aurez peut-être besoin de cette valeur pour contrôler le point de départ de vos résultats à l'aide de la gcloud CLI ou de l'API REST.
Pour afficher un exemple d'ensemble de données, sélectionnez Aperçu.
REST
Pour parcourir les données de votre tableau, appelez tabledata.list
.
Dans le paramètre tableId
, spécifiez le nom de la table.
Vous pouvez configurer les paramètres facultatifs suivants pour contrôler la sortie.
maxResults
est le nombre maximal de résultats à renvoyer.selectedFields
est une liste de colonnes à renvoyer, séparées par une virgule. Si ce paramètre n'est pas spécifié, toutes les colonnes sont renvoyées.startIndex
est l'index basé sur zéro de la première ligne à lire.
Les valeurs renvoyées sont encapsulées dans un objet JSON que vous devez analyser, comme décrit dans la documentation de référence de tabledata.list
.
Celui-ci répertorie les éléments et le nom de leurs ressources.
Interroger un instantané d'élément
Après avoir exporté votre instantané vers BigQuery, vous pouvez exécuter des requêtes sur vos métadonnées d'éléments. Pour en savoir plus sur plusieurs cas d'utilisation types, consultez la page Exporter vers des exemples de requêtes BigQuery.
Par défaut (ou à la demande), BigQuery exécute des tâches de requête interactives, ce qui signifie que la requête est exécutée dès que possible. Interactif sont comptabilisées dans votre limite de débit simultané et votre limite quotidienne.
Les résultats de requête sont enregistrés dans une table temporaire ou permanente. Vous pouvez choisir d'ajouter ou d'écraser les données dans une table existante, ou de créer une nouvelle table si aucune table portant le même nom n'existe.
Pour exécuter une requête interactive qui écrit les résultats dans une table temporaire, procédez comme suit :
Console
Accédez à la page BigQuery Studio de la console Google Cloud.
Sélectionner
Saisir une nouvelle requêteDans la zone de texte de l'éditeur de requête, saisissez une requête SQL BigQuery valide.
Facultatif : Pour modifier l'emplacement de traitement des données, procédez comme suit :
Sélectionnez Plus, puis Paramètres de requête.
Dans le champ Emplacement de traitement, sélectionnez Sélection automatique, puis choisissez l'emplacement de vos données.
Pour mettre à jour les paramètres de la requête, sélectionnez Enregistrer.
Sélectionnez Exécuter.
REST
Pour démarrer une nouvelle tâche, appelez la méthode
jobs.insert
. Dans la ressource de tâche, définissez les paramètres suivants.Dans le champ
configuration
, définissez le champquery
sur un objet JobConfigurationQuery qui décrit la tâche de requête BigQuery.Dans le champ
jobReference
, définissez le champlocation
de manière appropriée pour votre tâche.
Pour interroger les résultats, appelez
getQueryResults
. jusqu'à ce quejobComplete
ait la valeurtrue
. Vous pouvez vérifier la présence d'erreurs et d'avertissements dans la listeerrors
.