Esportazione in BigQuery

Questo argomento illustra come esportare i metadati degli asset per la tua organizzazione, cartella o progetto in una tabella BigQuery ed eseguire l'analisi dei dati sul tuo inventario. BigQuery offre agli utenti un'esperienza di tipo SQL per analizzare i dati e produrre insight significativi senza l'uso di script personalizzati.

Prima di iniziare

Prima di iniziare, completa i seguenti passaggi.

  1. Abilita l'API Cloud Asset Inventory nel progetto in cui eseguirai i comandi API.

    Abilitare l'API Cloud Asset Inventory

  2. Configura le autorizzazioni necessarie per chiamare l'API Cloud Asset Inventory utilizzando gcloud CLI o l'API.

  3. Completa i seguenti passaggi per configurare il tuo ambiente.

    Interfaccia a riga di comando gcloud

    Per configurare il tuo ambiente in modo da utilizzare gcloud CLI per chiamare l'API Cloud Asset Inventory, installa Google Cloud CLI sul tuo client locale.

    REST

    Per configurare il tuo ambiente in modo da chiamare l'API Cloud Asset Inventory con il comando curl, completa i passaggi seguenti.

    1. Verifica di avere accesso al comando curl.

    2. Assicurati di concedere al tuo account uno dei seguenti ruoli nel progetto, nella cartella o nell'organizzazione.

      • Ruolo Visualizzatore asset cloud (roles/cloudasset.viewer)

      • Ruolo di base del proprietario (roles/owner)

  4. Se stai esportando i metadati da un progetto a un altro, assicurati che l'account di servizio Cloud Asset Inventory predefinito esista e abbia le autorizzazioni corrette del progetto di esportazione.

  5. Crea un set di dati BigQuery.

Limitazioni

Quando esporti un'istantanea di asset, tieni presente quanto segue:

  • Le tabelle BigQuery criptate con chiavi Cloud Key Management Service (Cloud KMS) personalizzate non sono supportate.

  • L'aggiunta dell'output di esportazione a una tabella esistente non è supportata, a meno che non venga esportata in una tabella partizionata. La tabella di destinazione deve essere vuota o devi sovrascriverla. Per sovrascriverlo, utilizza il flag --output-bigquery-force con gcloud CLI oppure utilizza force con l'API REST.

  • I tipi di risorse Google Kubernetes Engine (GKE), ad eccezione di container.googleapis.com/Cluster e container.googleapis.com/NodePool, non sono supportati durante l'esportazione in tabelle separate per tipo di risorsa.

  • Se la tabella in cui stai eseguendo l'esportazione esiste già ed è in fase di esportazione, viene restituito un errore 400.

Impostazione dello schema BigQuery per l'esportazione

Ogni tabella BigQuery è definita da uno schema che descrive i nomi delle colonne, i tipi di dati e altre informazioni. L'impostazione del tipo di contenuto durante l'esportazione determina lo schema per la tabella.

  • Risorsa o valore non specificato: quando imposti il tipo di contenuto su RESOURCE o non lo specifichi e imposti il flag per-asset-type su false, oppure non lo utilizzi, crei una tabella BigQuery con lo schema riportato di seguito.

    Schema delle risorse

    [
      {
        "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 colonna resource.data contiene i metadati della risorsa rappresentati come stringa JSON.

    Quando imposti il tipo di contenuti su RESOURCE o non imposti il tipo di contenuti e imposti il flag per-asset-type su true, crei tabelle separate per tipo di asset. Lo schema di ogni tabella include colonne di tipo RECORD mappate ai campi nidificati nel campo Resource.data di quel tipo di asset (fino ai 15 livelli nidificati supportati da BigQuery). Per le tabelle di esempio BigQuery per tipo, consulta projects/export-assets-examples/datasets/structured_export.

  • Criterio IAM: quando imposti il tipo di contenuto su IAM_POLICY nell'API REST o iam-policy nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.

    Schema dei criteri 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"
      }
    ]
  • Criterio dell'organizzazione: quando imposti il tipo di contenuto su ORG_POLICY nell'API REST o org-policy nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.

    Schema dei criteri dell'organizzazione

    [
      {
        "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"
      }
    ]
  • Criterio VPCSC: quando imposti il tipo di contenuto su ACCESS_POLICY nell'API REST o access-policy nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.

    Schema dei criteri VPCSC

    [
      {
        "name": "name",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "name": "asset_type",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "fields": [
          {
            "name": "name",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "parent",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "title",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "scopes",
            "mode": "REPEATED",
            "type": "STRING"
          },
          {
            "name": "etag",
            "mode": "NULLABLE",
            "type": "STRING"
          }
        ],
        "name": "access_policy",
        "mode": "NULLABLE",
        "type": "RECORD"
      },
      {
        "fields": [
          {
            "name": "name",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "title",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "description",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "fields": [
              {
                "fields": [
                  {
                    "name": "ip_subnetworks",
                    "mode": "REPEATED",
                    "type": "STRING"
                  },
                  {
                    "fields": [
                      {
                        "name": "require_screenlock",
                        "mode": "NULLABLE",
                        "type": "BOOLEAN"
                      },
                      {
                        "name": "allowed_encryption_statuses",
                        "mode": "REPEATED",
                        "type": "INTEGER"
                      },
                      {
                        "fields": [
                          {
                            "name": "os_type",
                            "mode": "NULLABLE",
                            "type": "INTEGER"
                          },
                          {
                            "name": "minimum_version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "require_verified_chrome_os",
                            "mode": "NULLABLE",
                            "type": "BOOLEAN"
                          }
                        ],
                        "name": "os_constraints",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "allowed_device_management_levels",
                        "mode": "REPEATED",
                        "type": "INTEGER"
                      },
                      {
                        "name": "require_admin_approval",
                        "mode": "NULLABLE",
                        "type": "BOOLEAN"
                      },
                      {
                        "name": "require_corp_owned",
                        "mode": "NULLABLE",
                        "type": "BOOLEAN"
                      }
                    ],
                    "name": "device_policy",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "name": "required_access_levels",
                    "mode": "REPEATED",
                    "type": "STRING"
                  },
                  {
                    "name": "negate",
                    "mode": "NULLABLE",
                    "type": "BOOLEAN"
                  },
                  {
                    "name": "members",
                    "mode": "REPEATED",
                    "type": "STRING"
                  },
                  {
                    "name": "regions",
                    "mode": "REPEATED",
                    "type": "STRING"
                  }
                ],
                "name": "conditions",
                "mode": "REPEATED",
                "type": "RECORD"
              },
              {
                "name": "combining_function",
                "mode": "NULLABLE",
                "type": "INTEGER"
              }
            ],
            "name": "basic",
            "mode": "NULLABLE",
            "type": "RECORD"
          },
          {
            "fields": [
              {
                "fields": [
                  {
                    "name": "expression",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "title",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "description",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "location",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  }
                ],
                "name": "expr",
                "mode": "NULLABLE",
                "type": "RECORD"
              }
            ],
            "name": "custom",
            "mode": "NULLABLE",
            "type": "RECORD"
          }
        ],
        "name": "access_level",
        "mode": "NULLABLE",
        "type": "RECORD"
      },
      {
        "fields": [
          {
            "name": "name",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "title",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "description",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "perimeter_type",
            "mode": "NULLABLE",
            "type": "INTEGER"
          },
          {
            "fields": [
              {
                "name": "resources",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "access_levels",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "restricted_services",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "fields": [
                  {
                    "name": "enable_restriction",
                    "mode": "NULLABLE",
                    "type": "BOOLEAN"
                  },
                  {
                    "name": "allowed_services",
                    "mode": "REPEATED",
                    "type": "STRING"
                  }
                ],
                "name": "vpc_accessible_services",
                "mode": "NULLABLE",
                "type": "RECORD"
              },
              {
                "fields": [
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "access_level",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "resource",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "sources",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "identities",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "name": "identity_type",
                        "mode": "NULLABLE",
                        "type": "INTEGER"
                      }
                    ],
                    "name": "ingress_from",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "service_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "method",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "permission",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "method_selectors",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          }
                        ],
                        "name": "operations",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      }
                    ],
                    "name": "ingress_to",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  }
                ],
                "name": "ingress_policies",
                "mode": "REPEATED",
                "type": "RECORD"
              },
              {
                "fields": [
                  {
                    "fields": [
                      {
                        "name": "identities",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "name": "identity_type",
                        "mode": "NULLABLE",
                        "type": "INTEGER"
                      }
                    ],
                    "name": "egress_from",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "fields": [
                      {
                        "name": "resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "fields": [
                          {
                            "name": "service_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "method",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "permission",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "method_selectors",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          }
                        ],
                        "name": "operations",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "external_resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      }
                    ],
                    "name": "egress_to",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  }
                ],
                "name": "egress_policies",
                "mode": "REPEATED",
                "type": "RECORD"
              }
            ],
            "name": "status",
            "mode": "NULLABLE",
            "type": "RECORD"
          },
          {
            "fields": [
              {
                "name": "resources",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "access_levels",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "restricted_services",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "fields": [
                  {
                    "name": "enable_restriction",
                    "mode": "NULLABLE",
                    "type": "BOOLEAN"
                  },
                  {
                    "name": "allowed_services",
                    "mode": "REPEATED",
                    "type": "STRING"
                  }
                ],
                "name": "vpc_accessible_services",
                "mode": "NULLABLE",
                "type": "RECORD"
              },
              {
                "fields": [
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "access_level",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "resource",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "sources",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "identities",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "name": "identity_type",
                        "mode": "NULLABLE",
                        "type": "INTEGER"
                      }
                    ],
                    "name": "ingress_from",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "service_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "method",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "permission",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "method_selectors",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          }
                        ],
                        "name": "operations",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      }
                    ],
                    "name": "ingress_to",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  }
                ],
                "name": "ingress_policies",
                "mode": "REPEATED",
                "type": "RECORD"
              },
              {
                "fields": [
                  {
                    "fields": [
                      {
                        "name": "identities",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "name": "identity_type",
                        "mode": "NULLABLE",
                        "type": "INTEGER"
                      }
                    ],
                    "name": "egress_from",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "fields": [
                      {
                        "name": "resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "fields": [
                          {
                            "name": "service_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "method",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "permission",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "method_selectors",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          }
                        ],
                        "name": "operations",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "external_resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      }
                    ],
                    "name": "egress_to",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  }
                ],
                "name": "egress_policies",
                "mode": "REPEATED",
                "type": "RECORD"
              }
            ],
            "name": "spec",
            "mode": "NULLABLE",
            "type": "RECORD"
          },
          {
            "name": "use_explicit_dry_run_spec",
            "mode": "NULLABLE",
            "type": "BOOLEAN"
          }
        ],
        "name": "service_perimeter",
        "mode": "NULLABLE",
        "type": "RECORD"
      },
      {
        "name": "ancestors",
        "mode": "REPEATED",
        "type": "STRING"
      },
      {
        "name": "update_time",
        "mode": "NULLABLE",
        "type": "TIMESTAMP"
      }
    ]
  • Inventario delle istanze OSConfig: quando imposti il tipo di contenuto su OS_INVENTORY nell'API REST o os-inventory nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.

    Schema dell'inventario del sistema operativo

    [
      {
        "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"
      }
    ]
  • Relazione: quando imposti il tipo di contenuto su RELATIONSHIP nell'API REST o relationship nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.

    Schema relazioni

    [
      {
        "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"
      }
    ]

Esportare un'istantanea degli asset in BigQuery

Esportare gli asset in un determinato timestamp

Per esportare uno snapshot degli asset in un determinato timestamp in una tabella BigQuery denominata TABLE_NAME, effettua una delle seguenti richieste.

gcloud

Progetti

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

Specifica i seguenti valori:

  • PROJECT_ID: l'ID del progetto di cui vuoi esportare i metadati.

  • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa. Il tipo di contenuti access-policy può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.

  • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

Altri flag:

  • --output-bigquery-force: sovrascrive la tabella di destinazione, se esistente.

Cartelle

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

Specifica i seguenti valori:

  • FOLDER_ID: l'ID della cartella di cui vuoi esportare i metadati.

    Come trovare l'ID di una cartella Google Cloud

    Console

    Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

    1. Vai alla console Google Cloud.

      Vai alla console Google Cloud

    2. Fai clic sulla casella del selettore nella barra dei menu.
    3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
    4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

    Interfaccia a riga di comando gcloud

    Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

    Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa. Il tipo di contenuti access-policy può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.

  • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

  • PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

Altri flag:

  • --output-bigquery-force: sovrascrive la tabella di destinazione, se esistente.

Organizzazioni

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

Specifica i seguenti valori:

  • ORGANIZATION_ID: l'ID dell'organizzazione di cui vuoi esportare i metadati.

    Come trovare un ID organizzazione Google Cloud

    Console

    Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

    1. Vai alla console Google Cloud.

      Vai alla console Google Cloud

    2. Fai clic sulla casella del selettore nella barra dei menu.
    3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
    4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

    Interfaccia a riga di comando gcloud

    Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa.

  • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

  • PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

Altri flag:

  • --output-bigquery-force: sovrascrive la tabella di destinazione, se esistente.

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

Specifica i seguenti valori:

  • BILLING_PROJECT_ID: l'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa. Il tipo di contenuti ACCESS_POLICY può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.

  • SNAPSHOT_TIME: facoltativo. L'ora in cui vuoi acquisire uno snapshot degli asset, in formato RFC 3339. Il valore deve essere l'ora corrente o un'ora non superiore a 35 giorni nel passato. Se non specificato, l'istantanea viene acquisita all'ora attuale.

  • PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.

  • DATASET_ID L'ID del set di dati BigQuery.

  • TABLE_NAME La tabella in cui stai esportando i metadati. Se non esiste, viene creato.

  • SCOPE: un ambito può essere un progetto, una cartella o un'organizzazione.

    I valori consentiti sono:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Come trovare il numero di un progetto Google Cloud

      Console

      Per trovare il numero di un progetto Google Cloud, completa questi passaggi:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla dashboard

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
      4. Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare il numero di un progetto Google Cloud con il seguente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Come trovare l'ID di una cartella Google Cloud

      Console

      Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Come trovare un ID organizzazione Google Cloud

      Console

      Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Altri parametri:

  • "force": true: sovrascrive la tabella di destinazione, se esistente.

Esportazione di tabelle separate per ogni tipo di risorsa

Per esportare gli asset in tabelle BigQuery separate per ogni tipo di risorsa, utilizza il flag --per-asset-type. Il nome di ogni tabella è TABLE_NAME concatenato con _ (trattino basso) e il nome del tipo di asset. I caratteri non alfanumerici vengono sostituiti con _.

Tieni presente che i tipi di risorse GKE, ad eccezione di container.googleapis.com/Cluster e container.googleapis.com/NodePool, non sono supportati per questo tipo di esportazione.

gcloud

Progetti

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

Specifica i seguenti valori:

  • PROJECT_ID: l'ID del progetto di cui vuoi esportare i metadati.

  • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa. Il tipo di contenuti access-policy può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.

  • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

Altri flag:

  • --output-bigquery-force: sovrascrive la tabella di destinazione, se esistente.

  • --per-asset-type: esportazioni in più tabelle BigQuery per tipo di risorsa.

Cartelle

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

Specifica i seguenti valori:

  • FOLDER_ID: l'ID della cartella di cui vuoi esportare i metadati.

    Come trovare l'ID di una cartella Google Cloud

    Console

    Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

    1. Vai alla console Google Cloud.

      Vai alla console Google Cloud

    2. Fai clic sulla casella del selettore nella barra dei menu.
    3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
    4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

    Interfaccia a riga di comando gcloud

    Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

    Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa. Il tipo di contenuti access-policy può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.

  • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

  • PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

Altri flag:

  • --output-bigquery-force: sovrascrive la tabella di destinazione, se esistente.

  • --per-asset-type: esportazioni in più tabelle BigQuery per tipo di risorsa.

Organizzazioni

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

Specifica i seguenti valori:

  • ORGANIZATION_ID: l'ID dell'organizzazione per cui vuoi gli insight.

    Come trovare un ID organizzazione Google Cloud

    Console

    Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

    1. Vai alla console Google Cloud.

      Vai alla console Google Cloud

    2. Fai clic sulla casella del selettore nella barra dei menu.
    3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
    4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

    Interfaccia a riga di comando gcloud

    Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa.

  • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

  • PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

Altri flag:

  • --output-bigquery-force: sovrascrive la tabella di destinazione, se esistente.

  • --per-asset-type: esportazioni in più tabelle BigQuery per tipo di risorsa.

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

Specifica i seguenti valori:

  • BILLING_PROJECT_ID: l'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa. Il tipo di contenuti ACCESS_POLICY può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.

  • SNAPSHOT_TIME: facoltativo. L'ora in cui vuoi acquisire uno snapshot degli asset, in formato RFC 3339. Il valore deve essere l'ora corrente o un'ora non superiore a 35 giorni nel passato. Se non specificato, l'istantanea viene acquisita all'ora attuale.

  • PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

  • SCOPE: un ambito può essere un progetto, una cartella o un'organizzazione.

    I valori consentiti sono:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Come trovare il numero di un progetto Google Cloud

      Console

      Per trovare il numero di un progetto Google Cloud, completa questi passaggi:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla dashboard

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
      4. Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare il numero di un progetto Google Cloud con il seguente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Come trovare l'ID di una cartella Google Cloud

      Console

      Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Come trovare un ID organizzazione Google Cloud

      Console

      Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Altri parametri:

  • "force": true: sovrascrive la tabella di destinazione, se esistente.

Se l'esportazione in una tabella non riesce, l'intera operazione di esportazione non riesce e restituisce il primo errore. I risultati delle esportazioni precedenti riuscite vengono mantenuti.

I tipi seguenti sono pacchettizzati in una stringa JSON per risolvere un problema di compatibilità tra i tipi JSON3 e i tipi di BigQuery.

  • google.protobuf.Timestamp

  • google.protobuf.Duration

  • google.protobuf.FieldMask

  • google.protobuf.ListValue

  • google.protobuf.Value

  • google.protobuf.Struct

  • google.api.*

Esportazione in una tabella partizionata

Per esportare gli asset di un progetto in tabelle partizionate, definisci la chiave di partizione nella richiesta di esportazione. Lo snapshot esportato viene archiviato in una tabella BigQuery denominata TABLE_NAME con granularità giornaliera e due colonne di timestamp aggiuntive, readTime e requestTime, una delle quali è specificata dal valore PARTITION_KEY.

Per esportare gli asset di un progetto in tabelle partizionate, effettua una delle seguenti richieste.

gcloud

Progetti

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

Specifica i seguenti valori:

  • PROJECT_ID: l'ID del progetto di cui vuoi esportare i metadati.

  • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa. Il tipo di contenuti access-policy può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.

  • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui esportare i metadati. Se non esiste, viene creato.

  • PARTITION_KEY: la colonna della chiave di partizione durante l'esportazione in tabelle partizionate BigQuery. I valori validi sono read-time e request-time.

Altri flag:

  • --output-bigquery-force: sovrascrive la tabella di destinazione, se esistente.

Cartelle

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

Specifica i seguenti valori:

  • FOLDER_ID: l'ID della cartella di cui vuoi esportare i metadati.

    Come trovare l'ID di una cartella Google Cloud

    Console

    Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

    1. Vai alla console Google Cloud.

      Vai alla console Google Cloud

    2. Fai clic sulla casella del selettore nella barra dei menu.
    3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
    4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

    Interfaccia a riga di comando gcloud

    Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

    Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa. Il tipo di contenuti access-policy può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.

  • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

  • PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

  • PARTITION_KEY: la colonna della chiave di partizione durante l'esportazione in tabelle partizionate BigQuery. I valori validi sono read-time e request-time.

Altri flag:

  • --output-bigquery-force: sovrascrive la tabella di destinazione, se esistente.

organizzazione

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

Specifica i seguenti valori:

  • ORGANIZATION_ID: l'ID dell'organizzazione per cui vuoi gli insight.

    Come trovare un ID organizzazione Google Cloud

    Console

    Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

    1. Vai alla console Google Cloud.

      Vai alla console Google Cloud

    2. Fai clic sulla casella del selettore nella barra dei menu.
    3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
    4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

    Interfaccia a riga di comando gcloud

    Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione con gcloud config set project. Scopri di più sui progetti di fatturazione.

  • CONTENT_TYPE: il tipo di contenuti della risorsa.

  • SNAPSHOT_TIME: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.

  • PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.

  • DATASET_ID: l'ID del set di dati BigQuery.

  • TABLE_NAME: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

  • PARTITION_KEY: la colonna della chiave di partizione durante l'esportazione in tabelle partizionate BigQuery. I valori validi sono read-time e request-time.

Altri flag:

  • --output-bigquery-force: sovrascrive la tabella di destinazione, se esistente.

Se il flag output-bigquery-force è impostato su true, la partizione corrispondente viene sovrascritta dai risultati dello snapshot, ma i dati in una o più partizioni diverse rimangono invariati. Se output-bigquery-force non viene configurato o false, aggiunge i dati alla partizione corrispondente.

L'operazione di esportazione non va a buon fine se un aggiornamento dello schema o un tentativo di aggiungere dati non va a buon fine. Questo include se la tabella di destinazione esiste già e non ha lo schema previsto dall'esportazione.

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

Specifica i seguenti valori:

  • BILLING_PROJECT_ID: l'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Scopri di più sui progetti di fatturazione.

  • PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery.

  • CONTENT_TYPE: il tipo di contenuti della risorsa. Il tipo di contenuti ACCESS_POLICY può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.

  • SNAPSHOT_TIME: facoltativo. L'ora in cui vuoi acquisire uno snapshot degli asset, in formato RFC 3339. Il valore deve essere l'ora corrente o un'ora non superiore a 35 giorni nel passato. Se non specificato, l'istantanea viene acquisita all'ora attuale.

  • DATASET_ID: è l'ID del set di dati BigQuery.

  • TABLE_NAME: è la tabella in cui stai esportando i metadati. Se non esiste, viene creato.

  • PARTITION_KEY: è la colonna della chiave di partizione durante l'esportazione in tabelle partizionate BigQuery. I valori validi sono read-time e request-time.

  • SCOPE: un ambito può essere un progetto, una cartella o un'organizzazione.

    I valori consentiti sono:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Come trovare il numero di un progetto Google Cloud

      Console

      Per trovare il numero di un progetto Google Cloud, completa questi passaggi:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla dashboard

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
      4. Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare il numero di un progetto Google Cloud con il seguente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Come trovare l'ID di una cartella Google Cloud

      Console

      Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Come trovare un ID organizzazione Google Cloud

      Console

      Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Altri parametri:

  • "force": true: sovrascrive la tabella di destinazione, se esistente. Funziona solo se la tabella ha la stessa struttura di partizione prevista dall'esportazione.

    Se il criterio force viene impostato su true, la partizione corrispondente viene sovrascritta dai risultati dello snapshot, mentre i dati nelle diverse partizioni rimangono intatti. Se force non viene configurato o se viene impostato su false, i dati vengono aggiunti alla partizione corrispondente.

L'operazione di esportazione non va a buon fine se un aggiornamento dello schema o un tentativo di aggiungere dati non va a buon fine. Questo include se la tabella di destinazione esiste già e non ha lo schema previsto per l'esportazione.

Controllare lo stato di un'esportazione

Le operazioni sono associate a un ID operazione, che è un UUID. Questo valore è potenzialmente sensibile, poiché il comando gcloud asset operations describe non richiede autorizzazioni aggiuntive per essere eseguito correttamente. Assicurati di condividere l'ID operazione solo con utenti attendibili.

Il server rifiuta le richieste se una precedente richiesta alla stessa destinazione è iniziata meno di 15 minuti fa ed è ancora in esecuzione. Possono verificarsi risultati non definiti se il tempo dell'esportazione è superiore a 15 minuti e viene eseguita una richiesta consecutiva alla stessa destinazione prima che la prima richiesta abbia esito positivo.

Per controllare lo stato di un'esportazione, esegui questi comandi.

Interfaccia a riga di comando gcloud

Per verificare lo stato dell'esportazione, puoi eseguire il comando seguente. OPERATION_PATH viene visualizzato nella risposta dopo aver eseguito il comando di esportazione.

gcloud asset operations describe OPERATION_PATH

REST

Per visualizzare lo stato dell'esportazione, esegui questo comando con l'ID operazione restituito nella risposta all'esportazione.

  1. Puoi trovare OPERATION_PATH nel campo name della risposta all'esportazione, che è formattata come segue:

    "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
    
  2. Per controllare lo stato dell'esportazione, esegui questo comando con OPERATION_PATH:

    curl -X GET \
         -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         -H "Content-Type: application/json" \
         https://cloudasset.googleapis.com/v1/OPERATION_PATH
    

Visualizzare l'istantanea di un asset

Per visualizzare la tabella contenente i metadati degli snapshot degli asset, segui questi passaggi.

Console

  1. Vai alla pagina BigQuery Studio nella console Google Cloud.

    Vai a BigQuery Studio

  2. Per visualizzare le tabelle e le visualizzazioni nel set di dati, apri il pannello di navigazione. Nella sezione Risorse, seleziona il progetto per espanderlo, quindi seleziona un set di dati.

  3. Seleziona la tabella dall'elenco.

  4. Seleziona Dettagli e prendi nota del valore in Numero di righe. Potresti aver bisogno di questo valore per controllare il punto di partenza per i risultati utilizzando gcloud CLI o l'API REST.

  5. Per visualizzare un set di dati di esempio, seleziona Anteprima.

REST

Per sfogliare i dati della tabella, chiama tabledata.list. Nel parametro tableId, specifica il nome della tabella.

Puoi configurare i seguenti parametri facoltativi per controllare l'output.

  • maxResults è il numero massimo di risultati da restituire.

  • selectedFields è un elenco separato da virgole di colonne da restituire. Se non specificate, vengono restituite tutte le colonne.

  • startIndex è l'indice in base zero della riga iniziale da leggere.

I valori vengono restituiti aggregati in un oggetto JSON che devi analizzare, come descritto nella documentazione di riferimento di tabledata.list.

L'esportazione elenca gli asset e i relativi nomi delle risorse.

Esecuzione di query su uno snapshot degli asset

Dopo aver esportato lo snapshot in BigQuery, puoi eseguire query sui metadati degli asset. Per saperne di più su diversi casi d'uso tipici, consulta Esportazione in query di esempio BigQuery.

Per impostazione predefinita, BigQuery esegue job di query interattivi o on demand, il che significa che la query viene eseguita il prima possibile. Le query interattive vengono conteggiate ai fini del limite di frequenza contemporaneo e del limite giornaliero.

I risultati della query vengono salvati in una tabella temporanea o permanente. Puoi scegliere di aggiungere o sovrascrivere dati in una tabella esistente o di creare una nuova tabella, se non ne esiste nessuna con lo stesso nome.

Per eseguire una query interattiva che scrive l'output in una tabella temporanea, completa i passaggi seguenti.

Console

  1. Vai alla pagina BigQuery Studio nella console Google Cloud.

    Vai a BigQuery Studio

  2. Seleziona Crea nuova query.

  3. Nell'area di testo Editor query, inserisci una query BigQuery SQL valida.

  4. (Facoltativo) Per modificare la località di trattamento dati, completa i seguenti passaggi.

    1. Seleziona Altro e poi Impostazioni query.

    2. In Località di elaborazione, seleziona Selezione automatica, poi scegli la località dei dati.

    3. Per aggiornare le impostazioni della query, seleziona Salva.

  5. Seleziona Esegui.

REST

  1. Per avviare un nuovo job, chiama il metodo jobs.insert. Nella risorsa job, imposta i seguenti parametri.

    • Nel campo configuration, imposta il campo query su un valore JobConfigurationQuery che descrive il job di query BigQuery.

    • Nel campo jobReference, imposta il campo location in modo appropriato per il tuo job.

  2. Per raccogliere i risultati con un sondaggio, chiama il numero getQueryResults. Sondaggio fino a quando jobComplete non equivale a true. Puoi verificare la presenza di errori e avvisi nell'elenco errors.