Anda dapat membuat kueri aset di project, folder, atau organisasi menggunakan dialek yang kompatibel dengan BigQuery SQL.
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 masing-masing izin bagi setiap jenis panggilan, lihat Izin.
Batasan
Nama Jenis aset memiliki
.
dan/
yang diganti dengan_
. Misalnya,compute.googleapis.com/Instance
menjadicompute_googleapis_com_Instance
.Permintaan harus berupa kueri
SELECT
.BigQuery SQL 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 akan selalu diberi nomor halaman.
Kueri harus memerlukan waktu kurang dari 6 jam untuk diproses.
Hasil kueri hanya dapat diekspor ke set data BigQuery di multi-region
US
.
Tabel yang dapat Anda kueri
Anda dapat membuat kueri untuk tabel berikut:
Untuk jenis konten
RESOURCE
, nama tabel dalam set data sesuai dengan nama jenis aset, dengan asumsi bahwa jenis aset tersebut ada. Misalnya, tabelcompute_googleapis_com_Instance
berisi 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
. Hal ini mencakup semua kolom kecualiresource.DATA
, yang khusus untuk setiap jenis resource.
Metadata aset kueri
Konsol
Untuk membuat kueri metadata aset untuk project, folder, atau organisasi Anda, selesaikan langkah-langkah berikut:
-
Buka halaman Assets pada Security Command Center di Konsol Google Cloud Anda.
- Beralihlah ke project, folder, atau organisasi yang ingin Anda buat kueri.
- Klik tab Kueri aset.
-
Untuk mengkueri metadata aset, gunakan kueri contoh atau buat kueri Anda sendiri:
- Untuk menggunakan sampel, klik entri di tab Library kueri untuk melihat pratinjau kueri. Klik **Terapkan** untuk menyalin contoh 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 kueri, lalu klik Jalankan untuk menjalankannya. Untuk membantu dalam 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 Query result.
-
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, sebuah 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_ID
adalah ID project yang memiliki aset yang ingin Anda kueri. -
folder=FOLDER_ID
, denganFOLDER_ID
adalah ID folder yang berisi aset yang ingin Anda kueri.Cara menemukan ID folder Google Cloud
Konsol Google Cloud
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda 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 pencocokan string sebagian atau penuh untuk nama folder. Hapus flag
--format
untuk melihat informasi selengkapnya tentang menemukan folder.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder level teratas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, denganORGANIZATION_ID
adalah ID organisasi yang memiliki aset yang ingin Anda buat kuerinya.Cara menemukan ID organisasi Google Cloud
Konsol Google Cloud
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
SQL_SELECT_QUERY
:SELECT
SQL kueri. -
TIMEOUT
: Opsional. Waktu maksimum, dalam detik, saat klien harus menunggu hingga kueri selesai sebelum melanjutkan. Gunakan waktu tunggu untuk jalankan kueri, lalu ambil hasilnya nanti dengan tugas referensi.
Baca referensi gcloud CLI untuk mengetahui semua opsi.
Contoh
Jalankan perintah berikut untuk mendapatkan nama dan jenis aset dari dua Compute Engine pertama
instance 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 contoh kueri sebelumnya. Tujuan
berisi referensi pekerjaan dan memberi tahu Anda apakah pekerjaan itu memiliki
selesai (done: true
). Jika pekerjaan telah selesai, maka
Objek queryResult
diisi dengan data yang sesuai,
dan hasilnya dicantumkan setelah itu.
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 pekerjaan yang belum selesai
Jika Anda menetapkan waktu tunggu dalam permintaan, kueri akan dilakukan secara asinkron dan Anda akan menerima respons yang menunjukkan bahwa tugas belum selesai (done: false
). Jenis respons ini berisi referensi tugas dan objek queryResult
yang tidak diisi:
done: false jobReference: 0000000000000000000000000000000000000000000000000000000000000000 queryResult: nextPageToken: '' totalRows: '0'
Anda dapat menggunakan nilai jobReference
untuk
ambil hasil kueri nanti, setelah
pekerjaan telah selesai dan datanya telah 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_ID
adalah ID project yang memiliki aset yang ingin Anda kueri. -
projects/PROJECT_NUMBER
, denganPROJECT_NUMBER
adalah nomor project yang memiliki aset yang ingin Anda buat kuerinya.Cara menemukan nomor project Google Cloud
Konsol Google Cloud
Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:
-
Buka halaman Selamat Datang di konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
-
Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat halaman Welcome {i>heading<i}.
Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang dicari, buka halaman Kelola resource dan filter daftar menggunakan nama project tersebut.
gcloud CLI
Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, denganFOLDER_ID
adalah ID folder yang memiliki aset yang ingin Anda buat kuerinya.Cara menemukan ID folder Google Cloud
Konsol Google Cloud
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda 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 pencocokan string sebagian atau penuh untuk nama folder. Hapus flag
--format
untuk melihat informasi selengkapnya tentang menemukan folder.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_ID
adalah ID organisasi yang memiliki aset yang ingin Anda kuerikan.Cara menemukan ID organisasi Google Cloud
Konsol Google Cloud
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
SQL_SELECT_QUERY
:SELECT
SQL kueri. -
TIMEOUT
: Opsional. Waktu maksimum, dalam detik, saat klien harus menunggu hingga kueri selesai sebelum melanjutkan. Gunakan waktu tunggu untuk jalankan kueri, lalu ambil hasilnya nanti dengan tugas referensi. -
PAGE_SIZE
: Opsional. Jumlah hasil yang akan ditampilkan per kami. Jumlah maksimumnya adalah 500. Jika nilai ditetapkan ke0
atau nilai negatif, default yang sesuai akan dipilih.nextPageToken
ditampilkan untuk mengambil hasil selanjutnya. -
PAGE_TOKEN
: Opsional. Respons permintaan yang panjang dipisahkan di beberapa halaman. JikapageToken
tidak ditentukan, halaman pertama akan ditampilkan. Halaman berikutnya dapat dipanggil menggunakannextPageToken
respons sebelumnya sebagai nilaipageToken
.
Lihat referensi REST untuk semua opsi.
Contoh perintah
Jalankan salah satu perintah berikut untuk mendapatkan nama dan jenis aset dari dua perintah pertama
Instance Compute Engine di 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 contoh kueri sebelumnya. Tujuan
berisi referensi pekerjaan dan memberi tahu Anda apakah pekerjaan itu memiliki
selesai ("done": true
). Jika pekerjaan telah selesai, maka
Objek queryResult
diisi dengan
layanan otomatis dan data skalabel.
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 besar.
Demikian pula, f
dan v
digunakan dalam
array rows
, bukan fields
dan
value
untuk menjaga respons tetap 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 Anda, kueri akan dijalankan
secara asinkron dan Anda dikirimi respons
yang menunjukkan bahwa pekerjaan
belum selesai ("done": false
). Tanggapan semacam ini berisi
referensi pekerjaan 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 nanti yang membutuhkan waktu penyelesaian, jadikan salah satu terhadap permintaan berikut.
gcloud
gcloud asset query \ --SCOPE \ --job-reference="JOB_REFERENCE"
Berikan nilai berikut:
-
SCOPE
: Gunakan salah satu nilai berikut:-
project=PROJECT_ID
, denganPROJECT_ID
adalah ID project yang memiliki aset yang ingin Anda kueri. -
folder=FOLDER_ID
, denganFOLDER_ID
adalah ID folder yang berisi aset yang ingin Anda kueri.Cara menemukan ID folder Google Cloud
Konsol Google Cloud
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda 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 pencocokan string sebagian atau penuh untuk nama folder. Hapus flag
--format
untuk melihat informasi selengkapnya tentang menemukan folder.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder level teratas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, denganORGANIZATION_ID
adalah ID organisasi yang memiliki aset yang ingin Anda buat kuerinya.Cara menemukan ID organisasi Google Cloud
Konsol Google Cloud
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
JOB_REFERENCE
: Nilai referensi tugas yang ditampilkan di respons sebelumnya.
Contoh
Jalankan perintah berikut untuk mendapatkan hasil kueri yang dijalankan sebelumnya 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_ID
adalah ID project yang memiliki aset yang ingin Anda buat kuerinya. -
projects/PROJECT_NUMBER
, denganPROJECT_NUMBER
adalah nomor project yang memiliki aset yang ingin Anda buat kuerinya.Cara menemukan nomor project Google Cloud
Konsol Google Cloud
Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:
-
Buka halaman Selamat Datang di konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
-
Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat halaman Welcome {i>heading<i}.
Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang Anda cari, pergi ke Halaman Mengelola resource dan memfilter daftar menggunakan nama proyek tersebut.
gcloud CLI
Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, denganFOLDER_ID
adalah ID folder yang memiliki aset yang ingin Anda buat kuerinya.Cara menemukan ID folder Google Cloud
Konsol Google Cloud
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda 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 pencocokan string sebagian atau penuh untuk nama folder. Hapus flag
--format
untuk melihat informasi selengkapnya tentang menemukan folder.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder level teratas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, denganORGANIZATION_ID
adalah ID organisasi yang memiliki aset yang ingin Anda buat kuerinya.Cara menemukan ID organisasi Google Cloud
Konsol Google Cloud
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
JOB_REFERENCE
: Nilai referensi tugas yang ditampilkan di respons sebelumnya. -
PAGE_TOKEN
: Opsional. Respons permintaan yang panjang dipisahkan di beberapa halaman. JikapageToken
tidak ditentukan, halaman pertama akan ditampilkan. Halaman berikutnya dapat dipanggil menggunakannextPageToken
respons 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 terhadap 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_ID
adalah ID project yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL. -
folder=FOLDER_ID
, denganFOLDER_ID
adalah ID folder yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan ID folder Google Cloud
Konsol Google Cloud
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda 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 pencocokan string sebagian atau penuh untuk nama folder. Hapus flag
--format
untuk melihat informasi selengkapnya tentang menemukan folder.Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder level teratas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, denganORGANIZATION_ID
adalah ID organisasi yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan ID organisasi Google Cloud
Konsol Google Cloud
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
SQL_SELECT_QUERY
:SELECT
SQL kueri. -
BIGQUERY_PROJECT_ID
: ID project tempat tabel BigQuery berada yang ingin Anda ekspor. -
DATASET_ID
: ID BigQuery {i>dataset<i} aslinya. -
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 dalam 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 Compute Engine pertama
instance dalam project my-project
, dan mengekspor hasilnya ke
Tabel BigQuery my-table
di project my-project
, menimpa
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_ID
adalah ID project yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL. -
projects/PROJECT_NUMBER
, denganPROJECT_NUMBER
adalah nomor project yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan nomor project Google Cloud
Konsol Google Cloud
Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:
-
Buka halaman Selamat Datang di konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
-
Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat halaman Welcome {i>heading<i}.
Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang dicari, buka halaman Kelola resource dan filter daftar menggunakan nama project tersebut.
gcloud CLI
Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, denganFOLDER_ID
adalah ID folder yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan ID folder Google Cloud
Konsol Google Cloud
Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.
gcloud CLI
Anda 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 pencocokan string sebagian atau penuh untuk nama folder. Hapus flag
--format
untuk melihat informasi selengkapnya tentang menemukan folder.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_ID
adalah ID organisasi yang memiliki metadata aset yang ingin Anda ekspor dengan kueri SQL.Cara menemukan ID organisasi Google Cloud
Konsol Google Cloud
Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud.
- Klik kotak daftar pengalih di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: Project ID yang agen layanan Inventaris Aset Cloud default, yang memiliki izin untuk mengelola set data dan tabel BigQuery. Baca selengkapnya tentang cara menetapkan project penagihan. -
SQL_SELECT_QUERY
: KueriSELECT
SQL. -
BIGQUERY_PROJECT_ID
: ID project tempat tabel BigQuery berada yang ingin Anda ekspor. -
DATASET_ID
: ID BigQuery {i>dataset<i} aslinya. -
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 dalam 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 500. Jika nilai ditetapkan ke0
atau nilai negatif, default yang sesuai akan dipilih.nextPageToken
ditampilkan untuk mengambil hasil berikutnya.
Contoh perintah
Jalankan salah satu perintah berikut untuk mendapatkan nama dan jenis aset dari dua perintah pertama
instance Compute Engine dalam project my-project
, dan ekspor hasilnya ke
Tabel BigQuery my-table
di project my-project
, menimpa
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 mencari aset, untuk membantu membangun kueri Anda 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%'
Jumlah set data BigQuery yang ada 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 yang ada di setiap region
SELECT
resource.location,
COUNT(*)
FROM
compute_googleapis_com_Instance
GROUP BY
resource.location
Nama dan assetType dari semua resource di region
SELECT
name,
assetType
FROM
STANDARD_METADATA
WHERE
resource.location LIKE '%asia%'
Bucket Cloud Storage yang tersedia secara publik
Selain itu, tampilkan name
-nya.
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%'