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.
Ative a API Cloud Asset Inventory no projeto em que você executará os comandos da API.
Configure as permissões necessárias para chamar a API Cloud Asset Inventory usando a CLI gcloud ou a API.
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.Confirme se você tem acesso ao comando
curl
.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
)
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.
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 useforce
com a API REST.Os tipos de recursos do Google Kubernetes Engine (GKE), exceto
container.googleapis.com/Cluster
econtainer.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çãoper-asset-type
comofalse
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çãoper-asset-type
comotrue
, você cria tabelas separadas por tipo de recurso. O esquema de cada tabela inclui colunas do tipo RECORD mapeadas para os campos aninhados no campoResource.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 ouiam-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 ouorg-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 ouaccess-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 ouos-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 ourelationship
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 comgcloud config set project
. Leia mais sobre projetos de faturamento.CONTENT_TYPE
: o tipo de conteúdo do recurso. O tipo de conteúdoaccess-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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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 comgcloud config set project
. Leia mais sobre projetos de faturamento.CONTENT_TYPE
: o tipo de conteúdo do recurso. O tipo de conteúdoaccess-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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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 comgcloud 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údoACCESS_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:
-
Acesse a página Painel no console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Escolha a organização na caixa Selecionar de e pesquise o nome do projeto.
- 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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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 comgcloud config set project
. Leia mais sobre projetos de faturamento.CONTENT_TYPE
: o tipo de conteúdo do recurso. O tipo de conteúdoaccess-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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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 comgcloud config set project
. Leia mais sobre projetos de faturamento.CONTENT_TYPE
: o tipo de conteúdo do recurso. O tipo de conteúdoaccess-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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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 comgcloud 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údoACCESS_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:
-
Acesse a página Painel no console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Escolha a organização na caixa Selecionar de e pesquise o nome do projeto.
- 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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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 comgcloud config set project
. Leia mais sobre projetos de faturamento.CONTENT_TYPE
: o tipo de conteúdo do recurso. O tipo de conteúdoaccess-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ãoread-time
erequest-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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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 comgcloud config set project
. Leia mais sobre projetos de faturamento.CONTENT_TYPE
: o tipo de conteúdo do recurso. O tipo de conteúdoaccess-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ãoread-time
erequest-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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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 comgcloud 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ãoread-time
erequest-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údoACCESS_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ãoread-time
erequest-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:
-
Acesse a página Painel no console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Escolha a organização na caixa Selecionar de e pesquise o nome do projeto.
- 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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha sua organização.
- 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 comotrue
, a partição correspondente será substituída pelos resultados do snapshot, enquanto os dados em partições diferentes permanecerão intactos. Seforce
não for definido ou for definido comofalse
, 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.
O
OPERATION_PATH
pode ser encontrado no camponame
da resposta à exportação, com o formato a seguir:"name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
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
Acesse a página do BigQuery Studio no console do Google Cloud.
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.
Na lista, selecione a tabela.
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.
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
Acesse a página do BigQuery Studio no console do Google Cloud.
Selecione
Criar nova consulta.Na área de texto do Editor de consultas, insira uma consulta SQL do BigQuery válida.
Opcional: para alterar o local de processamento de dados, conclua as etapas a seguir.
Selecione Mais e, em seguida, selecione Configurações de consulta.
Em Local de processamento, selecione Seleção automática e, em seguida, escolha o local dos dados.
Para atualizar as configurações de consulta, selecione Salvar.
Selecione Executar.
REST
Para iniciar um novo job, chame o método
jobs.insert
. No recurso do job, defina os parâmetros a seguir.No campo
configuration
, definaquery
como um JobConfigurationQuery que descreve o job de consulta do BigQuery.No campo
jobReference
, definalocation
como apropriado para seu job.
Para pesquisar resultados, chame
getQueryResults
. Pesquisar atéjobComplete
igual atrue
. É possível verificar se há erros e avisos na listaerrors
.