Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
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.
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.
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.
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.
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.