Udostępnij przez


Warunki zadania magazynu

Zadanie magazynu zawiera zestaw warunków i operacji. W tym artykule opisano format JSON warunku. Zrozumienie tego formatu jest ważne, jeśli planujesz utworzyć zadanie magazynu przy użyciu narzędzia innego niż witryna Azure Portal (na przykład: Program Azure PowerShell lub interfejs wiersza polecenia platformy Azure). W tym artykule wymieniono również właściwości i operatory, których można użyć do tworzenia klauzul warunku.

Ten artykuł koncentruje się na warunkach. Aby dowiedzieć się więcej na temat operacji, zobacz Operacje zadań magazynu.

Format warunku

Warunek kolekcji co najmniej jednej klauzuli. Każda klauzula zawiera właściwość, wartość i operator. Gdy zadanie magazynu jest uruchamiane, używa operatora do porównywania właściwości z wartością w celu określenia, czy klauzula jest spełniona przez obiekt docelowy. W klauzuli operator zawsze pojawia się najpierw, a 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 , właściwość to endsWithName, 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'))]]"
}

Aby uzyskać pełną listę nazw operatorów i właściwości, zobacz sekcję Obsługiwane operatory i Obsługiwane 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 obiektów docelowych, które spełniają kryteria we wszystkich klauzulach warunku, podczas gdy or obiekty docelowe spełniające kryterium w dowolnym z klauzul w warunku. Na poniższej ilustracji przedstawiono położenie and ciągu i or wraz z dwoma klauzulami.

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

Poniższy kod JSON przedstawia warunek zawierający dwie klauzule. Ponieważ ciąg jest używany w tym wyrażeniu and , obie klauzule muszą zostać obliczone przed true 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

Edytor wizualizacji dostępny w witrynie Azure Portal może wygenerować kod JSON warunku. Warunki można zdefiniować przy użyciu edytora, a następnie uzyskać wyrażenie JSON, otwierając kartę Kod . Takie podejście może być przydatne podczas tworzenia skomplikowanych zestawów warunków, ponieważ wyrażenia JSON mogą stać się duże, nieporęczne i trudne do utworzenia. Na poniższej ilustracji przedstawiono kartę Kod w edytorze wizualizacji.

Zrzut ekranu przedstawiający warunek JSON wyświetlany na karcie Kod projektanta wizualizacji.

Aby dowiedzieć się więcej na temat edytora wizualizacji, zobacz Definiowanie warunków i operacji zadania magazynu.

Podgląd warunku

Możesz wyświetlić listę obiektów blob, które będą miały wpływ na zdefiniowane warunki. Dzięki temu można znaleźć problemy i zoptymalizować warunki przed ich zastosowaniem do danych produkcyjnych. Podgląd nie wprowadza zmian w obiektach na docelowym koncie magazynu, więc można bezpiecznie zastosować je do testowania względem danych produkcyjnych.

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ż można wyświetlić tylko do 5000 blobów, również można użyć prefiksu, 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 zawierającej obiekty spełniające warunek wraz z obiektami, które nie spełniają warunku. Możesz sortować według pola wyświetlanego 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 Wartość logiczna
AccessTier1 CzasZmianyPoziomuDostępu Długość zawartości Usunięte
Metadane.Wartość Czas tworzenia TagCount CzyAktualnaWersja
Nazwisko Usunięty czas
BlobType2 CzasOstatniegoDostępu
Kontener.Metadane.Wartość[Nazwa] Ostatnia modyfikacja
Container.Name
Kontener.Metadane.Wartość[Nazwa]
Container.Name
Tags.Value[Name]
Identyfikator wersji

1 Dozwolone wartości to Hot, Coollub Archive.

2 Dozwolone wartości to BlockBlob, PageBloblub 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.

Sznurek Data i godzina Liczbowe Wartość logiczna
zawiera równa się równa się równa się
pusty Większy Większy
równa się większy lub równy większy lub równy
kończy się znakiem/ciągiem mniej mniej
długość mniejszy lub równy mniejszy lub równy
zaczyna się od addToTime
Dopasowania

Operator not jest operatorem specjalnym, który można ustawić przed którymkolwiek z operatorów, które pojawiają się w tej tabeli, aby uzyskać przeciwny wynik klauzuli warunkowej, nazywany również negatywnym wynikiem.

Zobacz też