Freigeben über


Speicheraufgabenbedingungen

Ein Speichervorgang enthält eine Reihe von Bedingungen und Vorgängen. Dieser Artikel beschreibt das JSON-Format einer Bedingung. Das Verständnis dieses Formats ist wichtig, wenn Sie beabsichtigen, eine Speicheraufgabe mithilfe eines anderen Tools als dem Azure-Portal zu erstellen (Beispiele: Azure PowerShell oder Azure CLI). Dieser Artikel führt auch die Eigenschaften und Operatoren auf, die Sie zum Verfassen der Klauseln einer Bedingung verwenden können.

Dieser Artikel konzentriert sich auf Bedingungen. Weitere Informationen zu Vorgängen finden Sie unter Speicheraufgabenvorgänge.

Bedingungsformat

Eine Bedingung ist eine Sammlung einer oder mehrerer Klauseln. Jede Klausel enthält eine Eigenschaft, einen Wert und einen Operator. Wenn die Speicheraufgabe ausgeführt wird, wird der Operator verwendet, um eine Eigenschaft mit einem Wert zu vergleichen, um zu bestimmen, ob eine Klausel vom Zielobjekt erfüllt wird. In einer Klausel erscheint der Operator immer als erstes, gefolgt von der Eigenschaftund dann dem Wert. Die folgende Abbildung zeigt, wie jedes Element im Ausdruck positioniert ist.

Diagramm, welches das Format einer einfachen Bedingung mit einem Operator, einer Eigenschaft und einem Wert zeigt.

Die folgende Klausel ermöglicht Vorgänge nur für Microsoft Word-Dokumente. Diese Klausel zielt auf alle Dokumente ab, die mit der Dateierweiterung .docx enden. Daher ist der Operator endsWith, die Eigenschaft ist Name, und der Wert ist .docx.

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

Sie können auch einen nicht-Operator vor dem Operator in einer Bedingungsklausel anwenden. Der Nicht-Operator ist ein spezieller Operator, den Sie vor einem Operator positionieren können, um das gegenteilige Ergebnis einer Klausel zu geben. Die folgende Klausel ermöglicht Vorgänge für alle Blobs, die kein Microsoft Word-Dokument sind .

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

Eine vollständige Liste der Operator- und Eigenschaftennamen finden Sie in den Abschnitten Unterstützte Operatoren und Unterstützte Eigenschaften in diesem Artikel.

Mehrere Klauseln in einer Bedingung

Eine Bedingung kann mehrere Klauseln enthalten, die durch ein Komma getrennt sind, zusammen mit der Zeichenfolge and oder or. Die Zeichenfolge and zielt auf Objekte ab, die den Kriterien in allen Klauseln in der Bedingung entsprechen, während or auf Objekte zielt, die das Kriterium in einer der Klauseln in der Bedingung erfüllen. Die folgende Abbildung zeigt die Position der Zeichenfolgen and und or zusammen mit zwei Klauseln.

Diagramm, welches das Format einer Bedingung zeigt, die zwei Klauseln enthält.

Der folgende JSON-Code zeigt eine Bedingung, die zwei Klauseln enthält. Da die Zeichenfolge and in diesem Ausdruck verwendet wird, müssen beide Klauseln auf true ausgewertet werden, bevor ein Vorgang für das Objekt ausgeführt wird.

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

Gruppen von Bedingungen

Gruppierte Klauseln werden als einzelne Einheit getrennt vom Rest der Klauseln ausgeführt. Das Gruppieren von Klauseln ist vergleichbar mit dem Einfügen von Klammern in eine mathematische Gleichung oder einen logischen Ausdruck. Die Zeichenfolge and oder or für die erste Klausel der Gruppe gilt für die gesamte Gruppe.

Die folgende Abbildung zeigt zwei miteinander gruppierte Klauseln.

Diagramm, welches das Format einer Bedingung zeigt, die zwei miteinander gruppierte Klauseln enthält.

Die folgende Bedingung ermöglicht Vorgänge nur für Microsoft Word-Dokumente, bei denen das Tag readyForLegalHold des Dokuments auf einen Wert Yes festgelegt ist. Vorgänge werden auch für Objekte ausgeführt, die größer als 100 Byte sind, auch wenn die zwei anderen Bedingungen nicht erfüllt sind.

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

Sie können einen Not-Operator auf eine Gruppe anwenden, um das gegenteilige Ergebnis einer Gruppe von Klauseln zu testen. Die folgende Bedingung lässt nur Vorgänge für Blobs zu, bei denen es sich nicht um Microsoft Word-Dokumente handelt und bei denen das Tag readyForLegalHold des Blobs auf den Wert Yes gesetzt ist. Vorgänge werden auch für Objekte ausgeführt, die größer als 100 Byte sind, auch wenn die zwei anderen Bedingungen nicht erfüllt sind.

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

Codeansicht im Azure-Portal

Der im Azure-Portal verfügbare Visualisierungseditor kann den JSON-Code einer Bedingung für Sie generieren. Sie können Ihre Bedingungen mithilfe des Editors definieren und dann den JSON-Ausdruck abrufen, indem Sie die Registerkarte Code öffnen. Dieser Ansatz kann nützlich sein, wenn komplizierte Gruppen von Bedingungen erstellt werden, da JSON-Ausdrücke groß, unhandlich und schwer von Hand zu erstellen sein können. Die folgende Abbildung zeigt die Registerkarte Code im Visualisierungseditor.

Screenshot der Bedingungs-JSON, wie sie auf der Registerkarte „Code“ des visuellen Designers angezeigt wird.

Weitere Informationen zum Visualisierungseditor finden Sie unter Definieren von Speicheraufgabenbedingungen und -vorgängen.

Bedingungsvorschau

Sie können eine Liste von Blobs anzeigen, die von den von Ihnen definierten Bedingungen betroffen wären. Auf diese Weise können Sie Probleme finden und Bedingungen optimieren, bevor Sie sie auf Produktionsdaten anwenden. Eine Vorschau macht keine Änderungen an den Objekten in einem Zielspeicherkonto, sodass es sicher ist, auf Tests mit Produktionsdaten anzuwenden.

Während die Bedingungsvorschau in PowerShell-, Azure CLI- und SDK-Umgebungen verfügbar ist, können Sie am einfachsten eine Vorschau der Auswirkungen von Bedingungen anzeigen, indem Sie das Fenster "Vorschaubedingungen " im Azure-Portal verwenden. Sie können dieses Fenster öffnen, während Sie Bedingungen definieren und Speicheraufgaben zuweisen.

Um eine Vorschau der Auswirkungen von Bedingungen anzuzeigen, müssen Sie ein Zielabonnement, ein Speicherkonto und einen Container angeben. Da nur bis zu 5.000 Blobs angezeigt werden können, können Sie auch ein Präfix angeben, um die Liste einzugrenzen.

Hinweis

Sie können keine Wildcardzeichen im Blobpräfix verwenden.

Die folgende Abbildung zeigt ein Beispiel für ein Vorschauergebnis im Azure-Portal.

Screenshot des Vorschaufensters für Speicheraufgaben im Azure-Portal.

Das Vorschauergebnis wird in einer Tabelle angezeigt, in der Objekte angezeigt werden, die die Bedingung erfüllen, zusammen mit Objekten, die die Bedingung nicht erfüllt haben. Sie können nach Feld sortieren, das in der Tabelle angezeigt wird.

Wenn Bedingungen auf Eigenschaften verweisen, die im Zielspeicherkonto nicht vorhanden sind, wird ein Fehler angezeigt. Blob-Indextags sind z. B. für Konten mit einem hierarchischen Namespace nicht verfügbar. Wenn eine Klausel in einer Bedingung auf BLOB-Indextags verweist, wird ein Überprüfungsfehler angezeigt.

Unterstützte Eigenschaften

Die folgende Tabelle zeigt die Eigenschaften, die Sie zum Verfassen der einzelnen Klauseln einer Bedingung verwenden können. Eine Klausel kann Zeichenfolgen, boolesche, numerische und Datums- und Zeiteigenschaften enthalten.

Schnur Datum und Uhrzeit3 Numerisch Boolescher Typ (Boolean)
AccessTier1 AccessTierChangeTime Inhaltslänge Gelöscht
Metadata.Value Erstellungszeit TagCount IsCurrentVersion
Name GelöschteZeit
BlobType2 Letzter Zugriffszeitpunkt
Container.Metadata.Value[Name] Letzte Änderung
Container.Name
Container.Metadata.Value[Name]
Container.Name
Tags.Value[Name]
VersionId

1 Zulässige Werte: Hot, Cool oder Archive

2 Zulässige Werte: BlockBlob, PageBlob oder AppendBlob

3 Kann auf eine bestimmte Uhrzeit oder auf einen Metadatenwert festgelegt werden, der dynamisch aus Objekten abgerufen wird. Siehe Verweisen auf einen Wert aus Objektmetadaten.

Unterstützte Operatoren

Die folgende Tabelle zeigt die Operatoren, die Sie in einer Klausel verwenden können, um den Wert der einzelnen Eigenschaftentypen auszuwerten.

Schnur Datum und Uhrzeit Numerisch Boolescher Typ (Boolean)
enthält gleich gleich gleich
leer größer größer
gleich greaterOrEquals greaterOrEquals
endetMit weniger weniger
Länge lessOrEquals lessOrEquals
startsMit addToTime
Übereinstimmungen

Der Nicht-Operator ist ein spezieller Operator, den Sie vor einem der Operatoren positionieren können, die in dieser Tabelle angezeigt werden, um das entgegengesetzte Ergebnis einer bedingungsbedingten Klausel zu geben, auch als negatives Ergebnis bezeichnet.

Siehe auch