Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un'attività di archiviazione contiene un set di condizioni e operazioni. Questo articolo descrive il formato JSON di una condizione. Tenere presente che il formato è importante se si prevede di creare un'attività di archiviazione usando uno strumento diverso dal portale di Azure (ad esempio, Azure PowerShell o l'interfaccia della riga di comando di Azure). Questo articolo elenca anche le proprietà e gli operatori che è possibile usare per comporre le clausole di una condizione.
Questo articolo è incentrato sulle condizioni. Per altre informazioni sulle operazioni, vedere Operazioni delle attività di archiviazione.
Formato della condizione
Condizione di una raccolta di una o più clausole. Ogni clausola contiene una proprietà, un valore e un operatore. Quando l'attività di archiviazione viene eseguita, usa l'operatore per confrontare una proprietà con un valore per determinare se una clausola viene soddisfatta dall'oggetto di destinazione. In una clausola l'operatoreviene sempre visualizzato prima seguito dalla proprietà e quindi dal valore . L'immagine seguente mostra come ogni elemento viene posizionato nell'espressione.
La clausola seguente consente operazioni solo sui documenti di Microsoft Word. Questa clausola è destinata a tutti i documenti che terminano con l'estensione .docx
di file . Pertanto, l'operatore è endsWith
, la proprietà è Name
e il valore è .docx
.
{
"condition": "[[[endsWith(Name, '.docx')]]"
}
È anche possibile applicare un operatore not prima dell'operatore in una clausola condition. L'operatore not è un operatore speciale che è possibile posizionare prima di qualsiasi operatore per fornire il risultato opposto di una clausola. La clausola seguente consente operazioni su qualsiasi BLOB che non sia un documento di Microsoft Word.
{
"condition": "[[not(endsWith(Name, '*.docx'))]]"
}
Per un elenco completo dei nomi di operatore e proprietà, vedere la sezione Operatori supportati e Proprietà supportate di questo articolo.
Più clausole in una condizione
Una condizione può contenere più clausole separate da una virgola insieme alla stringa and
o or
. La stringa and
è destinata agli oggetti che soddisfano i criteri in tutte le clausole della condizione, mentre or
gli oggetti che soddisfano il criterio in una delle clausole della condizione. L'immagine seguente mostra la posizione della and
stringa e or
insieme a due clausole.
Il codice JSON seguente mostra una condizione che contiene due clausole. Poiché la and
stringa viene utilizzata in questa espressione, entrambe le clausole devono restituire true
prima che venga eseguita un'operazione sull'oggetto .
{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}
Gruppi di condizioni
Le clausole raggruppate funzionano come una singola unità separata dal resto delle clausole. Le clausole di raggruppamento sono simili all'inserimento di parentesi intorno a un'equazione matematica o a un'espressione logica. La and
stringa o or
per la prima clausola nel gruppo si applica all'intero gruppo.
L'immagine seguente mostra due clausole raggruppate.
La condizione seguente consente operazioni solo sui documenti di Microsoft Word in cui il readyForLegalHold
tag del documento è impostato su un valore di Yes
. Le operazioni vengono eseguite anche su oggetti maggiori di 100 byte anche se le altre due condizioni non sono vere.
{
"condition": "[[or(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}
È possibile applicare un operatore not a un gruppo per verificare il risultato opposto di un gruppo di clausole. La condizione seguente consente operazioni solo su BLOB che non sono documenti di Microsoft Word in cui il readyForLegalHold
tag del BLOB è impostato su un valore di Yes
. Le operazioni vengono eseguite anche su oggetti maggiori di 100 byte anche se le altre due condizioni non sono vere.
{
"condition": "[[or(not(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))), greater(Content-Length, '100'))]]"
}
Visualizzazione codice nel portale di Azure
L'editor visivo disponibile nella portale di Azure può generare automaticamente il codice JSON di una condizione. È possibile definire le condizioni usando l'editor e quindi ottenere l'espressione JSON aprendo la scheda Codice . Questo approccio può essere utile quando si creano set complessi di condizioni perché le espressioni JSON possono diventare grandi, difficili da creare a mano. L'immagine seguente mostra la scheda Codice nell'editor visivo.
Per altre informazioni sull'editor visivo, vedere Definire le condizioni e le operazioni delle attività di archiviazione.
Anteprima delle condizioni
È possibile visualizzare un elenco di BLOB interessati dalle condizioni definite. In questo modo, è possibile trovare problemi e ottimizzare le condizioni prima di applicarle ai dati di produzione. Un'anteprima non apporta modifiche agli oggetti in un account di archiviazione di destinazione, quindi è sicuro applicarlo ai dati di produzione.
Mentre l'anteprima delle condizioni è disponibile negli ambienti PowerShell, dell'interfaccia della riga di comando di Azure e dell'SDK, il modo più semplice per visualizzare in anteprima l'effetto delle condizioni consiste nell'usare la finestra Condizioni di anteprima nel portale di Azure. È possibile aprire questa finestra in quanto si definiscono le condizioni e quando si assegnano le attività di archiviazione.
Per visualizzare in anteprima l'effetto delle condizioni, è necessario specificare una sottoscrizione di destinazione, un account di archiviazione e un contenitore. Poiché un può visualizzare solo fino a 5.000 BLOB, è anche possibile specificare un prefisso per restringere l'elenco.
Annotazioni
Non è possibile usare caratteri jolly nel prefisso del BLOB.
L'immagine seguente mostra un esempio di risultato di anteprima nel portale di Azure.
Il risultato dell'anteprima viene visualizzato in una tabella che mostra gli oggetti che soddisfano la condizione insieme agli oggetti che non soddisfano la condizione. È possibile ordinare in base al campo visualizzato nella tabella.
Se le condizioni fanno riferimento a proprietà che non esistono nell'account di archiviazione di destinazione, viene visualizzato un errore. Ad esempio, i tag di indice BLOB non sono disponibili per gli account con uno spazio dei nomi gerarchico. Se una clausola in una condizione fa riferimento ai tag di indice BLOB, viene visualizzato un errore di convalida.
Proprietà supportate
La tabella seguente illustra le proprietà che è possibile usare per comporre ogni clausola di una condizione. Una clausola può contenere proprietà stringa, booleana, numerica e data e ora.
Stringa | Data e ora3 | Numerico | Booleano |
---|---|---|---|
AccessTier1 | TempiDiModificaDellaCategoriaDiAccesso | La lunghezza del contenuto | Eliminati |
Metadata.Value | Creation-Time | TagCount | ÈVersioneCorrente |
Nome | Tempo Eliminato | ||
BlobType2 | OraUltimoAccesso | ||
Container.Metadata.Value[Name] | Last-Modified | ||
Nome.Contenitore | |||
Container.Metadati.Valore[Nome] | |||
Nome del Contenitore | |||
Tags.Value[Name] | |||
Id versione |
1 I valori consentiti sono Hot
, Cool
o Archive
.
2 I valori consentiti sono BlockBlob
, PageBlob
o AppendBlob
3 Può essere impostato su un'ora specifica o su un valore di metadati ottenuto dinamicamente dagli oggetti. Vedere Fare riferimento a un valore dai metadati dell'oggetto.
Operatori supportati
Nella tabella seguente vengono illustrati gli operatori che è possibile utilizzare in una clausola per valutare il valore di ogni tipo di proprietà.
Stringa | Data e ora | Numerico | Booleano |
---|---|---|---|
contiene | uguale | uguale | uguale |
vuoto | maggiore | maggiore | |
uguale | maggiore o uguale | maggiore o uguale | |
termina con | meno | meno | |
lunghezza | minore o uguale | minore o uguale | |
iniziaCon | aggiungiATempo | ||
Corrispondenze |
L'operatore not è un operatore speciale che è possibile posizionare prima di uno degli operatori visualizzati in questa tabella per fornire il risultato opposto della clausola condizionale, detto anche risultato negativo.