Anda dapat membuat kueri aset di project, folder, atau organisasi menggunakan dialek yang kompatibel dengan SQL BigQuery.
Sebelum memulai
- Aktifkan Cloud Asset Inventory API di project tempat Anda menjalankan perintah Cloud Asset Inventory. 
- Pastikan akun Anda memiliki peran yang benar untuk memanggil Cloud Asset Inventory API. Untuk izin individual untuk setiap jenis panggilan, lihat Izin. 
Batasan
- Nama jenis aset menggantikan - .dan- /dengan- _. Misalnya,- compute.googleapis.com/Instancemenjadi- compute_googleapis_com_Instance.
- Permintaan harus berupa kueri - SELECT.
- SQL BigQuery lama tidak didukung. 
- Hasil kueri yang lebih besar dari 10 GB tidak didukung. 
- Hasil kueri yang lebih besar dari 10 MB atau 1.000 baris selalu diberi nomor halaman. 
- Hasil kueri hanya dapat diekspor ke set data BigQuery di multi-region - US.
Tabel yang dapat Anda kueri
Anda dapat membuat kueri tabel berikut:
- Untuk jenis konten - RESOURCE, nama tabel dalam set data sesuai dengan nama jenis aset, dengan asumsi bahwa jenis aset ada. Misalnya, tabel- compute_googleapis_com_Instanceberisi metadata instance Compute Engine.
- Untuk jenis konten non- - RESOURCE, nama tabel dalam set data sesuai dengan nama jenis konten RPC/REST. Misalnya,- ACCESS_POLICY.
- Untuk membuat kueri metadata standar resource di seluruh jenis resource, gunakan nama tabel - STANDARD_METADATA. Ini mencakup semua kolom kecuali- resource.DATA, yang khusus untuk setiap jenis resource.
Mengkueri metadata aset
Konsol
Untuk mengkueri metadata aset untuk project, folder, atau organisasi Anda, selesaikan langkah-langkah berikut:
- 
        Di konsol Google Cloud , buka tab Asset query di halaman Asset Inventory. Jika tab Kueri aset tidak muncul, Anda memerlukan akses ke paket Security Command Center Premium atau Enterprise, atau Gemini Cloud Assist. 
- Beralihlah ke project, folder, atau organisasi yang ingin Anda kueri.
- Klik tab Kueri aset.
- 
        Untuk mengkueri metadata aset, gunakan kueri contoh atau buat kueri Anda sendiri: - Untuk menggunakan sampel, klik entri di tab Query library untuk melihat pratinjau kueri. Klik Terapkan untuk menyalin sampel tersebut ke dalam kotak Edit kueri, lalu edit kueri, atau klik Jalankan untuk menjalankannya.
- Untuk membuat kueri Anda sendiri, masukkan teks kueri langsung ke dalam kotak Edit query, lalu klik Run untuk menjalankannya. Untuk membantu menulis kueri Anda sendiri, Anda dapat mengklik tabel di panel Pilih tabel untuk melihat pratinjau skema dan kontennya. Lihat Sintaksis kueri untuk mempelajari cara membuat kueri.
 Metadata aset yang cocok dengan kueri ditampilkan di tab Hasil kueri. 
- 
        Opsional: Untuk mendownload kumpulan hasil kueri dalam format CSV, klik Ekspor. Ukuran maksimum file CSV adalah 2 MB. Jika permintaan download gagal karena ukuran file melebihi batas ini, pesan akan muncul dengan petunjuk untuk mengekspor hasil lengkap. 
gcloud
gcloud asset query \ --SCOPE \ --statement="SQL_SELECT_QUERY" \ --timeout="TIMEOUTs"
Berikan nilai berikut:
- 
    SCOPE: Gunakan salah satu nilai berikut:- 
        project=PROJECT_ID, denganPROJECT_IDadalah ID project yang memiliki aset yang ingin Anda kueri.
- 
        folder=FOLDER_ID, denganFOLDER_IDadalah ID folder yang memiliki aset yang ingin Anda kueri.Cara menemukan ID Google Cloud folder Google Cloud consoleUntuk menemukan ID folder Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
 gcloud CLIAnda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut: 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)" Dengan TOP_LEVEL_FOLDER_NAME adalah kecocokan string sebagian atau penuh untuk nama folder. Hapus tanda --formatuntuk melihat informasi selengkapnya tentang folder yang ditemukan.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas: gcloud resource-manager folders list --folder=FOLDER_ID 
- 
            
- 
        organization=ORGANIZATION_ID, denganORGANIZATION_IDadalah ID organisasi yang memiliki aset yang ingin Anda kueri.Cara menemukan ID Google Cloud organisasi Google Cloud consoleUntuk menemukan ID organisasi Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
 gcloud CLIAnda dapat mengambil ID Google Cloud organisasi dengan perintah berikut: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    SQL_SELECT_QUERY: KueriSELECTSQL.
- 
    TIMEOUT: Opsional. Waktu maksimum, dalam detik, yang harus ditunggu klien agar kueri selesai sebelum melanjutkan. Gunakan waktu tunggu untuk menjalankan kueri secara asinkron, dan ambil hasilnya nanti dengan referensi tugas.
Lihat referensi gcloud CLI untuk semua opsi.
Contoh
Jalankan perintah berikut untuk mendapatkan nama dan jenis aset dari dua instance Compute Engine
  pertama dalam project my-project.
gcloud asset query \ --project=my-project \ --statement=" SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2"
Respons tugas selesai
Contoh berikut menunjukkan respons terhadap kueri contoh sebelumnya. Respons
      berisi referensi tugas dan memberi tahu Anda apakah tugas telah
      selesai (done: true). Jika tugas telah selesai, objek
      queryResult akan diisi dengan data yang sesuai,
      dan hasilnya akan dicantumkan setelahnya.
done: true jobReference: 0000000000000000000000000000000000000000000000000000000000000000 queryResult: nextPageToken: '' totalRows: '2' name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1 assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/instance-2 assetType: compute.googleapis.com/Instance
Respons tugas yang belum selesai
Jika Anda menetapkan waktu tunggu dalam permintaan, kueri akan dilakukan
      secara asinkron dan Anda akan dikirimi respons yang menunjukkan bahwa tugas
      belum selesai (done: false). Respons semacam ini berisi
      referensi tugas dan objek queryResult yang tidak terisi:
done: false jobReference: 0000000000000000000000000000000000000000000000000000000000000000 queryResult: nextPageToken: '' totalRows: '0'
Anda dapat menggunakan nilai jobReference untuk
      mengambil hasil kueri nanti, setelah
      tugas selesai dan data tersedia.
REST
Metode HTTP dan URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:queryAssets
Meminta isi JSON:
{ "statement": "SQL_SELECT_QUERY", "timeout": "TIMEOUTs", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
Berikan nilai berikut:
- 
    SCOPE_PATH: Gunakan salah satu nilai berikut:Nilai yang diizinkan adalah: - 
        projects/PROJECT_ID, denganPROJECT_IDadalah ID project yang memiliki aset yang ingin Anda kueri.
- 
        projects/PROJECT_NUMBER, denganPROJECT_NUMBERadalah jumlah project yang memiliki aset yang ingin Anda kueri.Cara menemukan Google Cloud nomor project Google Cloud consoleUntuk menemukan nomor project Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka halaman Welcome di konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- 
            Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat judul Selamat datang. Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang Anda cari, buka halaman Kelola resource dan filter daftar menggunakan nama project tersebut. 
 gcloud CLIAnda dapat mengambil nomor project Google Cloud dengan perintah berikut: gcloud projects describe PROJECT_ID --format="value(projectNumber)" 
- 
            
- 
        folders/FOLDER_ID, denganFOLDER_IDadalah ID folder yang memiliki aset yang ingin Anda kueri.Cara menemukan ID Google Cloud folder Google Cloud consoleUntuk menemukan ID folder Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
 gcloud CLIAnda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut: 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)" Dengan TOP_LEVEL_FOLDER_NAME adalah kecocokan string sebagian atau penuh untuk nama folder. Hapus tanda --formatuntuk melihat informasi selengkapnya tentang folder yang ditemukan.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas: gcloud resource-manager folders list --folder=FOLDER_ID 
- 
            
- 
        organizations/ORGANIZATION_ID, denganORGANIZATION_IDadalah ID organisasi yang memiliki aset yang ingin Anda kueri.Cara menemukan ID Google Cloud organisasi Google Cloud consoleUntuk menemukan ID organisasi Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
 gcloud CLIAnda dapat mengambil ID Google Cloud organisasi dengan perintah berikut: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    SQL_SELECT_QUERY: KueriSELECTSQL.
- 
    TIMEOUT: Opsional. Waktu maksimum, dalam detik, yang harus ditunggu klien agar kueri selesai sebelum melanjutkan. Gunakan waktu tunggu untuk menjalankan kueri secara asinkron, dan ambil hasilnya nanti dengan referensi tugas.
- 
    PAGE_SIZE: Opsional. Jumlah hasil yang akan ditampilkan per halaman. Maksimumnya adalah 500. Jika nilai ditetapkan ke0atau nilai negatif, default yang sesuai akan dipilih.nextPageTokenditampilkan untuk mengambil hasil berikutnya.
- 
    PAGE_TOKEN: Opsional. Respons permintaan panjang dipisahkan di beberapa halaman. JikapageTokentidak ditentukan, halaman pertama akan ditampilkan. Halaman berikutnya dapat dipanggil menggunakannextPageTokenrespons sebelumnya sebagai nilaipageToken.
Lihat referensi REST untuk semua opsi.
Contoh perintah
Jalankan salah satu perintah berikut untuk mendapatkan nama dan jenis aset dari dua
  instance Compute Engine pertama dalam project my-project.
curl (Linux, macOS, atau Cloud Shell)
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "statement": " SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } $body = @" { "statement": " SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets" | Select-Object -Expand Content
Respons tugas selesai
Contoh berikut menunjukkan respons terhadap kueri contoh sebelumnya. Respons
      berisi referensi tugas dan memberi tahu Anda apakah tugas telah
      selesai ("done": true). Jika tugas telah selesai, objek
      queryResult akan diisi dengan data yang sesuai.
Hasil kueri dibagi menjadi rows, array yang berisi
      metadata aset, dan schema, objek yang menjelaskan
      skema untuk setiap aset dalam array rows. Hal ini dilakukan untuk
      meminimalkan duplikasi nama dan jenis kolom dalam respons yang besar.
Demikian pula, f dan v digunakan dalam array
      rows, bukan fields dan
      value untuk menjaga agar respons sekecil mungkin.
{ "jobReference": "0000000000000000000000000000000000000000000000000000000000000000", "done": true, "queryResult": { "rows": [ { "f": [ { "v": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1" }, { "v": "compute.googleapis.com/Instance" } ] }, { "f": [ { "v": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-2" }, { "v": "compute.googleapis.com/Instance" } ] } ], "schema": { "fields": [ { "field": "name", "type": "STRING", "mode": "NULLABLE", "fields": [] }, { "field": "assetType", "type": "STRING", "mode": "NULLABLE", "fields": [] } ] }, "nextPageToken": "", "totalRows": "1" } }
Respons tugas yang belum selesai
Jika Anda menetapkan waktu tunggu dalam permintaan, kueri akan dilakukan secara asinkron dan Anda akan dikirimi respons yang menunjukkan bahwa tugas belum selesai ("done": false). Respons semacam ini berisi referensi tugas dan objek queryResult yang tidak terisi:
{ "jobReference": "0000000000000000000000000000000000000000000000000000000000000000", "done": false, "queryResult": { "rows": [], "schema": { "fields": [] }, "nextPageToken": "", "totalRows": "0" } }
Anda dapat menggunakan nilai jobReference untuk
      mengambil hasil kueri nanti, setelah
      tugas selesai dan data tersedia.
Mengambil hasil kueri nanti
Untuk mengambil permintaan yang memerlukan waktu lama untuk diselesaikan, buat salah satu permintaan berikut.
gcloud
gcloud asset query \ --SCOPE \ --job-reference="JOB_REFERENCE"
Berikan nilai berikut:
- 
    SCOPE: Gunakan salah satu nilai berikut:- 
        project=PROJECT_ID, denganPROJECT_IDadalah ID project yang memiliki aset yang ingin Anda kueri.
- 
        folder=FOLDER_ID, denganFOLDER_IDadalah ID folder yang memiliki aset yang ingin Anda kueri.Cara menemukan ID Google Cloud folder Google Cloud consoleUntuk menemukan ID folder Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
 gcloud CLIAnda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut: 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)" Dengan TOP_LEVEL_FOLDER_NAME adalah kecocokan string sebagian atau penuh untuk nama folder. Hapus tanda --formatuntuk melihat informasi selengkapnya tentang folder yang ditemukan.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas: gcloud resource-manager folders list --folder=FOLDER_ID 
- 
            
- 
        organization=ORGANIZATION_ID, denganORGANIZATION_IDadalah ID organisasi yang memiliki aset yang ingin Anda kueri.Cara menemukan ID Google Cloud organisasi Google Cloud consoleUntuk menemukan ID organisasi Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
 gcloud CLIAnda dapat mengambil ID Google Cloud organisasi dengan perintah berikut: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    JOB_REFERENCE: Nilai referensi tugas yang ditampilkan dalam respons sebelumnya.
Contoh
Jalankan perintah berikut untuk mendapatkan hasil kueri yang sebelumnya dijalankan di project my-project.
gcloud asset query \ --project=my-project \ --job-reference="0000000000000000000000000000000000000000000000000000000000000000"
REST
Metode HTTP dan URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:queryAssets
Meminta isi JSON:
{ "jobReference": "JOB_REFERENCE", "pageToken": "PAGE_TOKEN" }
Berikan nilai berikut:
- 
    SCOPE_PATH: Gunakan salah satu nilai berikut:Nilai yang diizinkan adalah: - 
        projects/PROJECT_ID, denganPROJECT_IDadalah ID project yang memiliki aset yang ingin Anda kueri.
- 
        projects/PROJECT_NUMBER, denganPROJECT_NUMBERadalah jumlah project yang memiliki aset yang ingin Anda kueri.Cara menemukan Google Cloud nomor project Google Cloud consoleUntuk menemukan nomor project Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka halaman Welcome di konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- 
            Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat judul Selamat datang. Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang Anda cari, buka halaman Kelola resource dan filter daftar menggunakan nama project tersebut. 
 gcloud CLIAnda dapat mengambil nomor project Google Cloud dengan perintah berikut: gcloud projects describe PROJECT_ID --format="value(projectNumber)" 
- 
            
- 
        folders/FOLDER_ID, denganFOLDER_IDadalah ID folder yang memiliki aset yang ingin Anda kueri.Cara menemukan ID Google Cloud folder Google Cloud consoleUntuk menemukan ID folder Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
 gcloud CLIAnda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut: 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)" Dengan TOP_LEVEL_FOLDER_NAME adalah kecocokan string sebagian atau penuh untuk nama folder. Hapus tanda --formatuntuk melihat informasi selengkapnya tentang folder yang ditemukan.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas: gcloud resource-manager folders list --folder=FOLDER_ID 
- 
            
- 
        organizations/ORGANIZATION_ID, denganORGANIZATION_IDadalah ID organisasi yang memiliki aset yang ingin Anda kueri.Cara menemukan ID Google Cloud organisasi Google Cloud consoleUntuk menemukan ID organisasi Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
 gcloud CLIAnda dapat mengambil ID Google Cloud organisasi dengan perintah berikut: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    JOB_REFERENCE: Nilai referensi tugas yang ditampilkan dalam respons sebelumnya.
- 
    PAGE_TOKEN: Opsional. Respons permintaan panjang dipisahkan di beberapa halaman. JikapageTokentidak ditentukan, halaman pertama akan ditampilkan. Halaman berikutnya dapat dipanggil menggunakannextPageTokenrespons sebelumnya sebagai nilaipageToken.
Contoh perintah
Jalankan salah satu perintah berikut untuk mendapatkan hasil kueri yang dijalankan sebelumnya.
curl (Linux, macOS, atau Cloud Shell)
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "jobReference": "0000000000000000000000000000000000000000000000000000000000000000" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } $body = @" { "jobReference": "0000000000000000000000000000000000000000000000000000000000000000" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets" | Select-Object -Expand Content
Mengekspor hasil kueri ke BigQuery
Hasil kueri ditampilkan sebagai respons Query Assets API. Untuk mengekspor hasil ke tabel BigQuery Anda sendiri, tentukan tujuan BigQuery dalam permintaan. Jika belum memilikinya, Anda harus membuat set data BigQuery sebelum membuat permintaan ini.
gcloud
gcloud asset query \ --SCOPE \ --billing-project=BILLING_PROJECT_ID \ --statement="SQL_SELECT_QUERY" \ --bigquery-table=projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \ --write-disposition="WRITE_METHOD"
Berikan nilai berikut:
- 
    SCOPE: Gunakan salah satu nilai berikut:- 
        project=PROJECT_ID, denganPROJECT_IDadalah ID project yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.
- 
        folder=FOLDER_ID, denganFOLDER_IDadalah ID folder yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan ID Google Cloud folder Google Cloud consoleUntuk menemukan ID folder Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
 gcloud CLIAnda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut: 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)" Dengan TOP_LEVEL_FOLDER_NAME adalah kecocokan string sebagian atau penuh untuk nama folder. Hapus tanda --formatuntuk melihat informasi selengkapnya tentang folder yang ditemukan.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas: gcloud resource-manager folders list --folder=FOLDER_ID 
- 
            
- 
        organization=ORGANIZATION_ID, denganORGANIZATION_IDadalah ID organisasi yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan ID Google Cloud organisasi Google Cloud consoleUntuk menemukan ID organisasi Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
 gcloud CLIAnda dapat mengambil ID Google Cloud organisasi dengan perintah berikut: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    SQL_SELECT_QUERY: KueriSELECTSQL.
- 
    BIGQUERY_PROJECT_ID: ID project tempat tabel BigQuery berada yang ingin Anda ekspor.
- 
    DATASET_ID: ID set data BigQuery.
- 
    TABLE_NAME: Tabel BigQuery tempat Anda mengekspor metadata. Jika tidak ada, maka akan dibuat.
- 
    WRITE_METHOD: Menentukan perilaku jika tabel atau partisi tujuan BigQuery sudah ada. Nilai berikut didukung:- 
        write-empty: Default. Jika tabel yang ada berisi data, error duplikat akan ditampilkan di hasil tugas.
- 
        write-append: Menambahkan data ke tabel atau partisi terbaru.
- 
        write-truncate: Menimpa seluruh tabel atau semua data partisi.
 
- 
        
Contoh
Jalankan perintah berikut untuk mendapatkan nama dan jenis aset dari dua instance Compute Engine
  pertama dalam project my-project, dan mengekspor hasilnya ke tabel
  BigQuery my-table dalam project my-project, dengan mengganti
  seluruh tabel jika sudah ada.
gcloud asset query \ --project=my-project \ --statement=" SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2" \ --bigquery-table=projects/my-project/datasets/my-dataset/tables/my-table \ --write-disposition="write-truncate"
REST
Metode HTTP dan URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:queryAssets
Header:
X-Goog-User-Project: BILLING_PROJECT_ID
Meminta isi JSON:
{ "statement": "SQL_SELECT_QUERY", "outputConfig": { "bigqueryDestination": { "dataset": "projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID", "table": "TABLE_NAME", "writeDisposition": "WRITE_METHOD" } }, "pageSize": "PAGE_SIZE" }
Berikan nilai berikut:
- 
    SCOPE_PATH: Gunakan salah satu nilai berikut:Nilai yang diizinkan adalah: - 
        projects/PROJECT_ID, denganPROJECT_IDadalah ID project yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.
- 
        projects/PROJECT_NUMBER, denganPROJECT_NUMBERadalah nomor project yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan Google Cloud nomor project Google Cloud consoleUntuk menemukan nomor project Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka halaman Welcome di konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- 
            Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat judul Selamat datang. Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang Anda cari, buka halaman Kelola resource dan filter daftar menggunakan nama project tersebut. 
 gcloud CLIAnda dapat mengambil nomor project Google Cloud dengan perintah berikut: gcloud projects describe PROJECT_ID --format="value(projectNumber)" 
- 
            
- 
        folders/FOLDER_ID, denganFOLDER_IDadalah ID folder yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan ID Google Cloud folder Google Cloud consoleUntuk menemukan ID folder Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
 gcloud CLIAnda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut: 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)" Dengan TOP_LEVEL_FOLDER_NAME adalah kecocokan string sebagian atau penuh untuk nama folder. Hapus tanda --formatuntuk melihat informasi selengkapnya tentang folder yang ditemukan.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas: gcloud resource-manager folders list --folder=FOLDER_ID 
- 
            
- 
        organizations/ORGANIZATION_ID, denganORGANIZATION_IDadalah ID organisasi yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan ID Google Cloud organisasi Google Cloud consoleUntuk menemukan ID organisasi Google Cloud , selesaikan langkah-langkah berikut: - 
            Buka konsol Google Cloud . 
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
 gcloud CLIAnda dapat mengambil ID Google Cloud organisasi dengan perintah berikut: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    BILLING_PROJECT_ID: ID project tempat agen layanan Cloud Asset Inventory default berada yang memiliki izin untuk mengelola set data dan tabel BigQuery Anda. Baca selengkapnya tentang cara menetapkan project penagihan.
- 
    SQL_SELECT_QUERY: KueriSELECTSQL.
- 
    BIGQUERY_PROJECT_ID: ID project tempat tabel BigQuery berada yang ingin Anda ekspor.
- 
    DATASET_ID: ID set data BigQuery.
- 
    TABLE_NAME: Tabel BigQuery tempat Anda mengekspor metadata. Jika tidak ada, maka akan dibuat.
- 
    WRITE_METHOD: Menentukan perilaku jika tabel atau partisi tujuan BigQuery sudah ada. Nilai berikut didukung:- 
        WRITE_EMPTY: Default. Jika tabel yang ada berisi data, error duplikat akan ditampilkan di hasil tugas.
- 
        WRITE_APPEND: Menambahkan data ke tabel atau partisi terbaru.
- 
        WRITE_TRUNCATE: Menimpa seluruh tabel atau semua data partisi.
 
- 
        
- 
    PAGE_SIZE: Opsional. Jumlah hasil yang akan ditampilkan per halaman. Maksimumnya adalah 500. Jika nilai ditetapkan ke0atau nilai negatif, default yang sesuai akan dipilih.nextPageTokenditampilkan untuk mengambil hasil berikutnya.
Contoh perintah
Jalankan salah satu perintah berikut untuk mendapatkan nama dan jenis aset dari dua
  instance Compute Engine pertama dalam project my-project, dan ekspor hasilnya ke
  tabel BigQuery my-table dalam project my-project, dengan mengganti
  seluruh tabel jika sudah ada.
curl (Linux, macOS, atau Cloud Shell)
curl -X POST \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "statement": " SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2", "outputConfig": { "bigqueryDestination": { "dataset": "projects/my-project/datasets/my-dataset", "table": "my-table", "writeDisposition": "WRITE_TRUNCATE" } } }' \ https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } $body = @" { "statement": " SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2", "outputConfig": { "bigqueryDestination": { "dataset": "projects/my-project/datasets/my-dataset", "table": "my-table", "writeDisposition": "WRITE_TRUNCATE" } } } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets" | Select-Object -Expand Content
Contoh kueri SQL tambahan
Contoh kode berikut menunjukkan kueri SQL tertentu yang dapat Anda gunakan untuk menelusuri aset, guna membantu Anda membuat kueri sendiri.
Instance VM Compute Engine di region tertentu
Selain itu, tampilkan name dan waktu pembuatannya.
SELECT
  name,
  resource.DATA.creationTimestamp
FROM
  compute_googleapis_com_Instance
WHERE
  resource.location LIKE '%asia%'
Detail aplikasi yang berjalan di pod Kubernetes
Menampilkan namespace, versi, dan stempel waktu ingress-nginx aplikasi. Pelajari
lebih lanjut
fungsi JSON yang digunakan di BigQuery.
SELECT
  name AS pod_name,
  JSON_EXTRACT_SCALAR(resource.data.metadata, '$.namespace') AS namespace,
  resource.data.metadata.creationTimestamp AS creation_time,
  JSON_EXTRACT_SCALAR(resource.data.metadata.labels, "$['app.kubernetes.io/name']") AS app_label,
  resource.data.metadata.labels['app.kubernetes.io/version'] AS version
FROM
  k8s_io_Pod
WHERE
  JSON_EXTRACT_SCALAR(resource.data.metadata, '$.namespace') = "default"
  AND JSON_EXTRACT_SCALAR(resource.data.metadata.labels, "$['app.kubernetes.io/name']") = "ingress-nginx"
Jumlah set data BigQuery di setiap project
  SELECT
    ancestor AS project,
    COUNT(*)
  FROM
    bigquery_googleapis_com_Dataset
  CROSS JOIN
    UNNEST (ancestors) AS ancestor
  WHERE
    ancestor LIKE '%project%'
  GROUP BY
    ancestor
  ORDER BY
    2 DESC
Jumlah instance VM Compute Engine di setiap region
SELECT
  resource.location,
  COUNT(*)
FROM
  compute_googleapis_com_Instance
GROUP BY
  resource.location
Nama dan assetType semua resource di suatu region
SELECT
  name,
  assetType
FROM
  STANDARD_METADATA
WHERE
  resource.location LIKE '%asia%'
Bucket Cloud Storage yang tersedia secara publik
Selain itu, tampilkan name mereka.
SELECT
  name
FROM
  IAM_POLICY
CROSS JOIN
  UNNEST(iamPolicy.bindings) AS binding
WHERE
  ('allUsers' IN UNNEST(binding.members)
  OR 'allAuthenticatedUsers' IN UNNEST(binding.members))
  AND assetType = 'storage.googleapis.com/Bucket'
Subnetwork yang tidak memiliki instance VM terpasang
SELECT
  subnetwork_table.name
FROM
  compute_googleapis_com_Subnetwork AS subnetwork_table
LEFT JOIN (
  SELECT
    interface.subnetwork AS subnetwork
  FROM
    compute_googleapis_com_Instance
  CROSS JOIN
    UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
ON
  SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
WHERE
  instance_table.subnetwork IS NULL
  AND NOT subnetwork_table.name LIKE '%default%'