Exporter vers BigQuery

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.

  1. Activez l'API Cloud Asset Inventory sur le projet dans lequel vous allez exécuter les commandes de l'API.

    Activer l'API Cloud Asset Inventory

  2. Configurez les autorisations requises pour appeler l'API Cloud Asset Inventory à l'aide de gcloud CLI ou de l'API.

  3. Pour configurer votre environnement, procédez comme suit :

    gcloud CLI

    Pour configurer votre environnement afin qu'il utilise la gcloud CLI pour appeler l'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 à l'aide de la commande curl, procédez comme suit.

    1. Vérifiez que vous avez accès à la commande curl.

    2. Assurez-vous d'attribuer à 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)

  4. Si vous exportez des métadonnées d'un projet vers un autre, assurez-vous que le compte de service par défaut de l'inventaire des éléments cloud existe et dispose des autorisations appropriées.

  5. Créez un ensemble de données BigQuery.

Limites

Lorsque vous exportez un instantané d'élément, tenez compte des points suivants:

  • Les tables BigQuery chiffrées avec des clés Cloud Key Management Service (Cloud KMS) personnalisées ne sont pas compatibles.

  • L'ajout du résultat d'exportation à une table existante n'est pas pris en charge, sauf si vous exportez vers une table partitionnée. La table de destination doit être vide, sans quoi vous devez l'écraser. Pour l'écraser, utilisez l'option --output-bigquery-force avec gcloud CLI ou force avec l'API REST.

  • Les types de ressources Google Kubernetes Engine (GKE), à l'exception de container.googleapis.com/Cluster et container.googleapis.com/NodePool, ne sont pas compatibles lors de l'exportation vers des tables distinctes par type de ressource.

  • Si la table vers laquelle vous effectuez l'exportation existe déjà et vers laquelle vous effectuez l'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'option per-asset-type sur false ou que vous ne l'utilisez pas, vous créez une table BigQuery comportant le schéma suivant.

    Schéma de ressource

    [
      {
        "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 contient les métadonnées de ressource représentées par une chaîne JSON.

    Lorsque vous définissez le type de contenu sur RESOURCE ou que vous ne définissez pas le type de contenu et que vous définissez l'option per-asset-type sur true, vous créez des tables distinctes par type d'élément. Le schéma de chaque table inclut des colonnes de type RECORD mappées aux champs imbriqués du champ Resource.data de ce type d'élément (jusqu'à 15 niveaux imbriqués compatibles avec BigQuery). Pour obtenir des exemples de tables BigQuery par type, consultez la page 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 sur iam-policy dans la gcloud CLI, vous créez une table BigQuery présentant le schéma suivant.

    Schéma de 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 sur org-policy dans la gcloud CLI, vous créez une table BigQuery présentant le schéma suivant.

    Schéma de règle 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"
      }
    ]
  • Règle VPCSC:lorsque vous définissez le type de contenu sur ACCESS_POLICY dans l'API REST ou sur access-policy dans la gcloud CLI, vous créez une table BigQuery présentant le schéma suivant.

    Schéma de 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 des instances OSConfig:lorsque vous définissez le type de contenu sur OS_INVENTORY dans l'API REST ou sur os-inventory dans la gcloud CLI, vous créez une table BigQuery présentant le schéma suivant.

    Schéma d'inventaire du système d'exploitation

    [
      {
        "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 sur relationship dans la gcloud CLI, vous créez une table BigQuery présentant le schéma suivant.

    Schéma de la 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 code temporel donné

Pour exporter un instantané d'élément à un horodatage donné vers une table BigQuery nommée TABLE_NAME, effectuez l'une des requêtes suivantes.

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 du projet dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. Cette étape n'est pas nécessaire si vous êtes déjà passé au projet de facturation avec gcloud config set project. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset. Le type de contenu access-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. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les 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. S'il n'existe pas, il est créé.

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: ID du dossier dont vous souhaitez exporter les métadonnées.

    Trouver un ID de dossier Google Cloud

    Console

    Pour trouver un ID de dossier Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Recherchez le nom de votre dossier. L'ID du dossier figure à côté du nom du dossier.

    gcloud CLI

    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 l'option --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

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. Cette étape n'est pas nécessaire si vous êtes déjà passé au projet de facturation avec gcloud config set project. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset. Le type de contenu access-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. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.

  • PROJECT_ID: ID du projet dans lequel se trouve la table BigQuery.

  • DATASET_ID : ID de l'ensemble de données BigQuery.

  • TABLE_NAME: table vers laquelle vous exportez vos métadonnées. S'il n'existe pas, il est créé.

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:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.

    gcloud CLI

    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 et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. Cette étape n'est pas nécessaire si vous êtes déjà passé au projet de facturation avec gcloud config set project. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset.

  • SNAPSHOT_TIME : facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.

  • PROJECT_ID: ID du projet dans lequel se trouve la table BigQuery.

  • DATASET_ID : ID de l'ensemble de données BigQuery.

  • TABLE_NAME: table vers laquelle vous exportez vos métadonnées. S'il n'existe pas, il est créé.

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 dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset. Le type de contenu ACCESS_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, au format RFC 3339. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, 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 : table vers laquelle vous exportez vos métadonnées. S'il n'existe pas, il est créé.

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour passer à celui-ci. Le numéro du projet est indiqué sur la fiche Informations sur le projet.

      gcloud CLI

      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:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier figure à côté du nom du dossier.

      gcloud CLI

      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 l'option --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:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.

      gcloud CLI

      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: remplace la table de destination, le cas échéant.

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'option --per-asset-type. Le nom de chaque table est TABLE_NAME concaténé avec _ (trait de soulignement) et le nom du type d'asset. 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 du projet dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. Cette étape n'est pas nécessaire si vous êtes déjà passé au projet de facturation avec gcloud config set project. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset. Le type de contenu access-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. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les 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. S'il n'existe pas, il est créé.

Autres indicateurs:

  • --output-bigquery-force: écrase la table de destination si elle existe.

  • --per-asset-type: exporte les données 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: ID du dossier dont vous souhaitez exporter les métadonnées.

    Trouver un ID de dossier Google Cloud

    Console

    Pour trouver un ID de dossier Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Recherchez le nom de votre dossier. L'ID du dossier figure à côté du nom du dossier.

    gcloud CLI

    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 l'option --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

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. Cette étape n'est pas nécessaire si vous êtes déjà passé au projet de facturation avec gcloud config set project. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset. Le type de contenu access-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. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.

  • PROJECT_ID: ID du projet dans lequel se trouve la table BigQuery.

  • DATASET_ID : ID de l'ensemble de données BigQuery.

  • TABLE_NAME: table vers laquelle vous exportez vos métadonnées. S'il n'existe pas, il est créé.

Autres indicateurs:

  • --output-bigquery-force: écrase la table de destination si elle existe.

  • --per-asset-type: exporte les données 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:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.

    gcloud CLI

    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 et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. Cette étape n'est pas nécessaire si vous êtes déjà passé au projet de facturation avec gcloud config set project. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset.

  • SNAPSHOT_TIME : facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.

  • PROJECT_ID: ID du projet dans lequel se trouve la table BigQuery.

  • DATASET_ID : ID de l'ensemble de données BigQuery.

  • TABLE_NAME: table vers laquelle vous exportez vos métadonnées. S'il n'existe pas, il est créé.

Autres indicateurs:

  • --output-bigquery-force: écrase la table de destination si elle existe.

  • --per-asset-type: exporte les données 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 dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset. Le type de contenu ACCESS_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, au format RFC 3339. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, 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: table vers laquelle vous exportez vos métadonnées. S'il n'existe pas, il est créé.

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour passer à celui-ci. Le numéro du projet est indiqué sur la fiche Informations sur le projet.

      gcloud CLI

      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:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier figure à côté du nom du dossier.

      gcloud CLI

      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 l'option --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:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.

      gcloud CLI

      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: remplace la table de destination, le cas échéant.

Si l'exportation vers une table échoue, l'ensemble de l'opération d'exportation échoue et renvoie la première erreur. Les résultats des précédentes exportations 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 des éléments d'un projet vers des tables partitionnées, définissez la clé de partition 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 d'horodatage supplémentaires, readTime et requestTime, dont l'une est spécifiée par la valeur PARTITION_KEY.

Pour exporter des éléments d'un projet vers des tables partitionnées, effectuez l'une des requêtes suivantes.

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 du projet dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. Cette étape n'est pas nécessaire si vous êtes déjà passé au projet de facturation avec gcloud config set project. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset. Le type de contenu access-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. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.

  • DATASET_ID : ID de l'ensemble de données BigQuery.

  • TABLE_NAME: table vers laquelle exporter vos métadonnées. S'il n'existe pas, il est créé.

  • PARTITION_KEY: colonne de clé de partition lors de l'exportation vers des tables partitionnées BigQuery. Les valeurs valides sont read-time et request-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: ID du dossier dont vous souhaitez exporter les métadonnées.

    Trouver un ID de dossier Google Cloud

    Console

    Pour trouver un ID de dossier Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Recherchez le nom de votre dossier. L'ID du dossier figure à côté du nom du dossier.

    gcloud CLI

    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 l'option --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

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. Cette étape n'est pas nécessaire si vous êtes déjà passé au projet de facturation avec gcloud config set project. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset. Le type de contenu access-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. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.

  • PROJECT_ID: ID du projet dans lequel se trouve la table BigQuery.

  • DATASET_ID : ID de l'ensemble de données BigQuery.

  • TABLE_NAME: table vers laquelle vous exportez vos métadonnées. S'il n'existe pas, il est créé.

  • PARTITION_KEY: colonne de clé de partition lors de l'exportation vers des tables partitionnées BigQuery. Les valeurs valides sont read-time et request-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:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.

    gcloud CLI

    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 et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. Cette étape n'est pas nécessaire si vous êtes déjà passé au projet de facturation avec gcloud config set project. En savoir plus sur les projets de facturation

  • CONTENT_TYPE: type de contenu de l'asset.

  • SNAPSHOT_TIME : facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.

  • PROJECT_ID: ID du projet dans lequel se trouve la table BigQuery.

  • DATASET_ID : ID de l'ensemble de données BigQuery.

  • TABLE_NAME: table vers laquelle vous exportez vos métadonnées. S'il n'existe pas, il est créé.

  • PARTITION_KEY: colonne de clé de partition lors de l'exportation vers des tables partitionnées BigQuery. Les valeurs valides sont read-time et request-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 partition correspondante est écrasée par les résultats de l'instantané. Toutefois, les données d'une ou de plusieurs partitions différentes restent intactes. Si la valeur output-bigquery-force n'est pas définie ou si elle est définie sur false, les données sont ajoutées à la partition correspondante.

L'opération d'exportation échoue en cas d'échec d'une mise à jour du schéma ou d'une tentative d'ajout de données. Cela inclut si la table de destination existe déjà et n'a pas le 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 inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer vos ensembles de données et tables BigQuery. En savoir plus sur les projets de facturation

  • PROJECT_ID: ID du projet dans lequel se trouve la table BigQuery.

  • CONTENT_TYPE: type de contenu de l'asset. Le type de contenu ACCESS_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, au format RFC 3339. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle.

  • DATASET_ID: ID de l'ensemble de données BigQuery.

  • TABLE_NAME: est la table vers laquelle vous exportez vos métadonnées. S'il n'existe pas, il est créé.

  • PARTITION_KEY: colonne de clé de partition lors de l'exportation vers des tables partitionnées BigQuery. Les valeurs valides sont read-time et request-time.

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour passer à celui-ci. Le numéro du projet est indiqué sur la fiche Informations sur le projet.

      gcloud CLI

      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:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier figure à côté du nom du dossier.

      gcloud CLI

      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 l'option --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:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à côté de son nom.

      gcloud CLI

      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: remplace la table de destination, le cas échéant. Cela ne fonctionne que si la table présente la même structure de partition que celle attendue par l'exportation.

    Si force est défini sur true, la partition correspondante est écrasée par les résultats de l'instantané, tandis que les données des différentes partitions restent intactes. Si la valeur force n'est pas définie ou si elle est définie sur false, les données sont ajoutées à la partition correspondante.

L'opération d'exportation échoue en cas d'échec d'une mise à jour du schéma ou d'une tentative d'ajout de données. Cela inclut si la table de destination existe déjà et ne présente pas 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 la commande 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 rejette les requêtes si une requête précédente adressée à la même destination a commencé il y a moins de 15 minutes et est toujours en cours d'exécution. Des résultats non définis peuvent se produire si la durée d'exportation est supérieure à 15 minutes et qu'une requête consécutive adressée à 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.

gcloud CLI

Pour vérifier l'état de l'exportation, exécutez la commande suivante. Le OPERATION_PATH s'affiche dans la réponse après l'exécution de 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.

  1. Vous trouverez OPERATION_PATH dans le champ name de la réponse à l'exportation, au format suivant:

    "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
    
  2. 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

  1. Accédez à la page BigQuery Studio dans la console Google Cloud.

    Accéder à BigQuery Studio

  2. 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.

  3. Dans la liste, sélectionnez votre table.

  4. 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 gcloud CLI ou de l'API REST.

  5. Pour afficher un exemple d'ensemble de données, sélectionnez Aperçu.

REST

Pour parcourir les données de votre table, 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. Les requêtes interactives sont comptabilisées dans votre limite de débit simultané et votre limite quotidienne.

Les résultats de la requête sont enregistrés dans un tableau temporaire ou permanent. 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

  1. Accédez à la page BigQuery Studio dans la console Google Cloud.

    Accéder à BigQuery Studio

  2. Sélectionnez Saisir une nouvelle requête.

  3. Dans la zone de texte de l'éditeur de requête, saisissez une requête SQL BigQuery valide.

  4. Facultatif: Pour modifier l'emplacement de traitement des données, procédez comme suit.

    1. Sélectionnez Plus, puis Paramètres de requête.

    2. Dans le champ Emplacement de traitement, sélectionnez Sélection automatique, puis choisissez l'emplacement de vos données.

    3. Pour mettre à jour les paramètres de la requête, sélectionnez Enregistrer.

  5. Sélectionnez Exécuter.

REST

  1. 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 champ query sur un objet JobConfigurationQuery qui décrit la tâche de requête BigQuery.

    • Dans le champ jobReference, définissez le champ location de manière appropriée pour votre tâche.

  2. Pour interroger les résultats, appelez getQueryResults. jusqu'à ce que jobComplete ait la valeur true. Vous pouvez vérifier la présence d'erreurs et d'avertissements dans la liste errors.