Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zadanie magazynu danych określa warunki do oceny oraz operacje do wykonania na blobach. W tym artykule opisano format JSON warunku. Ten format jest ważny, jeśli planujesz utworzyć zadanie magazynu za pomocą narzędzia innego niż portal Azure, takiego jak Azure PowerShell lub Azure CLI. Ten artykuł zawiera również listę właściwości i operatorów, które można wykorzystać w klauzulach warunku.
Ten artykuł koncentruje się na warunkach. Aby dowiedzieć się więcej na temat operacji, zobacz Operacje zadań magazynu.
Format warunkowy
Warunek to predykat logiczny, który składa się z jednej lub więcej klauzul. Każda klauzula zawiera właściwość blob, operator logiczny oraz wartość. Gdy zadanie magazynowania jest wykonywane, ocenia ono właściwość blob względem wartości za pomocą operatora porównawczego. W formacie JSON operator zawsze pojawia się jako najpierwszy, następnie właściwość, a następnie wartość. Na poniższej ilustracji pokazano, jak każdy element jest umieszczony w wyrażeniu.
Poniższa klauzula umożliwia wykonywanie operacji tylko w dokumentach programu Microsoft Word. Ta klauzula dotyczy wszystkich dokumentów kończących się rozszerzeniem .docxpliku . W związku z tym operator to endsWith, właściwość to Name, a wartość to .docx.
{
"condition": "[[[endsWith(Name, '.docx')]]"
}
Można również zastosować operator not przed operatorem w klauzuli warunkowej. Operator not jest operatorem specjalnym, który można ustawić przed dowolnym operatorem, aby nadać odwrotny wynik klauzuli. Poniższa klauzula umożliwia wykonywanie operacji na dowolnym blobie, który nie jest dokumentem aplikacji Microsoft Word.
{
"condition": "[[not(endsWith(Name, '*.docx'))]]"
}
Pełną listę operatorów i nazw właściwości można znaleźć w sekcjach Wspierane operatory i Wspierane właściwości w tym artykule.
Wiele klauzul w warunku
Warunek może zawierać wiele klauzul rozdzielonych przecinkami wraz z ciągiem and lub or. Ciąg and kieruje się na obiekty, które spełniają kryteria we wszystkich klauzulach warunku, natomiast or kieruje się na obiekty spełniające kryterium w dowolnej z klauzul warunku. Na poniższej ilustracji pokazano pozycję ciągów and i or oraz dwóch wyrażeń.
Poniższy kod JSON przedstawia warunek zawierający dwie klauzule. Ponieważ ciąg and jest używany w tym wyrażeniu, obie klauzule muszą zostać ocenione do true przed wykonaniem operacji na obiekcie.
{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}
Grupy warunków
Klauzule zgrupowane działają jako pojedyncza jednostka oddzielona od pozostałych klauzul. Klauzule grupowania są podobne do umieszczania nawiasów wokół równania matematycznego lub wyrażenia logiki. Ciąg and lub or dla pierwszej klauzuli w grupie ma zastosowanie do całej grupy.
Na poniższej ilustracji przedstawiono dwie klauzule zgrupowane razem.
Poniższy warunek zezwala na operacje tylko w dokumentach programu Microsoft Word, w których readyForLegalHold tag dokumentu jest ustawiony na wartość Yes. Operacje są również wykonywane na obiektach, które są większe niż 100 bajtów, nawet jeśli pozostałe dwa warunki nie są prawdziwe.
{
"condition": "[[or(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}
Operator nie można zastosować do grupy w celu przetestowania przeciwnego wyniku grupy klauzul. Poniższy warunek zezwala na operacje tylko w obiektach blob, które nie są dokumentami programu Microsoft Word, w których readyForLegalHold tag obiektu blob jest ustawiony na wartość Yes. Operacje są również wykonywane na obiektach, które są większe niż 100 bajtów, nawet jeśli pozostałe dwa warunki nie są prawdziwe.
{
"condition": "[[or(not(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))), greater(Content-Length, '100'))]]"
}
Widok kodu w witrynie Azure Portal
Użyj edytora wizualnego w portalu Azure, aby wygenerować JSON dla warunku, a następnie uzyskać dostęp do wyrażenia JSON, wybierając zakładkę Kod. To podejście jest przydatne przy komponowaniu złożonych warunków, ponieważ wyrażenia JSON mogą stać się duże, nieporęczne i trudne do ręcznego tworzenia. To podejście pozwala również korzystać z funkcji podglądu warunku w portalu do interaktywnej weryfikacji warunku na podstawie danych. Na poniższej ilustracji przedstawiono kartę Kod w edytorze wizualizacji.
Aby dowiedzieć się więcej na temat edytora wizualnego, zapoznaj się z Definiowanie warunków i operacji zadania magazynowego.
Podgląd warunku
Funkcja podglądu warunku pozwala zweryfikować warunek względem blobów w Twoim testowym koncie pamięci i zobaczyć, czy spełniają one określone warunki, czy nie. Możesz znaleźć kwestie i zoptymalizować reguły przed zastosowaniem ich do danych produkcyjnych. Podgląd nie wprowadza żadnych zmian w obiektach na docelowym koncie magazynu, więc można go bezpiecznie testować na Twoich danych.
Chociaż wersja zapoznawcza warunku jest dostępna w środowiskach programu PowerShell, interfejsu wiersza polecenia platformy Azure i zestawu SDK, najprostszym sposobem podglądu efektu warunków jest użycie okna Warunki w wersji zapoznawczej w witrynie Azure Portal. Możesz otworzyć to okno, gdy definiujesz warunki i przypisujesz zadania magazynowe.
Aby wyświetlić podgląd efektu warunków, należy określić docelową subskrypcję, konto magazynu i kontener. Ponieważ podgląd może pokazać maksymalnie 5 000 obiektów blob, możesz także określić prefiks, aby zawęzić listę.
Uwaga / Notatka
Nie można używać symboli wieloznacznych w prefiksie obiektu blob.
Na poniższej ilustracji przedstawiono przykładowy wynik podglądu w witrynie Azure Portal.
Wynik podglądu pojawia się w tabeli wszystkich obiektów w wybranym kontenerze wraz z wynikiem oceny warunku oraz ich wartościami właściwości, które zostały użyte do oceny warunku. Możesz sortować według dowolnego pola, które pojawia się w tabeli.
Jeśli warunki odwołują się do właściwości, które nie istnieją w docelowym koncie magazynowym, zostanie wyświetlony błąd. Na przykład tagi indeksu blob nie są dostępne dla kont, które mają hierarchiczną przestrzeń nazw. Jeśli klauzula w warunku odwołuje się do tagów indeksu obiektów blob, zostanie wyświetlony błąd walidacji.
Obsługiwane właściwości
W poniższej tabeli przedstawiono właściwości, których można użyć do tworzenia każdej klauzuli warunku. Klauzula może zawierać właściwości ciągu, wartości logicznej, liczbowej i daty i godziny.
| Sznurek | Data i godzina3 | Liczbowe | logiczny |
|---|---|---|---|
| AccessTier1 | CzasZmianyPoziomuDostępu | Długość zawartości | Usunięte |
| BlobType2 | Czas tworzenia | TagCount | CzyAktualnaWersja |
| Kontener.Metadane.Wartość[Nazwa] | Usunięty czas | ||
| Kontener.Nazwa | CzasOstatniegoDostępu | ||
| Metadata.Value[Name] | Ostatnia modyfikacja | ||
| Nazwisko | |||
| Tags.Value[Name] |
1 Dozwolone wartości to Hot, Cool, Cold, lub Archive.
2 dozwolone wartości to BlockBlob, PageBlob, lub AppendBlob.
3 Można ustawić na określony czas lub wartość metadanych dynamicznie uzyskiwaną z obiektów. Zobacz Odwołanie do wartości z metadanych obiektu.
Obsługiwane operatory
W poniższej tabeli przedstawiono operatory, których można użyć w klauzuli do oceny wartości każdego typu właściwości.
| Ciąg znaków (bez rozróżniania wielkości liter) | Ciąg (z rozróżnianiem wielkości liter) | Data i godzina | Liczbowe | logiczny |
|---|---|---|---|---|
contains |
contains_cs |
equals |
equals |
equals |
empty
5 |
greater |
greater |
||
endsWith |
endsWith_cs |
greaterOrEquals |
greaterOrEquals |
|
equals |
equals_cs |
less |
less |
|
matches
4 |
matches_cs
4 |
lessOrEquals |
lessOrEquals |
|
startsWith |
startsWith_cs |
4 Operatory matches i matches_cs nie są obsługiwane dla właściwości Metadata.Value[Name] i Tags.Value[Name].
5 Operator empty sprawdza, czy dana wartość jest pusta. Wielkość liter nie ma znaczenia i nie ma operatora empty_cs.
Operator not to specjalny operator, który można ustawić przed dowolnym operatorem pojawiającym się w tej tabeli, aby odwrócić wynik klauzuli warunkowej, zwanej także wynikiem negatywnym.
Operatory ciągów z tym przyrostkiem _cs rozróżniają wielkość liter. Na przykład endsWith(Name, '.CSV') pasuje zarówno do report.csv, jak i do report.CSV, podczas gdy endsWith_cs(Name, '.CSV') pasuje tylko do report.CSV.