Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma tarefa de armazenamento contém um conjunto de condições e operações. Esse artigo descreve o formato JSON de uma condição. Entender esse formato é importante se você planeja criar uma tarefa de armazenamento usando uma ferramenta diferente do portal do Azure (por exemplo: Azure PowerShell ou CLI do Azure). Esse artigo também lista as propriedades e os operadores que você pode usar para compor as cláusulas de uma condição.
Esse artigo se concentra em condições. Para saber mais sobre operações, veja Operações de tarefas de armazenamento.
Formato da condição
Uma condição é uma coleção de uma ou mais cláusulas. Cada cláusula contém uma propriedade, um valor e um operador. Quando a tarefa de armazenamento é executada, ela usa o operador para comparar uma propriedade com um valor para determinar se uma cláusula é atendida pelo objeto de destino. Em uma cláusula, o operador sempre aparece primeiro, seguido pela propriedade e, em seguida, o valor. A imagem a seguir mostra como cada elemento é posicionado na expressão.
A cláusula a seguir permite operações somente em documentos do Microsoft Word. Essa cláusula tem como alvo todos os documentos que terminam com a extensão de arquivo .docx. Portanto, o operador é endsWith, a propriedade é Name e o valor é .docx.
{
"condition": "[[[endsWith(Name, '.docx')]]"
}
Você também pode aplicar um operador não antes do operador em uma expressão condicional. O operador not é um operador especial que você pode posicionar antes de qualquer operador para dar o resultado oposto de uma cláusula. A cláusula a seguir permite operações em qualquer blob que não seja um documento do Microsoft Word.
{
"condition": "[[not(endsWith(Name, '*.docx'))]]"
}
Para obter uma lista completa de nomes de operadores e propriedades, veja a seção Operadores com suporte e Propriedades com suporte desse artigo.
Várias cláusulas em uma condição
Uma condição pode conter várias cláusulas separadas por uma vírgula junto com a cadeia de caracteres and ou or. A cadeia de caracteres and tem como alvo objetos que atendem aos critérios em todas as cláusulas da condição, enquanto or tem como alvo objetos que atendem aos critérios em qualquer uma das cláusulas da condição. A imagem a seguir mostra a posição das cadeia de caracteres and e or junto com duas cláusulas.
O JSON a seguir mostra uma condição que contém duas cláusulas. Como a cadeia de caracteres and é usada nessa expressão, ambas as cláusulas devem ser avaliadas como true antes que uma operação seja executada no objeto.
{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}
Grupos de condições
Orações agrupadas operam como uma unidade única separada do restante das orações. Agrupar cláusulas é como colocar parênteses em uma equação matemática ou instrução lógica. A cadeia de caracteres and ou or para a primeira cláusula do grupo se aplica a todo o grupo.
A imagem a seguir mostra duas cláusulas agrupadas.
A condição a seguir permite operações somente em documentos do Microsoft Word onde a marca readyForLegalHold do documento está definida como um valor de Yes. As operações também são executadas em objetos maiores que 100 bytes, mesmo que as outras duas condições não sejam verdadeiras.
{
"condition": "[[or(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}
Você pode aplicar um operador não a um grupo para testar o resultado oposto de um grupo de cláusulas. A condição a seguir permite operações somente em blobs que não são documentos do Microsoft Word em que a tag readyForLegalHold do blob é definida com o valor de Yes. As operações também são executadas em objetos maiores que 100 bytes, mesmo que as outras duas condições não sejam verdadeiras.
{
"condition": "[[or(not(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))), greater(Content-Length, '100'))]]"
}
Visualização de código no portal do Azure
O editor visual disponível no portal do Azure pode gerar o JSON de uma condição para você. Você pode definir suas condições usando o editor e, em seguida, obter a expressão JSON abrindo a guia Código. Essa abordagem pode ser útil ao criar conjuntos complicados de condições, pois as expressões JSON podem se tornar grandes, difíceis de manejar e de criar manualmente. A imagem a seguir mostra a aba Código no editor visual.
Para saber mais sobre o editor visual, veja Definir condições e operações de tarefas de armazenamento.
Pré-visualização da condição
Você pode exibir uma lista de blobs que seriam afetados pelas condições que você definiu. Dessa forma, você pode encontrar problemas e otimizar as condições antes de aplicá-los aos dados de produção. Uma prévia não faz alterações nos objetos em uma conta de armazenamento de destino, portanto, é seguro aplicar para testar dados de produção.
Embora a visualização de condição esteja disponível nos ambientes do PowerShell, da CLI do Azure e do SDK, a maneira mais fácil de visualizar o efeito das condições é usando a janela Condições de Visualização no portal do Azure. Você pode abrir essa janela se definir condições e atribuir tarefas de armazenamento.
Para visualizar o efeito das condições, você deve especificar uma assinatura de destino, uma conta de armazenamento e um contêiner. Como só é possível mostrar até 5.000 blobs, você também pode especificar um prefixo para restringir a lista.
Observação
Você não pode usar caracteres curinga no prefixo de blob.
A imagem a seguir mostra um exemplo de um resultado de visualização no portal do Azure.
O resultado da visualização aparece em uma tabela que mostra objetos que atendem à condição juntamente com objetos que não atenderam à condição. Você pode classificar por campo que aparece na tabela.
Se as condições se referirem a propriedades que não existem na conta de armazenamento de destino, um erro será exibido. Por exemplo, tags de índice de blob não estão disponíveis para contas que têm um namespace hierárquico. Se uma cláusula em uma condição se referir a marcas de índice de blob, um erro de validação será exibido.
Propriedades aceitas
A tabela a seguir mostra as propriedades que você pode usar para compor cada cláusula de uma condição. Uma cláusula pode conter propriedades de cadeia de caracteres, booleanas, numéricas e de data e hora.
| fio | Data e hora3 | Numérico | Booliano |
|---|---|---|---|
| AccessTier1 | AccessTierChangeTime | Tamanho do conteúdo | Excluído |
| Metadados.Value | Creation-Time | Contagem de tags | IsCurrentVersion |
| Nome | DeletedTime | ||
| BlobType2 | TempoDeÚltimoAcesso | ||
| Container.Metadata.Value[Name] | Last-Modified | ||
| Contêiner.Nome | |||
| Container.Metadata.Value[Name] | |||
| Contêiner.Nome | |||
| Tags.Value[Name] | |||
| VersionId |
1 Os valores permitidos são Hot, Cool ou Archive.
2 Os valores permitidos são BlockBlob, PageBlob ou AppendBlob
3 Pode ser definido como uma hora específica ou um valor de metadados obtido dinamicamente de objetos. Confira Referência de um valor de metadados de objeto.
Operadores suportados
A tabela a seguir mostra os operadores que você pode usar em uma cláusula para avaliar o valor de cada tipo de propriedade.
| fio | Data e hora | Numérico | Booliano |
|---|---|---|---|
| contém | igual | igual | igual |
| vazio | maior | maior | |
| igual | greaterOrEquals | greaterOrEquals | |
| terminaCom | menos | menos | |
| comprimento | lessOrEquals | lessOrEquals | |
| começaCom | addToTime | ||
| Correspondências |
O operador not é um operador especial que você pode posicionar diante de qualquer um dos operadores que aparecem nesta tabela para dar o resultado oposto da cláusula condicional, também chamado de resultado negativo.