Warunki zadania zarządzania pamięcią

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.

Diagram przedstawiający format prostego warunku z operatorem, właściwością i wartością.

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ń.

Diagram przedstawiający format warunku zawierającego dwie klauzule.

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.

Diagram przedstawiający format warunku zawierającego 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.

Zrzut ekranu przedstawiający warunek JSON, gdy jest wyświetlany w widoku Kod projektanta wizualnego.

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.

Zrzut ekranu przedstawiający okno podglądu zadań magazynu 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.

Zobacz też