Kondisi tugas penyimpanan

Tugas penyimpanan berisi serangkaian kondisi dan operasi. Artikel ini menjelaskan format JSON dari sebuah kondisi. Memahami bahwa format penting jika Anda berencana untuk membuat tugas penyimpanan dengan menggunakan alat selain portal Azure (Misalnya: Azure PowerShell, atau Azure CLI). Artikel ini juga mencantumkan properti dan operator yang dapat Anda gunakan untuk membangun klausul dari suatu kondisi.

Artikel ini berfokus pada kondisi. Untuk mempelajari selengkapnya tentang operasi, lihat operasi tugas penyimpanan.

Format kondisi

Kondisi kumpulan satu atau beberapa klausa. Setiap klausa berisi properti, nilai, dan operator. Saat tugas penyimpanan berjalan, ia menggunakan operator untuk membandingkan properti dengan nilai untuk menentukan apakah klausa terpenuhi oleh objek target. Dalam klausa, operator selalu muncul terlebih dahulu diikuti oleh properti , lalu nilainya. Gambar berikut menunjukkan bagaimana setiap elemen diposisikan dalam ekspresi.

Diagram yang memperlihatkan format kondisi sederhana dengan operator, properti, dan nilai.

Klausa berikut ini hanya memungkinkan operasi pada dokumen Microsoft Word. Klausa ini menargetkan semua dokumen yang diakhir dengan ekstensi .docxfile . Oleh karena itu, operator adalah endsWith, propertinya adalah Name, dan nilainya adalah .docx.

{
   "condition": "[[[endsWith(Name, '.docx')]]"
}

Anda juga dapat menerapkan operator not sebelum operator dalam klausa kondisi. Operator not adalah operator khusus yang dapat Anda posisikan sebelum operator mana pun untuk memberikan hasil klausul yang berlawanan. Klausa berikut memungkinkan operasi pada blob apa pun yang bukan dokumen Microsoft Word.

{
   "condition": "[[not(endsWith(Name, '*.docx'))]]"
}

Untuk daftar lengkap nama operator dan properti, lihat bagian Operator yang didukung dan Properti yang didukung di artikel ini.

Beberapa klausa dalam kondisi

Kondisi dapat berisi beberapa klausa yang dipisahkan oleh koma bersama dengan string and atau or. String and menargetkan objek yang memenuhi kriteria dalam semua klausul dalam kondisi sementara or menargetkan objek yang memenuhi kriteria dalam salah satu klausa dalam kondisi. Gambar berikut menunjukkan posisi and string dan or bersama dengan dua klausa.

Diagram yang memperlihatkan format kondisi yang berisi dua klausa.

JSON berikut menunjukkan kondisi yang berisi dua klausa. Karena string and digunakan dalam ekspresi ini, kedua klausul harus dievaluasi menjadi true sebelum operasi dilakukan pada objek.

{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}

Grup kondisi

Klausa yang dikelompokkan beroperasi sebagai satu unit terpisah dari klausul lainnya. Klausa pengelompokan mirip dengan menempatkan tanda kurung di sekitar persamaan matematika atau ekspresi logika. String and atau or untuk klausa pertama dalam grup berlaku untuk seluruh grup.

Gambar berikut menunjukkan dua klausa yang dikelompokkan bersama-sama.

Diagram yang memperlihatkan format kondisi yang berisi dua klausa yang dikelompokkan bersama-sama.

Kondisi berikut ini hanya memungkinkan operasi pada dokumen Microsoft Word tempat readyForLegalHold tag dokumen diatur ke nilai Yes. Operasi juga dilakukan pada objek yang lebih besar dari 100 byte bahkan jika dua kondisi lainnya tidak benar.

{
"condition": "[[or(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}

Anda dapat menerapkan operator not ke grup untuk menguji hasil yang berlawanan dari sekelompok klausa. Kondisi berikut hanya memungkinkan operasi pada blob yang bukan dokumen Microsoft Word, di mana tag readyForLegalHold pada blob ditetapkan ke nilai Yes. Operasi juga dilakukan pada objek yang lebih besar dari 100 byte bahkan jika dua kondisi lainnya tidak benar.

{
"condition": "[[or(not(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))), greater(Content-Length, '100'))]]"
}

Tampilan kode di portal Azure

Editor visual yang tersedia di portal Azure, dapat menghasilkan JSON kondisi untuk Anda. Anda dapat menentukan kondisi Anda dengan menggunakan editor, lalu mendapatkan ekspresi JSON dengan membuka tab Kode . Pendekatan ini dapat berguna saat membuat serangkaian kondisi yang rumit karena ekspresi JSON dapat menjadi besar, tidak beraturan, dan sulit dibuat dengan tangan. Gambar berikut menunjukkan tab Kode di editor visual.

Cuplikan layar kondisi JSON seperti yang muncul di tab Kode desainer visual.

Untuk mempelajari selengkapnya tentang editor visual, lihat Menentukan kondisi dan operasi tugas penyimpanan.

Pratinjau kondisi

Anda dapat melihat daftar blob yang akan terpengaruh oleh kondisi yang telah Anda tentukan. Dengan demikian, Anda dapat menemukan masalah dan mengoptimalkan kondisi sebelum menerapkannya ke data produksi. Pratinjau tidak membuat perubahan pada objek di akun penyimpanan target sehingga aman diterapkan untuk menguji data produksi.

Meskipun pratinjau kondisi tersedia di lingkungan PowerShell, Azure CLI, dan SDK, cara term mudah untuk mempratinjau efek kondisi adalah dengan menggunakan jendela Kondisi Pratinjau di portal Microsoft Azure. Anda dapat membuka jendela ini saat Anda menentukan kondisi dan menetapkan tugas penyimpanan.

Untuk mempratinjau efek kondisi, Anda harus menentukan langganan target, akun penyimpanan, dan kontainer. Karena hanya dapat muncul hingga 5.000 blob, Anda juga dapat menentukan awalan untuk mempersempit daftar.

Nota

Anda tidak dapat menggunakan karakter pengganti dalam awalan blob.

Gambar berikut menunjukkan contoh hasil pratinjau di portal Microsoft Azure.

Cuplikan layar jendela pratinjau tugas penyimpanan di portal Microsoft Azure.

Hasil pratinjau muncul dalam tabel yang memperlihatkan objek yang memenuhi kondisi bersama dengan objek yang tidak memenuhi kondisi. Anda bisa mengurutkan menurut bidang yang muncul dalam tabel.

Jika kondisi mengacu pada properti yang tidak ada di akun penyimpanan target, kesalahan akan muncul. Misalnya, tag indeks blob tidak tersedia untuk akun yang memiliki namespace hierarkis. Jika klausa dalam kondisi mengacu pada tag indeks blob, kesalahan validasi akan muncul.

Properti yang didukung

Tabel berikut ini memperlihatkan properti yang bisa Anda gunakan untuk menyusun setiap klausa kondisi. Klausa dapat berisi properti string, boolean, numerik, dan tanggal dan waktu.

string Tanggal dan waktu3 Numerik Boolean
AccessTier1 AccessTierChangeTime Panjang-Konten Dihapus
BlobType2 Waktu Pembuatan Jumlah Tag ApakahVersiSaatIni
Kontainer.Metadata.Nilai[Nama] WaktuDihapus
Container.Nama WaktuAksesTerakhir
Metadata.Value[Name] Terakhir Diubah
Nama
Tags.Value[Name]

1 Nilai yang diizinkan adalah Hot, Cool, Cold atau Archive.

2 Nilai yang diizinkan adalah BlockBlob, PageBlob, atau AppendBlob

3 Dapat diatur ke waktu tertentu atau ke nilai metadata yang diperoleh secara dinamis dari objek. Lihat Mengacu pada nilai dari metadata objek.

Operator yang didukung

Tabel berikut ini memperlihatkan operator yang bisa Anda gunakan dalam klausul untuk mengevaluasi nilai setiap jenis properti.

string Tanggal dan waktu Numerik Boolean
mengandung sama dengan sama dengan sama dengan
kosong lebih besar lebih besar
berakhir dengan lebihbesarAtauSetara lebihbesarAtauSetara
sama dengan kurang kurang
cocokkan4 kurang atau sama dengan kurang atau sama dengan
dimulaiDengan

4 Operator matches tidak didukung untuk properti Metadata.Value[Name] dan Tags.Value[Name].

Operator not adalah operator khusus yang dapat Anda posisikan sebelum salah satu operator yang muncul dalam tabel ini untuk memberikan hasil yang berlawanan dari klausa kondisional, juga disebut hasil negatif.

Lihat juga