Como exportar para o BigQuery

Este tópico mostra como exportar metadados de recursos para sua organização, pasta ou projeto para uma tabela do BigQuery e, em seguida, executar análises de dados no inventário. O BigQuery oferece uma experiência parecida com SQL para que os usuários analisem dados e gerem insights significativos sem usar scripts personalizados.

Antes de começar

Antes de começar, conclua as etapas a seguir.

  1. Ative a API Cloud Asset Inventory no projeto em que você executará os comandos da API.

    Ativar a API Cloud Asset Inventory

  2. Configure as permissões necessárias para chamar a API Cloud Asset Inventory usando a CLI gcloud ou a API.

  3. Conclua as etapas a seguir para configurar seu ambiente.

    CLI da gcloud

    Para configurar o ambiente e usar a CLI gcloud para chamar a API Cloud Asset Inventory, instale a Google Cloud CLI no cliente local.

    REST

    Para configurar o ambiente para chamar a API Cloud Asset Inventory com o comando curl, conclua as etapas a seguir.

    1. Confirme se você tem acesso ao comando curl.

    2. Conceda à sua conta um dos seguintes papéis no seu projeto, pasta ou organização.

      • Papel Leitor de recursos do Cloud (roles/cloudasset.viewer)

      • Papel básico do proprietário (roles/owner)

  4. Se você estiver exportando metadados de um projeto para outro, verifique se a conta de serviço padrão do Inventário de recursos do Cloud do projeto de exportação existe e tem as permissões corretas.

  5. crie um conjunto de dados do BigQuery;

Limitações

Ao exportar um snapshot de recurso, lembre-se do seguinte:

  • As tabelas do BigQuery criptografadas com chaves personalizadas do Cloud Key Management Service (Cloud KMS) não são compatíveis.

  • Não é possível anexar a saída de exportação a uma tabela atual, a menos que você esteja exportando para uma tabela particionada. A tabela de destino precisa estar vazia ou será necessário substituí-la. Para substituí-la, use a flag --output-bigquery-force com a CLI gcloud ou use force com a API REST.

  • Os tipos de recursos do Google Kubernetes Engine (GKE), exceto container.googleapis.com/Cluster e container.googleapis.com/NodePool, não são compatíveis ao exportar para tabelas separadas por tipo de recurso.

  • Se a tabela de destino já existir e estiver sendo exportada, um erro 400 será retornado.

Como definir o esquema do BigQuery para a exportação

Todas as tabelas do BigQuery são definidas por um esquema que descreve os nomes, tipos de dados e outras informações da coluna. Definir o tipo de conteúdo durante a exportação determina o esquema da tabela.

  • Recurso ou não especificado:ao definir o tipo de conteúdo como RESOURCE ou não especificá-lo e definir a sinalização per-asset-type como false ou não usá-la, você cria uma tabela do BigQuery com o esquema a seguir.

    Esquema do recurso

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

    A coluna resource.data são os metadados do recurso representados como uma string JSON.

    Ao definir o tipo de conteúdo como RESOURCE ou não definir o tipo de conteúdo e definir a sinalização per-asset-type como true, você cria tabelas separadas por tipo de recurso. O esquema de cada tabela inclui colunas do tipo RECORD mapeadas para os campos aninhados no campo Resource.data desse tipo de recurso (até os 15 níveis aninhados compatíveis com o BigQuery). Para tabelas de exemplo do BigQuery por tipo, consulte projects/export-assets-examples/datasets/structured_export.

  • Política do IAM:ao definir o tipo de conteúdo como IAM_POLICY na API REST ou iam-policy na CLI gcloud, você cria uma tabela do BigQuery com o esquema a seguir.

    Esquema de política do IAM

    [
      {
        "name": "name",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "name": "asset_type",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "fields": [
          {
            "name": "version",
            "mode": "NULLABLE",
            "type": "INTEGER"
          },
          {
            "fields": [
              {
                "name": "role",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "name": "members",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "fields": [
                  {
                    "name": "expression",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "title",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "description",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "location",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  }
                ],
                "name": "condition",
                "mode": "NULLABLE",
                "type": "RECORD"
              }
            ],
            "name": "bindings",
            "mode": "REPEATED",
            "type": "RECORD"
          },
          {
            "fields": [
              {
                "name": "service",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "fields": [
                  {
                    "name": "log_type",
                    "mode": "NULLABLE",
                    "type": "INTEGER"
                  },
                  {
                    "name": "exempted_members",
                    "mode": "REPEATED",
                    "type": "STRING"
                  }
                ],
                "name": "audit_log_configs",
                "mode": "REPEATED",
                "type": "RECORD"
              }
            ],
            "name": "audit_configs",
            "mode": "REPEATED",
            "type": "RECORD"
          },
          {
            "name": "etag",
            "mode": "NULLABLE",
            "type": "STRING"
          }
        ],
        "name": "iam_policy",
        "mode": "NULLABLE",
        "type": "RECORD"
      },
      {
        "name": "ancestors",
        "mode": "REPEATED",
        "type": "STRING"
      },
      {
        "name": "update_time",
        "mode": "NULLABLE",
        "type": "TIMESTAMP"
      }
    ]
  • Política da organização: ao definir o tipo de conteúdo como ORG_POLICY na API REST ou org-policy na CLI gcloud, você cria uma tabela do BigQuery com o esquema a seguir.

    Esquema da política da organização

    [
      {
        "name": "name",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "name": "asset_type",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "fields": [
          {
            "name": "version",
            "mode": "NULLABLE",
            "type": "INTEGER"
          },
          {
            "name": "constraint",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "etag",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "update_time",
            "mode": "NULLABLE",
            "type": "TIMESTAMP"
          },
          {
            "fields": [
              {
                "name": "allowed_values",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "denied_values",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "all_values",
                "mode": "NULLABLE",
                "type": "INTEGER"
              },
              {
                "name": "suggested_value",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "name": "inherit_from_parent",
                "mode": "NULLABLE",
                "type": "BOOLEAN"
              }
            ],
            "name": "list_policy",
            "mode": "NULLABLE",
            "type": "RECORD"
          },
          {
            "fields": [
              {
                "name": "enforced",
                "mode": "NULLABLE",
                "type": "BOOLEAN"
              }
            ],
            "name": "boolean_policy",
            "mode": "NULLABLE",
            "type": "RECORD"
          },
          {
            "fields": [
              {
                "name": "_present",
                "mode": "NULLABLE",
                "type": "BOOLEAN"
              }
            ],
            "name": "restore_default",
            "mode": "NULLABLE",
            "type": "RECORD"
          }
        ],
        "name": "org_policy",
        "mode": "REPEATED",
        "type": "RECORD"
      },
      {
        "name": "ancestors",
        "mode": "REPEATED",
        "type": "STRING"
      },
      {
        "name": "update_time",
        "mode": "NULLABLE",
        "type": "TIMESTAMP"
      }
    ]
  • Política de VPCSC: ao definir o tipo de conteúdo como ACCESS_POLICY na API REST ou access-policy na CLI gcloud, você cria uma tabela do BigQuery com o esquema a seguir.

    Esquema de políticas de VPCSC

    [
      {
        "name": "name",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "name": "asset_type",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "fields": [
          {
            "name": "name",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "parent",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "title",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "scopes",
            "mode": "REPEATED",
            "type": "STRING"
          },
          {
            "name": "etag",
            "mode": "NULLABLE",
            "type": "STRING"
          }
        ],
        "name": "access_policy",
        "mode": "NULLABLE",
        "type": "RECORD"
      },
      {
        "fields": [
          {
            "name": "name",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "title",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "description",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "fields": [
              {
                "fields": [
                  {
                    "name": "ip_subnetworks",
                    "mode": "REPEATED",
                    "type": "STRING"
                  },
                  {
                    "fields": [
                      {
                        "name": "require_screenlock",
                        "mode": "NULLABLE",
                        "type": "BOOLEAN"
                      },
                      {
                        "name": "allowed_encryption_statuses",
                        "mode": "REPEATED",
                        "type": "INTEGER"
                      },
                      {
                        "fields": [
                          {
                            "name": "os_type",
                            "mode": "NULLABLE",
                            "type": "INTEGER"
                          },
                          {
                            "name": "minimum_version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "require_verified_chrome_os",
                            "mode": "NULLABLE",
                            "type": "BOOLEAN"
                          }
                        ],
                        "name": "os_constraints",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "allowed_device_management_levels",
                        "mode": "REPEATED",
                        "type": "INTEGER"
                      },
                      {
                        "name": "require_admin_approval",
                        "mode": "NULLABLE",
                        "type": "BOOLEAN"
                      },
                      {
                        "name": "require_corp_owned",
                        "mode": "NULLABLE",
                        "type": "BOOLEAN"
                      }
                    ],
                    "name": "device_policy",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "name": "required_access_levels",
                    "mode": "REPEATED",
                    "type": "STRING"
                  },
                  {
                    "name": "negate",
                    "mode": "NULLABLE",
                    "type": "BOOLEAN"
                  },
                  {
                    "name": "members",
                    "mode": "REPEATED",
                    "type": "STRING"
                  },
                  {
                    "name": "regions",
                    "mode": "REPEATED",
                    "type": "STRING"
                  }
                ],
                "name": "conditions",
                "mode": "REPEATED",
                "type": "RECORD"
              },
              {
                "name": "combining_function",
                "mode": "NULLABLE",
                "type": "INTEGER"
              }
            ],
            "name": "basic",
            "mode": "NULLABLE",
            "type": "RECORD"
          },
          {
            "fields": [
              {
                "fields": [
                  {
                    "name": "expression",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "title",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "description",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "location",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  }
                ],
                "name": "expr",
                "mode": "NULLABLE",
                "type": "RECORD"
              }
            ],
            "name": "custom",
            "mode": "NULLABLE",
            "type": "RECORD"
          }
        ],
        "name": "access_level",
        "mode": "NULLABLE",
        "type": "RECORD"
      },
      {
        "fields": [
          {
            "name": "name",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "title",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "description",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "name": "perimeter_type",
            "mode": "NULLABLE",
            "type": "INTEGER"
          },
          {
            "fields": [
              {
                "name": "resources",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "access_levels",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "restricted_services",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "fields": [
                  {
                    "name": "enable_restriction",
                    "mode": "NULLABLE",
                    "type": "BOOLEAN"
                  },
                  {
                    "name": "allowed_services",
                    "mode": "REPEATED",
                    "type": "STRING"
                  }
                ],
                "name": "vpc_accessible_services",
                "mode": "NULLABLE",
                "type": "RECORD"
              },
              {
                "fields": [
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "access_level",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "resource",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "sources",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "identities",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "name": "identity_type",
                        "mode": "NULLABLE",
                        "type": "INTEGER"
                      }
                    ],
                    "name": "ingress_from",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "service_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "method",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "permission",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "method_selectors",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          }
                        ],
                        "name": "operations",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      }
                    ],
                    "name": "ingress_to",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  }
                ],
                "name": "ingress_policies",
                "mode": "REPEATED",
                "type": "RECORD"
              },
              {
                "fields": [
                  {
                    "fields": [
                      {
                        "name": "identities",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "name": "identity_type",
                        "mode": "NULLABLE",
                        "type": "INTEGER"
                      }
                    ],
                    "name": "egress_from",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "fields": [
                      {
                        "name": "resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "fields": [
                          {
                            "name": "service_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "method",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "permission",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "method_selectors",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          }
                        ],
                        "name": "operations",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "external_resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      }
                    ],
                    "name": "egress_to",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  }
                ],
                "name": "egress_policies",
                "mode": "REPEATED",
                "type": "RECORD"
              }
            ],
            "name": "status",
            "mode": "NULLABLE",
            "type": "RECORD"
          },
          {
            "fields": [
              {
                "name": "resources",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "access_levels",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "name": "restricted_services",
                "mode": "REPEATED",
                "type": "STRING"
              },
              {
                "fields": [
                  {
                    "name": "enable_restriction",
                    "mode": "NULLABLE",
                    "type": "BOOLEAN"
                  },
                  {
                    "name": "allowed_services",
                    "mode": "REPEATED",
                    "type": "STRING"
                  }
                ],
                "name": "vpc_accessible_services",
                "mode": "NULLABLE",
                "type": "RECORD"
              },
              {
                "fields": [
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "access_level",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "resource",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "sources",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "identities",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "name": "identity_type",
                        "mode": "NULLABLE",
                        "type": "INTEGER"
                      }
                    ],
                    "name": "ingress_from",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "service_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "method",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "permission",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "method_selectors",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          }
                        ],
                        "name": "operations",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      }
                    ],
                    "name": "ingress_to",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  }
                ],
                "name": "ingress_policies",
                "mode": "REPEATED",
                "type": "RECORD"
              },
              {
                "fields": [
                  {
                    "fields": [
                      {
                        "name": "identities",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "name": "identity_type",
                        "mode": "NULLABLE",
                        "type": "INTEGER"
                      }
                    ],
                    "name": "egress_from",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "fields": [
                      {
                        "name": "resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      },
                      {
                        "fields": [
                          {
                            "name": "service_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "method",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "permission",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "method_selectors",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          }
                        ],
                        "name": "operations",
                        "mode": "REPEATED",
                        "type": "RECORD"
                      },
                      {
                        "name": "external_resources",
                        "mode": "REPEATED",
                        "type": "STRING"
                      }
                    ],
                    "name": "egress_to",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  }
                ],
                "name": "egress_policies",
                "mode": "REPEATED",
                "type": "RECORD"
              }
            ],
            "name": "spec",
            "mode": "NULLABLE",
            "type": "RECORD"
          },
          {
            "name": "use_explicit_dry_run_spec",
            "mode": "NULLABLE",
            "type": "BOOLEAN"
          }
        ],
        "name": "service_perimeter",
        "mode": "NULLABLE",
        "type": "RECORD"
      },
      {
        "name": "ancestors",
        "mode": "REPEATED",
        "type": "STRING"
      },
      {
        "name": "update_time",
        "mode": "NULLABLE",
        "type": "TIMESTAMP"
      }
    ]
  • Inventário de instâncias do OSConfig: ao definir o tipo de conteúdo como OS_INVENTORY na API REST ou os-inventory na CLI gcloud, você cria uma tabela do BigQuery com o esquema a seguir.

    Esquema do inventário do SO

    [
      {
        "name": "name",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "name": "asset_type",
        "mode": "NULLABLE",
        "type": "STRING"
      },
      {
        "fields": [
          {
            "name": "name",
            "mode": "NULLABLE",
            "type": "STRING"
          },
          {
            "fields": [
              {
                "name": "hostname",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "name": "long_name",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "name": "short_name",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "name": "version",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "name": "architecture",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "name": "kernel_version",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "name": "kernel_release",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "name": "osconfig_agent_version",
                "mode": "NULLABLE",
                "type": "STRING"
              }
            ],
            "name": "os_info",
            "mode": "NULLABLE",
            "type": "RECORD"
          },
          {
            "fields": [
              {
                "name": "key",
                "mode": "NULLABLE",
                "type": "STRING"
              },
              {
                "fields": [
                  {
                    "name": "id",
                    "mode": "NULLABLE",
                    "type": "STRING"
                  },
                  {
                    "name": "origin_type",
                    "mode": "NULLABLE",
                    "type": "INTEGER"
                  },
                  {
                    "name": "create_time",
                    "mode": "NULLABLE",
                    "type": "TIMESTAMP"
                  },
                  {
                    "name": "update_time",
                    "mode": "NULLABLE",
                    "type": "TIMESTAMP"
                  },
                  {
                    "name": "type",
                    "mode": "NULLABLE",
                    "type": "INTEGER"
                  },
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "yum_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "apt_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "zypper_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "googet_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "patch_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "category",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "severity",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "summary",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "zypper_patch",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "title",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "description",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "id",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "name",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "categories",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          },
                          {
                            "name": "kb_article_ids",
                            "mode": "REPEATED",
                            "type": "STRING"
                          },
                          {
                            "name": "support_url",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "more_info_urls",
                            "mode": "REPEATED",
                            "type": "STRING"
                          },
                          {
                            "name": "update_id",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "revision_number",
                            "mode": "NULLABLE",
                            "type": "INTEGER"
                          },
                          {
                            "name": "last_deployment_change_time",
                            "mode": "NULLABLE",
                            "type": "TIMESTAMP"
                          }
                        ],
                        "name": "wua_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "caption",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "description",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "hot_fix_id",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "install_time",
                            "mode": "NULLABLE",
                            "type": "TIMESTAMP"
                          }
                        ],
                        "name": "qfe_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "cos_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "display_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "display_version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "publisher",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "year",
                                "mode": "NULLABLE",
                                "type": "INTEGER"
                              },
                              {
                                "name": "month",
                                "mode": "NULLABLE",
                                "type": "INTEGER"
                              },
                              {
                                "name": "day",
                                "mode": "NULLABLE",
                                "type": "INTEGER"
                              }
                            ],
                            "name": "install_date",
                            "mode": "NULLABLE",
                            "type": "RECORD"
                          },
                          {
                            "name": "help_link",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "windows_application",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      }
                    ],
                    "name": "installed_package",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  },
                  {
                    "fields": [
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "yum_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "apt_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "zypper_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "googet_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "patch_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "category",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "severity",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "summary",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "zypper_patch",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "title",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "description",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "id",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              },
                              {
                                "name": "name",
                                "mode": "NULLABLE",
                                "type": "STRING"
                              }
                            ],
                            "name": "categories",
                            "mode": "REPEATED",
                            "type": "RECORD"
                          },
                          {
                            "name": "kb_article_ids",
                            "mode": "REPEATED",
                            "type": "STRING"
                          },
                          {
                            "name": "support_url",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "more_info_urls",
                            "mode": "REPEATED",
                            "type": "STRING"
                          },
                          {
                            "name": "update_id",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "revision_number",
                            "mode": "NULLABLE",
                            "type": "INTEGER"
                          },
                          {
                            "name": "last_deployment_change_time",
                            "mode": "NULLABLE",
                            "type": "TIMESTAMP"
                          }
                        ],
                        "name": "wua_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "caption",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "description",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "hot_fix_id",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "install_time",
                            "mode": "NULLABLE",
                            "type": "TIMESTAMP"
                          }
                        ],
                        "name": "qfe_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "package_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "architecture",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "cos_package",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      },
                      {
                        "fields": [
                          {
                            "name": "display_name",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "display_version",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "name": "publisher",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          },
                          {
                            "fields": [
                              {
                                "name": "year",
                                "mode": "NULLABLE",
                                "type": "INTEGER"
                              },
                              {
                                "name": "month",
                                "mode": "NULLABLE",
                                "type": "INTEGER"
                              },
                              {
                                "name": "day",
                                "mode": "NULLABLE",
                                "type": "INTEGER"
                              }
                            ],
                            "name": "install_date",
                            "mode": "NULLABLE",
                            "type": "RECORD"
                          },
                          {
                            "name": "help_link",
                            "mode": "NULLABLE",
                            "type": "STRING"
                          }
                        ],
                        "name": "windows_application",
                        "mode": "NULLABLE",
                        "type": "RECORD"
                      }
                    ],
                    "name": "available_package",
                    "mode": "NULLABLE",
                    "type": "RECORD"
                  }
                ],
                "name": "value",
                "mode": "NULLABLE",
                "type": "RECORD"
              }
            ],
            "name": "items",
            "mode": "REPEATED",
            "type": "RECORD"
          },
          {
            "name": "update_time",
            "mode": "NULLABLE",
            "type": "TIMESTAMP"
          }
        ],
        "name": "os_inventory",
        "mode": "NULLABLE",
        "type": "RECORD"
      },
      {
        "name": "ancestors",
        "mode": "REPEATED",
        "type": "STRING"
      },
      {
        "name": "update_time",
        "mode": "NULLABLE",
        "type": "TIMESTAMP"
      }
    ]
  • Relação: ao definir o tipo de conteúdo como RELATIONSHIP na API REST ou relationship na CLI gcloud, você cria uma tabela do BigQuery com o esquema a seguir.

    Esquema de relação

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

Exportar um snapshot de recurso para o BigQuery

Como exportar recursos em um determinado carimbo de data/hora

Para exportar um snapshot de recurso em um determinado carimbo de data/hora para uma tabela do BigQuery chamada TABLE_NAME, crie uma das solicitações a seguir.

gcloud

Projetos

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

Forneça os valores a seguir:

  • PROJECT_ID: o ID do projeto com os metadados que você quer exportar.

  • BILLING_PROJECT_ID: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Não é necessário se você já mudou para o projeto de faturamento com gcloud config set project. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso. O tipo de conteúdo access-policy só pode ser exportado para uma organização. Se você exportá-lo para um projeto ou uma pasta, uma tabela vazia será criada.

  • SNAPSHOT_TIME: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.

Outras sinalizações:

  • --output-bigquery-force: substitui a tabela de destino, se ela existir.

Pastas

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

Forneça os valores a seguir:

  • FOLDER_ID: o ID da pasta com os metadados que você quer exportar.

    Como encontrar um ID de pasta do Google Cloud

    Console

    Para encontrar um ID da pasta do Google Cloud, siga estas etapas:

    1. Acesse o console do Google Cloud.

      Acesse o console do Google Cloud

    2. Clique na caixa do seletor na barra de menus.
    3. Clique na caixa Selecionar de e escolha sua organização.
    4. Pesquise o nome da pasta. O ID é exibido ao lado do nome da pasta.

    CLI da gcloud

    Para recuperar um ID de pasta do Google Cloud localizado no nível da organização, use o seguinte 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)"

    Em que TOP_LEVEL_FOLDER_NAME pode ser uma correspondência de string completa ou parcial. Remova a opção --format para ver mais informações sobre as pastas encontradas.

    Para obter o ID de uma pasta dentro de outra pasta, liste as subpastas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Não é necessário se você já mudou para o projeto de faturamento com gcloud config set project. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso. O tipo de conteúdo access-policy só pode ser exportado para uma organização. Se você exportá-lo para um projeto ou uma pasta, uma tabela vazia será criada.

  • SNAPSHOT_TIME: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.

  • PROJECT_ID: o ID do projeto em que a tabela do BigQuery está localizada.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.

Outras sinalizações:

  • --output-bigquery-force: substitui a tabela de destino, se ela existir.

Organizações

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

Forneça os valores a seguir:

  • ORGANIZATION_ID: o ID da organização com os metadados que você quer exportar.

    Como encontrar um ID da organização do Google Cloud

    Console

    Para encontrar um ID da organização do Google Cloud, siga estas etapas:

    1. Acesse o console do Google Cloud.

      Acesse o console do Google Cloud

    2. Clique na caixa do seletor na barra de menus.
    3. Clique na caixa Selecionar de e escolha sua organização.
    4. Selecione a guia Todos. O ID é exibido ao lado do nome da organização.

    CLI da gcloud

    É possível recuperar um ID da organização do Google Cloud com o seguinte comando:

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

  • BILLING_PROJECT_ID: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Não é necessário se você já mudou para o projeto de faturamento com gcloud config set project. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso.

  • SNAPSHOT_TIME: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.

  • PROJECT_ID: o ID do projeto em que a tabela do BigQuery está localizada.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.

Outras sinalizações:

  • --output-bigquery-force: substitui a tabela de destino, se ela existir.

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

Forneça os valores a seguir:

  • BILLING_PROJECT_ID: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar os conjuntos de dados e tabelas do BigQuery. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso. O tipo de conteúdo ACCESS_POLICY só pode ser exportado para uma organização. Se você a exportar para um projeto ou uma pasta, uma tabela vazia será criada.

  • SNAPSHOT_TIME: opcional. O horário em que você quer criar um snapshot dos seus recursos no formato RFC 3339. O valor precisa ser a hora atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual.

  • PROJECT_ID: o ID do projeto em que a tabela do BigQuery está localizada.

  • DATASET_ID o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para onde você está exportando os metadados. Se não existir, ele será criado.

  • SCOPE: um escopo pode ser um projeto, uma pasta ou uma organização.

    Os valores permitidos são:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Como encontrar um número de projeto do Google Cloud

      Console

      Para encontrar um número de projeto do Google Cloud, siga estas etapas:

      1. Acesse a página Painel no console do Google Cloud.

        Ir para o painel

      2. Clique na caixa do seletor na barra de menus.
      3. Escolha a organização na caixa Selecionar de e pesquise o nome do projeto.
      4. Clique no nome do projeto para alternar para ele. O número do projeto é mostrado no card Informações do projeto.

      CLI da gcloud

      É possível recuperar um número de projeto do Google Cloud com o seguinte comando:

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

    • folders/FOLDER_ID

      Como encontrar um ID de pasta do Google Cloud

      Console

      Para encontrar um ID da pasta do Google Cloud, siga estas etapas:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud

      2. Clique na caixa do seletor na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Pesquise o nome da pasta. O ID é exibido ao lado do nome da pasta.

      CLI da gcloud

      Para recuperar um ID de pasta do Google Cloud localizado no nível da organização, use o seguinte 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)"

      Em que TOP_LEVEL_FOLDER_NAME pode ser uma correspondência de string completa ou parcial. Remova a opção --format para ver mais informações sobre as pastas encontradas.

      Para obter o ID de uma pasta dentro de outra pasta, liste as subpastas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Como encontrar um ID da organização do Google Cloud

      Console

      Para encontrar um ID da organização do Google Cloud, siga estas etapas:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud

      2. Clique na caixa do seletor na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Selecione a guia Todos. O ID é exibido ao lado do nome da organização.

      CLI da gcloud

      É possível recuperar um ID da organização do Google Cloud com o seguinte comando:

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

Outros parâmetros:

  • "force": true: substitui a tabela de destino, se ela existir.

Exportar tabelas separadas para cada tipo de recurso

Se quiser exportar recursos para tabelas do BigQuery separadas para cada tipo de recurso, use a sinalização --per-asset-type. O nome de cada tabela é TABLE_NAME concatenado com _ (sublinhado) e o nome do tipo de recurso. Caracteres não alfanuméricos são substituídos por _.

Os tipos de recurso do GKE, exceto container.googleapis.com/Cluster e container.googleapis.com/NodePool, não são compatíveis com esse tipo de exportação.

gcloud

Projetos

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

Forneça os valores a seguir:

  • PROJECT_ID: o ID do projeto com os metadados que você quer exportar.

  • BILLING_PROJECT_ID: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Não é necessário se você já mudou para o projeto de faturamento com gcloud config set project. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso. O tipo de conteúdo access-policy só pode ser exportado para uma organização. Se você exportá-lo para um projeto ou uma pasta, uma tabela vazia será criada.

  • SNAPSHOT_TIME: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.

Outras sinalizações:

  • --output-bigquery-force: substitui a tabela de destino, se ela existir.

  • --per-asset-type: exporta para várias tabelas do BigQuery por tipo de recurso.

Pastas

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

Forneça os valores a seguir:

  • FOLDER_ID: o ID da pasta com os metadados que você quer exportar.

    Como encontrar um ID de pasta do Google Cloud

    Console

    Para encontrar um ID da pasta do Google Cloud, siga estas etapas:

    1. Acesse o console do Google Cloud.

      Acesse o console do Google Cloud

    2. Clique na caixa do seletor na barra de menus.
    3. Clique na caixa Selecionar de e escolha sua organização.
    4. Pesquise o nome da pasta. O ID é exibido ao lado do nome da pasta.

    CLI da gcloud

    Para recuperar um ID de pasta do Google Cloud localizado no nível da organização, use o seguinte 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)"

    Em que TOP_LEVEL_FOLDER_NAME pode ser uma correspondência de string completa ou parcial. Remova a opção --format para ver mais informações sobre as pastas encontradas.

    Para obter o ID de uma pasta dentro de outra pasta, liste as subpastas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Não é necessário se você já mudou para o projeto de faturamento com gcloud config set project. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso. O tipo de conteúdo access-policy só pode ser exportado para uma organização. Se você exportá-lo para um projeto ou uma pasta, uma tabela vazia será criada.

  • SNAPSHOT_TIME: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.

  • PROJECT_ID: o ID do projeto em que a tabela do BigQuery está localizada.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.

Outras sinalizações:

  • --output-bigquery-force: substitui a tabela de destino, se ela existir.

  • --per-asset-type: exporta para várias tabelas do BigQuery por tipo de recurso.

Organizações

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

Forneça os valores a seguir:

  • ORGANIZATION_ID: o ID da organização para as quais você quer insights.

    Como encontrar um ID da organização do Google Cloud

    Console

    Para encontrar um ID da organização do Google Cloud, siga estas etapas:

    1. Acesse o console do Google Cloud.

      Acesse o console do Google Cloud

    2. Clique na caixa do seletor na barra de menus.
    3. Clique na caixa Selecionar de e escolha sua organização.
    4. Selecione a guia Todos. O ID é exibido ao lado do nome da organização.

    CLI da gcloud

    É possível recuperar um ID da organização do Google Cloud com o seguinte comando:

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

  • BILLING_PROJECT_ID: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Não é necessário se você já mudou para o projeto de faturamento com gcloud config set project. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso.

  • SNAPSHOT_TIME: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.

  • PROJECT_ID: o ID do projeto em que a tabela do BigQuery está localizada.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.

Outras sinalizações:

  • --output-bigquery-force: substitui a tabela de destino, se ela existir.

  • --per-asset-type: exporta para várias tabelas do BigQuery por tipo de recurso.

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "contentType": "CONTENT_TYPE",
          "readTime": "SNAPSHOT_TIME",
          "outputConfig": {
            "bigqueryDestination": {
              "dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
              "table": "TABLE_NAME",
              "force": true,
              "separateTablesPerAssetType": true
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:exportAssets

Forneça os valores a seguir:

  • BILLING_PROJECT_ID: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar os conjuntos de dados e tabelas do BigQuery. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso. O tipo de conteúdo ACCESS_POLICY só pode ser exportado para uma organização. Se você a exportar para um projeto ou uma pasta, uma tabela vazia será criada.

  • SNAPSHOT_TIME: opcional. O horário em que você quer criar um snapshot dos seus recursos, no formato RFC 3339. O valor precisa ser a hora atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual.

  • PROJECT_ID: o ID do projeto em que a tabela do BigQuery está localizada.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.

  • SCOPE: um escopo pode ser um projeto, uma pasta ou uma organização.

    Os valores permitidos são:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Como encontrar um número de projeto do Google Cloud

      Console

      Para encontrar um número de projeto do Google Cloud, siga estas etapas:

      1. Acesse a página Painel no console do Google Cloud.

        Ir para o painel

      2. Clique na caixa do seletor na barra de menus.
      3. Escolha a organização na caixa Selecionar de e pesquise o nome do projeto.
      4. Clique no nome do projeto para alternar para ele. O número do projeto é mostrado no card Informações do projeto.

      CLI da gcloud

      É possível recuperar um número de projeto do Google Cloud com o seguinte comando:

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

    • folders/FOLDER_ID

      Como encontrar um ID de pasta do Google Cloud

      Console

      Para encontrar um ID da pasta do Google Cloud, siga estas etapas:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud

      2. Clique na caixa do seletor na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Pesquise o nome da pasta. O ID é exibido ao lado do nome da pasta.

      CLI da gcloud

      Para recuperar um ID de pasta do Google Cloud localizado no nível da organização, use o seguinte 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)"

      Em que TOP_LEVEL_FOLDER_NAME pode ser uma correspondência de string completa ou parcial. Remova a opção --format para ver mais informações sobre as pastas encontradas.

      Para obter o ID de uma pasta dentro de outra pasta, liste as subpastas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Como encontrar um ID da organização do Google Cloud

      Console

      Para encontrar um ID da organização do Google Cloud, siga estas etapas:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud

      2. Clique na caixa do seletor na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Selecione a guia Todos. O ID é exibido ao lado do nome da organização.

      CLI da gcloud

      É possível recuperar um ID da organização do Google Cloud com o seguinte comando:

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

Outros parâmetros:

  • "force": true: substitui a tabela de destino, se ela existir.

Se a exportação para qualquer tabela falhar, toda a operação de exportação falhará e retornará o primeiro erro. Os resultados das exportações anteriores bem-sucedidas são mantidos.

Os tipos a seguir são compactados em uma string JSON para superar um problema de compatibilidade entre os tipos do BigQuery e JSON3.

  • google.protobuf.Timestamp

  • google.protobuf.Duration

  • google.protobuf.FieldMask

  • google.protobuf.ListValue

  • google.protobuf.Value

  • google.protobuf.Struct

  • google.api.*

Como exportar para uma tabela particionada

Para exportar recursos em um projeto para tabelas particionadas, defina a chave da partição na solicitação de exportação. O snapshot exportado é armazenado em uma tabela do BigQuery chamada TABLE_NAME com granularidade diária e duas outras colunas de carimbo de data/hora, readTime e requestTime, uma das quais é especificada pelo valor PARTITION_KEY.

Para exportar recursos em um projeto para tabelas particionadas, faça uma das solicitações a seguir.

gcloud

Projetos

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

Forneça os valores a seguir:

  • PROJECT_ID: o ID do projeto com os metadados que você quer exportar.

  • BILLING_PROJECT_ID: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Não é necessário se você já mudou para o projeto de faturamento com gcloud config set project. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso. O tipo de conteúdo access-policy só pode ser exportado para uma organização. Se você exportá-lo para um projeto ou uma pasta, uma tabela vazia será criada.

  • SNAPSHOT_TIME: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual os metadados serão exportados. Se não existir, ele será criado.

  • PARTITION_KEY: a coluna da chave de partição ao exportar para tabelas particionadas do BigQuery. Os valores válidos são read-time e request-time.

Outras sinalizações:

  • --output-bigquery-force: substitui a tabela de destino, se ela existir.

Pastas

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

Forneça os valores a seguir:

  • FOLDER_ID: o ID da pasta com os metadados que você quer exportar.

    Como encontrar um ID de pasta do Google Cloud

    Console

    Para encontrar um ID da pasta do Google Cloud, siga estas etapas:

    1. Acesse o console do Google Cloud.

      Acesse o console do Google Cloud

    2. Clique na caixa do seletor na barra de menus.
    3. Clique na caixa Selecionar de e escolha sua organização.
    4. Pesquise o nome da pasta. O ID é exibido ao lado do nome da pasta.

    CLI da gcloud

    Para recuperar um ID de pasta do Google Cloud localizado no nível da organização, use o seguinte 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)"

    Em que TOP_LEVEL_FOLDER_NAME pode ser uma correspondência de string completa ou parcial. Remova a opção --format para ver mais informações sobre as pastas encontradas.

    Para obter o ID de uma pasta dentro de outra pasta, liste as subpastas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Não é necessário se você já mudou para o projeto de faturamento com gcloud config set project. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso. O tipo de conteúdo access-policy só pode ser exportado para uma organização. Se você exportá-lo para um projeto ou uma pasta, uma tabela vazia será criada.

  • SNAPSHOT_TIME: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.

  • PROJECT_ID: o ID do projeto em que a tabela do BigQuery está localizada.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.

  • PARTITION_KEY: a coluna da chave de partição ao exportar para tabelas particionadas do BigQuery. Os valores válidos são read-time e request-time.

Outras sinalizações:

  • --output-bigquery-force: substitui a tabela de destino, se ela existir.

Organização

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

Forneça os valores a seguir:

  • ORGANIZATION_ID: o ID da organização para as quais você quer insights.

    Como encontrar um ID da organização do Google Cloud

    Console

    Para encontrar um ID da organização do Google Cloud, siga estas etapas:

    1. Acesse o console do Google Cloud.

      Acesse o console do Google Cloud

    2. Clique na caixa do seletor na barra de menus.
    3. Clique na caixa Selecionar de e escolha sua organização.
    4. Selecione a guia Todos. O ID é exibido ao lado do nome da organização.

    CLI da gcloud

    É possível recuperar um ID da organização do Google Cloud com o seguinte comando:

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

  • BILLING_PROJECT_ID: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar seus conjuntos de dados e tabelas do BigQuery. Não é necessário se você já mudou para o projeto de faturamento com gcloud config set project. Leia mais sobre projetos de faturamento.

  • CONTENT_TYPE: o tipo de conteúdo do recurso.

  • SNAPSHOT_TIME: opcional. O horário em que você quer tirar um snapshot dos seus recursos. O valor precisa ser o horário atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual. Para mais informações sobre formatos de hora, consulte gcloud topic datetimes.

  • PROJECT_ID: o ID do projeto em que a tabela do BigQuery está localizada.

  • DATASET_ID: o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: a tabela para a qual você está exportando os metadados. Se não existir, ele será criado.

  • PARTITION_KEY: a coluna da chave de partição ao exportar para tabelas particionadas do BigQuery. Os valores válidos são read-time e request-time.

Outras sinalizações:

  • --output-bigquery-force: substitui a tabela de destino, se ela existir.

Se a sinalização output-bigquery-force estiver definida como true, a partição correspondente será substituída pelos resultados do snapshot. No entanto, os dados em uma ou mais partições diferentes permanecerão intactos. Se output-bigquery-force não for definido ou false, os dados serão anexados à partição correspondente.

A operação de exportação vai falhar se a atualização do esquema ou a tentativa de anexar dados falhar. Isso inclui se a tabela de destino já existir e não tiver o esquema esperado pela exportação.

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

Forneça os valores a seguir:

  • BILLING_PROJECT_ID: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud está e tem permissões para gerenciar os conjuntos de dados e tabelas do BigQuery. Leia mais sobre projetos de faturamento.

  • PROJECT_ID: o ID do projeto em que a tabela do BigQuery está localizada.

  • CONTENT_TYPE: o tipo de conteúdo do recurso. O tipo de conteúdo ACCESS_POLICY só pode ser exportado para uma organização. Se você a exportar para um projeto ou uma pasta, uma tabela vazia será criada.

  • SNAPSHOT_TIME: opcional. O horário em que você quer criar um snapshot dos seus recursos no formato RFC 3339. O valor precisa ser a hora atual ou um horário não superior a 35 dias no passado. Quando não é fornecido, um snapshot é capturado no momento atual.

  • DATASET_ID: é o ID do conjunto de dados do BigQuery.

  • TABLE_NAME: é a tabela para onde você está exportando os metadados. Se não existir, ele será criado.

  • PARTITION_KEY: é a coluna da chave de partição ao exportar para tabelas particionadas do BigQuery. Os valores válidos são read-time e request-time.

  • SCOPE: um escopo pode ser um projeto, uma pasta ou uma organização.

    Os valores permitidos são:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Como encontrar um número de projeto do Google Cloud

      Console

      Para encontrar um número de projeto do Google Cloud, siga estas etapas:

      1. Acesse a página Painel no console do Google Cloud.

        Ir para o painel

      2. Clique na caixa do seletor na barra de menus.
      3. Escolha a organização na caixa Selecionar de e pesquise o nome do projeto.
      4. Clique no nome do projeto para alternar para ele. O número do projeto é mostrado no card Informações do projeto.

      CLI da gcloud

      É possível recuperar um número de projeto do Google Cloud com o seguinte comando:

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

    • folders/FOLDER_ID

      Como encontrar um ID de pasta do Google Cloud

      Console

      Para encontrar um ID da pasta do Google Cloud, siga estas etapas:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud

      2. Clique na caixa do seletor na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Pesquise o nome da pasta. O ID é exibido ao lado do nome da pasta.

      CLI da gcloud

      Para recuperar um ID de pasta do Google Cloud localizado no nível da organização, use o seguinte 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)"

      Em que TOP_LEVEL_FOLDER_NAME pode ser uma correspondência de string completa ou parcial. Remova a opção --format para ver mais informações sobre as pastas encontradas.

      Para obter o ID de uma pasta dentro de outra pasta, liste as subpastas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Como encontrar um ID da organização do Google Cloud

      Console

      Para encontrar um ID da organização do Google Cloud, siga estas etapas:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud

      2. Clique na caixa do seletor na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Selecione a guia Todos. O ID é exibido ao lado do nome da organização.

      CLI da gcloud

      É possível recuperar um ID da organização do Google Cloud com o seguinte comando:

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

Outros parâmetros:

  • "force": true: substitui a tabela de destino, se ela existir. Isso só funcionará se a tabela tiver a mesma estrutura de partições esperada pela exportação.

    Se force for definido como true, a partição correspondente será substituída pelos resultados do snapshot, enquanto os dados em partições diferentes permanecerão intactos. Se force não for definido ou for definido como false, os dados serão anexados à partição correspondente.

A operação de exportação falhará se uma atualização de esquema ou uma tentativa de anexar dados falhar. Isso inclui se a tabela de destino já existe e não tem o esquema esperado pela exportação.

Como verificar o status de uma exportação

As operações são associadas a um ID, que é um UUID. Esse valor é potencialmente sensível, já que o comando gcloud asset operations describe não requer permissões adicionais para ser executado com êxito. Compartilhe o ID da operação apenas com usuários confiáveis.

O servidor rejeitará solicitações se uma solicitação anterior para o mesmo destino tiver sido iniciada há menos de 15 minutos e ainda estiver em execução. Podem ocorrer resultados indefinidos se o tempo de exportação for maior que 15 minutos e se uma solicitação consecutiva para o mesmo destino for executada antes que a primeira solicitação seja bem-sucedida.

Para verificar o status de uma exportação, execute os comandos a seguir.

CLI da gcloud

Para verificar o status da exportação, execute o comando a seguir. O OPERATION_PATH é exibido na resposta após a execução do comando de exportação.

gcloud asset operations describe OPERATION_PATH

REST

Para ver o status da exportação, execute o comando a seguir com o ID da operação retornado na resposta à exportação.

  1. O OPERATION_PATH pode ser encontrado no campo name da resposta à exportação, com o formato a seguir:

    "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
    
  2. Para verificar o status da exportação, execute o seguinte comando com 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
    

Como visualizar um instantâneo de um recurso

Para visualizar a tabela que contém os metadados do snapshot do recurso, siga estas etapas.

Console

  1. Acesse a página do BigQuery Studio no console do Google Cloud.

    Acessar o BigQuery Studio

  2. Para exibir as tabelas e visualizações no conjunto de dados, abra o painel de navegação. Na seção Recursos, selecione seu projeto para expandi-lo e, em seguida, selecione um conjunto de dados.

  3. Na lista, selecione a tabela.

  4. Selecione Detalhes e anote o valor em Número de linhas. Talvez esse valor seja necessário para controlar o ponto de partida de seus resultados usando a CLI gcloud ou a API REST.

  5. Para visualizar um conjunto de dados de amostra, selecione Visualizar.

REST

Para navegar pelos dados da tabela, chame tabledata.list. No parâmetro tableId, especifique o nome da sua tabela.

É possível configurar os seguintes parâmetros opcionais para controlar a saída.

  • maxResults é o número máximo de resultados a serem retornados.

  • selectedFields é uma lista de colunas separadas por vírgulas a ser retornada. Se não for especificado, todas as colunas serão retornadas.

  • startIndex é o índice baseado em zero da primeira linha a ser lida.

Os valores são retornados incorporados em um objeto JSON para análise, conforme descrito na documentação de referência de tabledata.list.

A exportação lista recursos e os respectivos nomes.

Como consultar um snapshot de um recurso

Depois de exportar seu snapshot para o BigQuery, é possível executar consultas nos metadados do recurso. Para saber mais sobre vários casos de uso típicos, veja Como exportar para consultas de amostra do BigQuery.

Por padrão, o BigQuery executa jobs de consulta interativa ou sob demanda, o que significa que ela é executada o mais rápido possível. As consultas interativas são contabilizadas no limite de taxa simultânea e no limite diário.

Os resultados da consulta são salvos em uma tabela temporária ou permanente. É possível anexar ou substituir dados em uma tabela atual ou criar uma nova tabela, se não houver nenhuma com o mesmo nome.

Para executar uma consulta interativa que grava a saída em uma tabela temporária, conclua as etapas a seguir.

Console

  1. Acesse a página do BigQuery Studio no console do Google Cloud.

    Acessar o BigQuery Studio

  2. Selecione Criar nova consulta.

  3. Na área de texto do Editor de consultas, insira uma consulta SQL do BigQuery válida.

  4. Opcional: para alterar o local de processamento de dados, conclua as etapas a seguir.

    1. Selecione Mais e, em seguida, selecione Configurações de consulta.

    2. Em Local de processamento, selecione Seleção automática e, em seguida, escolha o local dos dados.

    3. Para atualizar as configurações de consulta, selecione Salvar.

  5. Selecione Executar.

REST

  1. Para iniciar um novo job, chame o método jobs.insert. No recurso do job, defina os parâmetros a seguir.

    • No campo configuration, defina query como um JobConfigurationQuery que descreve o job de consulta do BigQuery.

    • No campo jobReference, defina location como apropriado para seu job.

  2. Para pesquisar resultados, chame getQueryResults. Pesquisar até jobComplete igual a true. É possível verificar se há erros e avisos na lista errors.