Exportar a BigQuery

En este tema, se muestra cómo exportar los metadatos de activo de tu organización, carpeta o proyecto a una tabla de BigQuery y, luego, ejecutar un análisis de datos en tu inventario. BigQuery brinda una experiencia similar a SQL para que los usuarios analicen datos y generen estadísticas significativas sin usar secuencias de comandos personalizadas.

Antes de comenzar

Antes de comenzar, completa los pasos que se indican a continuación.

  1. Habilita la API de Cloud Asset Inventory en el proyecto en el que ejecutarás los comandos de la API.

    Habilitar la API de Cloud Asset Inventory

  2. Configura los permisos necesarios para llamar a la API de Cloud Asset Inventory mediante la CLI de gcloud o la API.

  3. Completa los siguientes pasos para configurar el entorno.

    gcloud CLI

    Si quieres configurar tu entorno para usar gcloud CLI a fin de llamar a la API de Cloud Asset Inventory, instala Google Cloud CLI en tu cliente local.

    REST

    Para configurar tu entorno a fin de llamar a la API de Cloud Asset Inventory con el comando curl, completa los siguientes pasos.

    1. Confirma que tienes acceso al comando curl.

    2. Asegúrate de otorgar a tu cuenta uno de los siguientes roles en tu proyecto, organización o carpeta.

      • Función de visualizador de Cloud Asset (roles/cloudasset.viewer)

      • Función básica de propietario (roles/owner)

  4. Si exportas metadatos de un proyecto a otro, asegúrate de que la cuenta de servicio predeterminada de Cloud Asset Inventory del proyecto de exportación exista y tenga los permisos correctos.

  5. Crea un conjunto de datos de BigQuery.

Limitaciones

Cuando exportes el resumen de un elemento, ten en cuenta lo siguiente:

  • No se admiten las tablas de BigQuery encriptadas con claves personalizadas de Cloud Key Management Service (Cloud KMS).

  • No se admite agregar el resultado de la exportación a una tabla existente, a menos que exportes a una tabla con particiones. La tabla de destino debe estar vacía o debes reemplazarla. Para reemplazarlo, usa la marca --output-bigquery-force con gcloud CLI o usa force con la API de REST.

  • Los tipos de recursos de Google Kubernetes Engine (GKE), excepto container.googleapis.com/Cluster y container.googleapis.com/NodePool, no son compatibles cuando se exporta a tablas separadas por tipo de recurso.

  • Si la tabla a la que exportarás ya existe y a la que ya se está exportando, se mostrará un error 400.

Configura el esquema de BigQuery para la exportación

A cada tabla de BigQuery se define en un esquema que describe los nombres de las columnas, los tipos de datos y otra información. Configurar el tipo de contenido durante la exportación determina el esquema para tu tabla.

  • Recurso o sin especificar: Cuando configuras el tipo de contenido en RESOURCE o no lo especificas, y estableces la marca per-asset-type en false o no la usas, se crea una tabla de BigQuery que tiene el siguiente esquema.

    Esquema de recursos

    [
      {
        "name": "name",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "asset_type",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "resource",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "version",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "discovery_document_uri",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "discovery_name",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "resource_url",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "parent",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "data",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "location",
            "type": "STRING",
            "mode": "NULLABLE"
          }
        ]
      },
      {
        "name": "ancestors",
        "type": "STRING",
        "mode": "REPEATED"
      },
      {
        "name": "update_time",
        "type": "TIMESTAMP",
        "mode": "NULLABLE"
      }
    ]

    La columna resource.data son los metadatos de recursos representados como una string JSON.

    Cuando configuras el tipo de contenido en RESOURCE o no configuras el tipo de contenido y estableces la marca per-asset-type en true, creas tablas separadas por tipo de recurso. El esquema de cada tabla incluye columnas de tipo RECORD asignadas a los campos anidados en el campo Resource.data de ese tipo de recurso (hasta los 15 niveles anidados que admite BigQuery). Para ver tablas de ejemplo de BigQuery por tipo, consulta projects/export-assets-examples/datasets/structured_export.

  • Política de IAM: Cuando configuras el tipo de contenido como IAM_POLICY en la API de REST o iam-policy en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.

    Esquema de política de 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 de la organización: Cuando configuras el tipo de contenido como ORG_POLICY en la API de REST o org-policy en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.

    Esquema de políticas de la organización

    [
      {
        "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: Cuando configuras el tipo de contenido como ACCESS_POLICY en la API de REST o access-policy en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.

    Esquema de la política 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"
      }
    ]
  • Inventario de instancias de OSConfig: cuando configuras el tipo de contenido como OS_INVENTORY en la API de REST o os-inventory en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.

    Esquema del inventario del 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"
      }
    ]
  • Relación: Cuando configuras el tipo de contenido como RELATIONSHIP en la API de REST o relationship en gcloud CLI, creas una tabla de BigQuery que tiene el siguiente esquema.

    Esquema de relación

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

Exporta una instantánea del recurso a BigQuery

Exportar recursos en una marca de tiempo determinada

Para exportar una instantánea de elementos en una marca de tiempo determinada a una tabla de BigQuery llamada TABLE_NAME, realiza una de las siguientes solicitudes.

gcloud

Proyectos

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

Ingresa los siguientes valores:

  • PROJECT_ID por el ID del proyecto cuyos metadatos deseas exportar.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación con gcloud config set project. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo. El tipo de contenido access-policy solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.

  • SNAPSHOT_TIME: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: La tabla a la que exportas los metadatos. Si no existe, se crea.

Otras marcas:

  • --output-bigquery-force: Reemplaza la tabla de destino si existe.

Carpetas

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

Ingresa los siguientes valores:

  • FOLDER_ID: El ID de la carpeta cuyos metadatos deseas exportar.

    Cómo encontrar un ID de carpeta de Google Cloud

    Consola

    Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
    4. Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

    gcloud CLI

    Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

    En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción --format para ver más información sobre las carpetas encontradas.

    Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación con gcloud config set project. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo. El tipo de contenido access-policy solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.

  • SNAPSHOT_TIME: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

  • PROJECT_ID: El ID del proyecto en el que se encuentra la tabla de BigQuery.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: La tabla a la que exportas los metadatos. Si no existe, se crea.

Otras marcas:

  • --output-bigquery-force: Reemplaza la tabla de destino si existe.

Organizaciones

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

Ingresa los siguientes valores:

  • ORGANIZATION_ID: El ID de la organización cuyos metadatos deseas exportar.

    Cómo encontrar un ID de organización de Google Cloud

    Consola

    Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
    4. Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

    gcloud CLI

    Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:

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

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación con gcloud config set project. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo.

  • SNAPSHOT_TIME: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

  • PROJECT_ID: El ID del proyecto en el que se encuentra la tabla de BigQuery.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: La tabla a la que exportas los metadatos. Si no existe, se crea.

Otras marcas:

  • --output-bigquery-force: Reemplaza la tabla de destino si existe.

REST

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

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Es el ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus conjuntos de datos y tablas de BigQuery. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo. El tipo de contenido ACCESS_POLICY solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se creará una tabla vacía.

  • SNAPSHOT_TIME: Opcional La hora a la que deseas tomar una instantánea de tus elementos, en formato RFC 3339. El valor debe ser la hora actual o una hora de no más de 35 días en el pasado. Si no se proporciona, se toma una instantánea en el momento actual.

  • PROJECT_ID: El ID del proyecto en el que se encuentra la tabla de BigQuery.

  • DATASET_ID: Es el ID del conjunto de datos de BigQuery.

  • TABLE_NAME La tabla a la que exportas los metadatos. Si no existe, se crea.

  • SCOPE: El alcance puede ser un proyecto, una carpeta o una organización.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Consola

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar una opción y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiarlo. El número de proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

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

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Consola

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Consola

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:

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

Otros parámetros:

  • "force": true: Reemplaza la tabla de destino, si existe.

Exportar tablas separadas para cada tipo de recurso

Si quieres exportar elementos a tablas de BigQuery separadas para cada tipo de recurso, usa la marca --per-asset-type. El nombre de cada tabla es TABLE_NAME concatenado con _ (guion bajo) y el nombre del tipo de recurso. Los caracteres que no son alfanuméricos se reemplazan por _.

Ten en cuenta que los tipos de recursos de GKE, excepto container.googleapis.com/Cluster y container.googleapis.com/NodePool, no son compatibles con este tipo de exportación.

gcloud

Proyectos

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

Ingresa los siguientes valores:

  • PROJECT_ID por el ID del proyecto cuyos metadatos deseas exportar.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación con gcloud config set project. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo. El tipo de contenido access-policy solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.

  • SNAPSHOT_TIME: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: La tabla a la que exportas los metadatos. Si no existe, se crea.

Otras marcas:

  • --output-bigquery-force: Reemplaza la tabla de destino si existe.

  • --per-asset-type: Exporta a varias tablas de BigQuery por tipo de recurso.

Carpetas

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

Ingresa los siguientes valores:

  • FOLDER_ID: El ID de la carpeta cuyos metadatos deseas exportar.

    Cómo encontrar un ID de carpeta de Google Cloud

    Consola

    Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
    4. Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

    gcloud CLI

    Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

    En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción --format para ver más información sobre las carpetas encontradas.

    Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación con gcloud config set project. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo. El tipo de contenido access-policy solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.

  • SNAPSHOT_TIME: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

  • PROJECT_ID: El ID del proyecto en el que se encuentra la tabla de BigQuery.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: La tabla a la que exportas los metadatos. Si no existe, se crea.

Otras marcas:

  • --output-bigquery-force: Reemplaza la tabla de destino si existe.

  • --per-asset-type: Exporta a varias tablas de BigQuery por tipo de recurso.

Organizaciones

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

Ingresa los siguientes valores:

  • ORGANIZATION_ID: El ID de la organización para la que deseas obtener estadísticas.

    Cómo encontrar un ID de organización de Google Cloud

    Consola

    Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
    4. Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

    gcloud CLI

    Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:

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

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación con gcloud config set project. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo.

  • SNAPSHOT_TIME: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

  • PROJECT_ID: El ID del proyecto en el que se encuentra la tabla de BigQuery.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: La tabla a la que exportas los metadatos. Si no existe, se crea.

Otras marcas:

  • --output-bigquery-force: Reemplaza la tabla de destino si existe.

  • --per-asset-type: Exporta a varias tablas de 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

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Es el ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus conjuntos de datos y tablas de BigQuery. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo. El tipo de contenido ACCESS_POLICY solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se creará una tabla vacía.

  • SNAPSHOT_TIME: Opcional La hora a la que quieres tomar una instantánea de tus elementos, en formato RFC 3339. El valor debe ser la hora actual o una hora de no más de 35 días en el pasado. Si no se proporciona, se toma una instantánea en el momento actual.

  • PROJECT_ID: El ID del proyecto en el que se encuentra la tabla de BigQuery.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: La tabla a la que exportas los metadatos. Si no existe, se crea.

  • SCOPE: El alcance puede ser un proyecto, una carpeta o una organización.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Consola

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar una opción y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiarlo. El número de proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

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

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Consola

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Consola

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:

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

Otros parámetros:

  • "force": true: Reemplaza la tabla de destino, si existe.

Si la exportación a cualquier tabla falla, la operación de exportación completa falla y muestra el primer error. Se conservan los resultados de las exportaciones exitosas anteriores.

Los siguientes tipos se empaquetan en una string JSON para solucionar un problema de compatibilidad entre los tipos de BigQuery y JSON3.

  • google.protobuf.Timestamp

  • google.protobuf.Duration

  • google.protobuf.FieldMask

  • google.protobuf.ListValue

  • google.protobuf.Value

  • google.protobuf.Struct

  • google.api.*

Exporta a una tabla particionada

Para exportar elementos de un proyecto a tablas particionadas, define la clave de partición en la solicitud de exportación. La instantánea exportada se almacena en una tabla de BigQuery llamada TABLE_NAME con un nivel de detalle diario y dos columnas de marca de tiempo adicionales, readTime y requestTime, una de las cuales se especifica mediante el valor PARTITION_KEY.

Para exportar elementos de un proyecto a tablas con particiones, realiza una de las siguientes solicitudes.

gcloud

Proyectos

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

Ingresa los siguientes valores:

  • PROJECT_ID por el ID del proyecto cuyos metadatos deseas exportar.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación con gcloud config set project. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo. El tipo de contenido access-policy solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.

  • SNAPSHOT_TIME: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: Es la tabla a la que se exportarán los metadatos. Si no existe, se crea.

  • PARTITION_KEY: Es la columna de claves de partición cuando se exporta a tablas particionadas de BigQuery. Los valores válidos son read-time y request-time.

Otras marcas:

  • --output-bigquery-force: Reemplaza la tabla de destino si existe.

Carpetas

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

Ingresa los siguientes valores:

  • FOLDER_ID: El ID de la carpeta cuyos metadatos deseas exportar.

    Cómo encontrar un ID de carpeta de Google Cloud

    Consola

    Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
    4. Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

    gcloud CLI

    Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

    En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción --format para ver más información sobre las carpetas encontradas.

    Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación con gcloud config set project. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo. El tipo de contenido access-policy solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se crea una tabla vacía.

  • SNAPSHOT_TIME: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

  • PROJECT_ID: El ID del proyecto en el que se encuentra la tabla de BigQuery.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: La tabla a la que exportas los metadatos. Si no existe, se crea.

  • PARTITION_KEY: Es la columna de claves de partición cuando se exporta a tablas particionadas de BigQuery. Los valores válidos son read-time y request-time.

Otras marcas:

  • --output-bigquery-force: Reemplaza la tabla de destino si existe.

Organización

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

Ingresa los siguientes valores:

  • ORGANIZATION_ID: El ID de la organización para la que deseas obtener estadísticas.

    Cómo encontrar un ID de organización de Google Cloud

    Consola

    Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
    4. Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

    gcloud CLI

    Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:

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

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus tablas y conjuntos de datos de BigQuery. No es obligatorio si ya cambiaste al proyecto de facturación con gcloud config set project. Obtén más información sobre los proyectos de facturación.

  • CONTENT_TYPE: Es el tipo de contenido del activo.

  • SNAPSHOT_TIME: Opcional El momento en el que quieres tomar una instantánea de tus elementos. El valor debe ser la hora actual o una hora de no más de 35 días de antigüedad. Cuando no se proporciona, se toma una instantánea en la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

  • PROJECT_ID: El ID del proyecto en el que se encuentra la tabla de BigQuery.

  • DATASET_ID: el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: La tabla a la que exportas los metadatos. Si no existe, se crea.

  • PARTITION_KEY: Es la columna de claves de partición cuando se exporta a tablas particionadas de BigQuery. Los valores válidos son read-time y request-time.

Otras marcas:

  • --output-bigquery-force: Reemplaza la tabla de destino si existe.

Si la marca output-bigquery-force se configura como true, los resultados de la instantánea reemplazan la partición correspondiente. Sin embargo, los datos de una o más particiones diferentes permanecen intactos. Si no se configura output-bigquery-force o false, agrega los datos a la partición correspondiente.

La operación de exportación falla si falla una actualización del esquema o un intento de adjuntar datos. Esto incluye si la tabla de destino ya existe y no tiene el esquema que espera la exportación.

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

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Es el ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tus conjuntos de datos y tablas de BigQuery. Obtén más información sobre los proyectos de facturación.

  • PROJECT_ID: El ID del proyecto en el que se encuentra la tabla de BigQuery.

  • CONTENT_TYPE: Es el tipo de contenido del activo. El tipo de contenido ACCESS_POLICY solo se puede exportar para una organización. Si lo exportas para un proyecto o una carpeta, se creará una tabla vacía.

  • SNAPSHOT_TIME: Opcional La hora a la que deseas tomar una instantánea de tus elementos, en formato RFC 3339. El valor debe ser la hora actual o una hora de no más de 35 días en el pasado. Si no se proporciona, se toma una instantánea en el momento actual.

  • DATASET_ID: Es el ID del conjunto de datos de BigQuery.

  • TABLE_NAME: Es la tabla a la que exportas los metadatos. Si no existe, se crea.

  • PARTITION_KEY: Es la columna de claves de partición cuando se exporta a tablas particionadas de BigQuery. Los valores válidos son read-time y request-time.

  • SCOPE: El alcance puede ser un proyecto, una carpeta o una organización.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Consola

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar una opción y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiarlo. El número de proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

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

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Consola

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Busca el nombre de la carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia completa o parcial de strings. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Consola

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar una opción y, luego, selecciona tu organización.
      4. Haga clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar el ID de una organización de Google Cloud con el siguiente comando:

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

Otros parámetros:

  • "force": true: Reemplaza la tabla de destino, si existe. Esto solo funciona si la tabla tiene la misma estructura de partición que espera la exportación.

    Si force se configura como true, los resultados de la instantánea reemplazan la partición correspondiente, mientras que los datos de diferentes particiones permanecen intactos. Si force no está configurado o se establece en false, los datos se agregan a la partición correspondiente.

La operación de exportación falla si falla una actualización del esquema o un intento de adjuntar datos. Esto incluye si la tabla de destino ya existe y no tiene el esquema que espera la exportación.

Verifica el estado de una exportación

Las operaciones se asocian con un ID de operación, que es un UUID. Este valor es potencialmente sensible, ya que el comando gcloud asset operations describe no requiere permisos adicionales para ejecutarse correctamente. Asegúrate de compartir el ID de operación solo con usuarios de confianza.

El servidor rechaza las solicitudes si una solicitud anterior al mismo destino comenzó hace menos de 15 minutos y aún se está ejecutando. Pueden producirse resultados indefinidos si el tiempo de exportación es superior a 15 minutos y se ejecuta una solicitud consecutiva al mismo destino antes de que la primera solicitud tenga éxito.

Para verificar el estado de una exportación, ejecuta los siguientes comandos.

gcloud CLI

Para verificar el estado de la exportación, puedes ejecutar el siguiente comando. OPERATION_PATH se muestra en la respuesta después de ejecutar el comando de exportación.

gcloud asset operations describe OPERATION_PATH

REST

Para ver el estado de tu exportación, ejecuta el siguiente comando con el ID de operación que se muestra en la respuesta a tu exportación.

  1. Puedes encontrar el OPERATION_PATH en el campo name de la respuesta a la exportación, que tiene el siguiente formato:

    "name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
    
  2. Para verificar el estado de la exportación, ejecuta el siguiente comando con OPERATION_PATH:

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

Visualiza la instantánea de un activo

Para ver la tabla que contiene los metadatos de la instantánea de activos, completa los siguientes pasos.

Consola

  1. Ve a la página de BigQuery Studio en la consola de Google Cloud.

    Ve a BigQuery Studio

  2. Para mostrar las tablas y vistas del conjunto de datos, abre el panel de navegación. En la sección Recursos, selecciona el proyecto para expandirlo y, luego, selecciona un conjunto de datos.

  3. En la lista, selecciona tu tabla.

  4. Selecciona Detalles y anota el valor de Número de filas. Es posible que necesites este valor para controlar el punto de partida de tus resultados mediante gcloud CLI o la API de REST.

  5. Para ver una muestra del conjunto de datos, selecciona Vista previa.

REST

Para explorar los datos de la tabla, llama a tabledata.list. En el parámetro tableId, especifica el nombre de tu tabla.

Puedes configurar los siguientes parámetros opcionales para controlar el resultado.

  • maxResults es la cantidad máxima de resultados que se mostrarán.

  • selectedFields es una lista de las columnas separadas por comas que se mostrarán, si no se especifica, se mostrarán todas las columnas.

  • startIndex es el índice basado en cero de la fila inicial que se leerá.

Los valores se muestran unidos en un objeto JSON que debes analizar, como se describe en la documentación de referencia de tabledata.list.

La exportación enumera los elementos y sus nombres de recursos.

Consulta una instantánea de recursos

Después de exportar la instantánea a BigQuery, puedes ejecutar consultas en los metadatos de tus activos. Consulta Cómo exportar consultas de muestra de BigQuery para obtener más información sobre varios casos prácticos típicos.

De forma predeterminada, BigQuery ejecuta trabajos de consulta interactivos o a pedido, lo que significa que la consulta se ejecuta en cuanto sea posible. Las consultas interactivas se toman en cuenta para tu límite de frecuencia simultánea y límite diario.

Los resultados de las consultas se guardan en una tabla temporal o permanente. Puedes agregar o reemplazar datos en una tabla existente o crear una tabla nueva, si no existe una con el mismo nombre.

Para ejecutar una consulta interactiva que escribe el resultado en una tabla temporal, completa los siguientes pasos.

Consola

  1. Ve a la página de BigQuery Studio en la consola de Google Cloud.

    Ve a BigQuery Studio

  2. Selecciona Redactar consulta nueva.

  3. En el área de texto del Editor de consultas, ingresa una consulta de SQL de BigQuery válida.

  4. Opcional: Para cambiar la ubicación de procesamiento de datos, completa los siguientes pasos.

    1. Selecciona Más y, luego, Configuración de consulta.

    2. En Ubicación de procesamiento, selecciona Selección automática y, luego, elige la ubicación de tus datos.

    3. Para actualizar la configuración de la consulta, selecciona Guardar.

  5. Selecciona Ejecutar.

REST

  1. Para iniciar un trabajo nuevo, llama al método jobs.insert. En el recurso de trabajo, configura los siguientes parámetros.

    • En el campo configuration, configura el campo query como una JobConfigurationQuery que describa el trabajo de consulta de BigQuery.

    • En el campo jobReference, configura el campo location de forma adecuada para tu trabajo.

  2. Para consultar los resultados, llama a getQueryResults. Busca hasta que jobComplete sea igual a true. Puedes comprobar si hay errores y advertencias en la lista errors.