Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una tarea de almacenamiento contiene un conjunto de condiciones y operaciones. En este artículo se describe el formato JSON de una condición. Comprender ese formato es importante si planea crear una tarea de almacenamiento mediante una herramienta distinta de Azure Portal (por ejemplo, Azure PowerShell o la CLI de Azure). En este artículo también se enumeran las propiedades y operadores que puede usar para componer las cláusulas de una condición.
Este artículo se centra en las condiciones. Para obtener más información sobre las operaciones, consulte Operaciones de tareas de almacenamiento.
Formato de condición
Una condición de una colección de una o varias cláusulas. Cada cláusula contiene una propiedad, un valor y un operador. Cuando se ejecuta la tarea de almacenamiento, usa el operador para comparar una propiedad con un valor para determinar si el objeto de destino cumple una cláusula. En una cláusula, el operador siempre aparece primero seguido de la propiedad y luego el valor. En la siguiente imagen se muestra cómo se coloca cada elemento en la expresión.
La siguiente cláusula solo permite operaciones en documentos de Microsoft Word. Esta cláusula tiene como destino todos los documentos que terminan con la extensión de archivo .docx
. Por lo tanto, el operador es endsWith
, la propiedad es Name
y el valor es .docx
.
{
"condition": "[[[endsWith(Name, '.docx')]]"
}
También puede aplicar un no operador antes del operador de una cláusula de condición. El operador not es un operador especial que se puede colocar antes de cualquier operador para dar el resultado opuesto de una cláusula. La cláusula siguiente permite operaciones en cualquier blob que no sea un documento de Microsoft Word.
{
"condition": "[[not(endsWith(Name, '*.docx'))]]"
}
Para obtener una lista completa de los nombres de operador y propiedad, consulte la sección Operadores admitidos y Propiedades admitidas de este artículo.
Varias cláusulas de una condición
Una condición puede contener varias cláusulas separadas por una coma junto con la cadena and
o or
. La cadena and
tiene como destino los objetos que cumplen los criterios de todas las cláusulas de la condición, mientras or
que los objetos que cumplen el criterio en cualquiera de las cláusulas de la condición. En la siguiente imagen se muestra la posición de la cadena and
y or
junto con dos cláusulas.
El siguiente JSON muestra una condición que contiene dos cláusulas. Dado que la cadena and
se usa en esta expresión, ambas cláusulas deben evaluarse como true
antes de realizar una operación en el objeto.
{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}
Grupos de condiciones
Las cláusulas agrupadas funcionan como una sola unidad independiente del resto de las cláusulas. Agrupar cláusulas es similar a colocar paréntesis alrededor de una ecuación matemática o una expresión lógica. La cadena and
o or
para la primera cláusula del grupo se aplica a todo el grupo.
En la imagen siguiente se muestran dos cláusulas agrupadas.
La siguiente condición solo permite las operaciones en documentos de Microsoft Word donde la etiqueta readyForLegalHold
del documento está establecida en un valor de Yes
. Las operaciones también se realizan en objetos que tienen más de 100 bytes aunque las otras dos condiciones no sean verdaderas.
{
"condition": "[[or(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}
Puede aplicar un operador not a un grupo para probar el resultado opuesto de un grupo de cláusulas. La siguiente condición solo permite las operaciones en blobs que no sean documentos de Microsoft Word donde la etiqueta del blob se establece en un valor readyForLegalHold
. Las operaciones también se realizan en objetos que tienen más de 100 bytes aunque las otras dos condiciones no sean verdaderas.
{
"condition": "[[or(not(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))), greater(Content-Length, '100'))]]"
}
Vista de código en Azure Portal
El editor visual disponible en Azure portal, puede generar el JSON de una condición para usted. Puede definir sus condiciones utilizando el editor y luego obtener la expresión JSON abriendo la pestaña Código. Este enfoque puede ser útil cuando se crean conjuntos complicados de condiciones, ya que las expresiones JSON pueden llegar a ser grandes, poco manejables y difíciles de crear a mano. En la imagen siguiente se muestra la pestaña Código en el editor visual.
Para obtener más información sobre el editor visual, consulte Definición de condiciones y operaciones de almacenamiento.
Vista previa de condición
Puede ver una lista de blobs que se verían afectados por las condiciones que ha definido. De este modo, puede encontrar problemas y optimizar las condiciones antes de aplicarlas a los datos de producción. Una versión preliminar no realiza cambios en los objetos de una cuenta de almacenamiento de destino, por lo que es seguro aplicar para probar los datos de producción.
Aunque la versión preliminar de la condición está disponible en entornos de PowerShell, la CLI de Azure y el SDK, la manera más sencilla de obtener una vista previa del efecto de las condiciones es mediante la ventana Condiciones de vista previa en Azure Portal. Puede abrir esta ventana si define condiciones y a medida que asigna tareas de almacenamiento.
Para obtener una vista previa del efecto de las condiciones, debe especificar una suscripción de destino, una cuenta de almacenamiento y un contenedor. Dado que solo puede mostrar hasta 5000 blobs, también puede especificar un prefijo para restringir la lista.
Nota:
No se pueden usar caracteres comodín en el prefijo de blob.
En la imagen siguiente se muestra un ejemplo de un resultado en versión preliminar en Azure Portal.
El resultado de la vista previa aparece en una tabla que muestra los objetos que cumplen la condición junto con los objetos que no cumplen la condición. Puede ordenar por campo que aparece en la tabla.
Si las condiciones hacen referencia a las propiedades que no existen en la cuenta de almacenamiento de destino, aparece un error. Por ejemplo, las etiquetas de índice de blobs no están disponibles para las cuentas que tienen un espacio de nombres jerárquico. Si una cláusula de una condición hace referencia a etiquetas de índice de blobs, aparece un error de validación.
Propiedades admitidas
En la siguiente tabla se muestran las propiedades que puede usar para componer cada cláusula de una condición. Una cláusula puede contener propiedades de cadena, booleanas, numéricas y de fecha y hora.
Cadena | Fecha y hora3 | Numérico | Booleano |
---|---|---|---|
AccessTier1 | AccessTierChangeTime | Longitud del contenido | Eliminado |
Metadata.Value | Creation-Time | Conteo de etiquetas | IsCurrentVersion |
Nombre | DeletedTime | ||
BlobType2 | HoraDelÚltimoAcceso | ||
Container.Metadata.Value[Name] | Última modificación | ||
Nombre del contenedor | |||
Container.Metadata.Value[Name] | |||
Nombre del contenedor | |||
Tags.Value[Name] | |||
VersionId |
1 Los valores permitidos son Hot
, Cool
o Archive
.
2 Los valores permitidos son BlockBlob
, PageBlob
o AppendBlob
3 Puede fijarse en una hora determinada o en un valor de metadatos obtenido dinámicamente de los objetos. Consulte Referencia de un valor de metadatos de objeto.
Operadores admitidos
En la siguiente tabla se muestran los operadores que puede usar en una cláusula para evaluar el valor de cada tipo de propiedad.
Cadena | Fecha y hora | Numérico | Booleano |
---|---|---|---|
contiene | igual | igual | igual |
vacío | mayor | mayor | |
igual | greaterOrEquals | greaterOrEquals | |
endsCon | menos | menos | |
largura | lessOrEquals | lessOrEquals | |
startsWith | addToTime | ||
Coincidencias |
El operador not es un operador especial que se puede colocar antes de cualquiera de los operadores que aparecen en esta tabla para dar el resultado opuesto de la cláusula condicional, también denominado resultado negativo.