Set Table Service Properties

La Set Table Service Properties operación establece propiedades para el punto de conexión de Azure Table Storage de una cuenta de almacenamiento, incluidas las propiedades de Storage Analytics y las reglas de uso compartido de recursos entre orígenes (CORS). Para más información sobre las reglas de CORS, consulte Compatibilidad de CORS con los servicios de Azure Storage.

Request

Puede especificar la Set Table Service Properties solicitud como se indica a continuación. Se recomienda HTTPS. Reemplace account-name por el nombre de la cuenta de almacenamiento.

Método URI de solicitud Versión de HTTP
PUT https://account-name.table.core.windows.net/?restype=service&comp=properties HTTP/1.1

Tenga en cuenta que el URI debe incluir siempre la barra diagonal (/) para separar el nombre de host de las partes de la ruta de acceso y de la consulta del URI. En el caso de esta operación, la parte de la ruta de acceso del URI está vacía.

Parámetros del identificador URI

Parámetro de URI Descripción
restype=service&comp=properties Necesario. La combinación de ambas cadenas de consulta es necesaria para establecer las propiedades del servicio Azure Storage.
timeout Opcional. El parámetro timeout se expresa en segundos.

Encabezados de solicitud

En la tabla siguiente se describen los encabezados de solicitud obligatorios y opcionales:

Encabezado de solicitud Descripción
Authorization Necesario. Especifica el esquema de autorización, el nombre de la cuenta de almacenamiento y la firma. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
Date o x-ms-date Necesario. Especifica la hora universal coordinada (UTC) de la solicitud. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
x-ms-version Necesario para todas las solicitudes autorizadas. Especifica la versión de la operación que se utiliza para esta solicitud. Para obtener más información, vea Versiones de los servicios de Azure Storage.
x-ms-client-request-id Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor.

Cuerpo de la solicitud

Para la versión 2012-02-12 y otras anteriores, el formato del cuerpo de la solicitud es el siguiente:

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <Logging>  
        <Version>version-number</Version>  
        <Delete>true|false</Delete>  
        <Read>true|false</Read>  
        <Write>true|false</Write>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </Logging>  
    <Metrics>  
        <Version>version-number</Version>  
        <Enabled>true|false</Enabled>  
        <IncludeAPIs>true|false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </Metrics>  
</StorageServiceProperties>  

Para la versión 2013-08-15 y otras posteriores, el formato del cuerpo de la solicitud es el siguiente:

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <Logging>  
        <Version>version-number</Version>  
        <Delete>true|false</Delete>  
        <Read>true|false</Read>  
        <Write>true|false</Write>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </Logging>  
    <HourMetrics>  
        <Version>version-number</Version>  
        <Enabled>true|false</Enabled>  
        <IncludeAPIs>true|false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </HourMetrics>  
    <MinuteMetrics>  
        <Version>version-number</Version>  
        <Enabled>true|false</Enabled>  
        <IncludeAPIs>true|false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </MinuteMetrics>  
    <Cors>  
        <CorsRule>  
            <AllowedOrigins>comma-separated-list-of-allowed-origins</AllowedOrigins>  
            <AllowedMethods>comma-separated-list-of-HTTP-verb</AllowedMethods>  
            <MaxAgeInSeconds>max-caching-age-in-seconds</MaxAgeInSeconds>  
            <ExposedHeaders>comma-separated-list-of-response-headers</ExposedHeaders>  
            <AllowedHeaders> comma-separated-list-of-request-headers </AllowedHeaders>  
        </CorsRule>  
    </Cors>  
</StorageServiceProperties>  

A partir de la versión 2013-08-15, puede llamar a Set Table Service Properties especificando uno o varios elementos raíz en el cuerpo de la solicitud. Entre los elementos raíz se incluyen:

  • Logging

  • HourMetrics

  • MinuteMetrics

  • Cors

Ya no es necesario especificar todos los elementos raíz en la solicitud. Si omite un elemento raíz, se conservan los valores existentes del servicio para esa funcionalidad. Pero si especifica un elemento raíz, debe especificar todos los elementos secundarios de ese elemento.

La tabla siguiente describe los elementos del cuerpo de la solicitud:

Nombre del elemento Descripción
Logging Opcional para la versión 2013-08-15 y posteriores. Es necesario para las versiones anteriores. Agrupa la configuración de Storage AnalyticsLogging.
Metrics Es necesario para las versiones 2012-02-12 y anteriores. No es aplicable a la versión 2013-08-15 y posteriores. Agrupa la configuración de Storage AnalyticsMetrics. Los valores de Metrics proporcionan un resumen de las estadísticas de solicitudes agrupadas por API en agregados a intervalos de una hora para las tablas.
HourMetrics Opcional para la versión 2013-08-15 y posteriores. No es aplicable a versiones anteriores. Agrupa la configuración de Storage AnalyticsHourMetrics. Los valores de HourMetrics proporcionan un resumen de las estadísticas de solicitudes agrupadas por API en agregados a intervalos de una hora para las tablas.
MinuteMetrics Opcional para la versión 2013-08-15 y posteriores. No es aplicable a versiones anteriores. Agrupa la configuración de Storage AnalyticsMinuteMetrics. Los valores de MinuteMetrics proporcionan estadísticas de solicitudes para cada minuto para las tablas. En las versiones anteriores a 2013-08-15, MinuteMetrics no se incluye en el cuerpo de la respuesta.
Version Necesario. Indica la versión de Storage Analytics que se va a configurar.
Delete Necesario. Se aplica solamente a la configuración de registro. Indica si se deben registrar todas las solicitudes de eliminación.
Read Necesario. Se aplica solamente a la configuración de registro. Indica si se deben registrar todas las solicitudes de lectura.
Write Necesario. Se aplica solamente a la configuración de registro. Indica si se deben registrar todas las solicitudes de escritura.
Enabled Necesario. Indica si las métricas están habilitadas para el servicio Azure Storage.

Si está habilitada la replicación con redundancia geográfica con acceso de lectura, se recopilan las métricas principales y secundarias. Si no está habilitada la replicación con redundancia geográfica con acceso de lectura, solo se recopilan las métricas principales.
IncludeAPIs Solo es obligatorio si se han habilitado las métricas. Se aplica solamente a la configuración de métricas. Indica si las métricas deben generar estadísticas de resumen para las operaciones de la API a las que se ha llamado.
RetentionPolicy/Enabled Necesario. Indica si una directiva de retención está habilitada para el servicio Azure Storage.
RetentionPolicy/Days Solo es obligatorio si se ha habilitado una directiva de retención. Indica el número de días que se deberían conservar los datos de métricas o de registro. Todos los datos anteriores a este valor se eliminarán. El valor mínimo que puede especificar es 1. El valor más grande es 365 (un año).
Cors Opcional. Compatible con la versión 2013-08-15 y posteriores. Agrupa todas las reglas de CORS.

La omisión de este grupo de elementos no sobrescribirá los valores existentes de CORS.
CorsRule Opcional. Especifica una regla de CORS para Table Storage. En la solicitud puede incluir hasta cinco elementos CorsRule. Si no se incluye ningún CorsRule elemento en el cuerpo de la solicitud, se eliminarán todas las reglas de CORS y SE deshabilitará CORS para Table Storage.
AllowedOrigins Es necesario si está presente el elemento CorsRule. Proporciona una lista separada por comas de dominios de origen que se permitirán a través de CORS o que contenga * para permitir todos los dominios. Un dominio de origen también puede incluir un carácter comodín en el subdominio para permitir solicitudes a través de CORS para todos los subdominios de un dominio. Tiene un límite de 64 dominios de origen. Cada origen permitido puede tener un máximo de 256 caracteres.
ExposedHeaders Obligatorio si el CorsRule elemento está presente. Proporciona una lista separada por comas de encabezados de respuesta que se exponen a los clientes CORS. Tiene un límite de 64 encabezados definidos y dos encabezados con prefijo. Cada encabezado puede tener un máximo de 256 caracteres.
MaxAgeInSeconds Obligatorio si el CorsRule elemento está presente. Indica el número de segundos que el cliente o el explorador deben almacenar en caché una respuesta preparatoria.
AllowedHeaders Obligatorio si el CorsRule elemento existe. Proporciona una lista separada por comas de encabezados que pueden formar parte de la solicitud entre orígenes. Tiene un límite de 64 encabezados definidos y 2 encabezados con prefijo. Cada encabezado puede tener un máximo de 256 caracteres.
AllowedMethods Obligatorio si el CorsRule elemento existe. Proporciona una lista separada por comas de métodos HTTP que el origen puede ejecutar. Para Azure Storage, los métodos permitidos son DELETE, GET, HEADMERGE, POST, , OPTIONSy PUT.

Response

La respuesta incluye un código de estado HTTP, un conjunto de encabezados de respuesta y un cuerpo de respuesta.

status code

Una operación correcta devuelve el código de estado 202 (Aceptado).

Encabezados de respuesta

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir encabezados HTTP estándar adicionales. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.

Encabezado de respuesta Descripción
x-ms-request-id Especifica un valor que identifica de forma única una solicitud realizada en el servicio.
x-ms-version Especifica la versión de la operación utilizada para la respuesta. Para obtener más información, vea Versiones de los servicios de Azure Storage.
x-ms-client-request-id Se puede usar para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del x-ms-client-request-id encabezado, si está presente en la solicitud y el valor es como máximo de 1024 caracteres ASCII visibles. Si el x-ms-client-request-id encabezado no está presente en la solicitud, este encabezado no estará presente en la respuesta.

Response body

Ninguno.

Authorization

Solo el propietario de la cuenta puede llamar a esta operación.

Comentarios

En Almacenamiento de Azure se aplican las restricciones y limitaciones siguientes a las reglas de CORS:

  • Puede almacenar un máximo de cinco reglas.

  • El tamaño máximo de todas las opciones de regla de CORS en la solicitud, excepto las etiquetas XML, no debe superar los 2 KiB.

  • La longitud de un encabezado permitido, un encabezado expuesto o un origen permitido no debe superar los 256 caracteres.

  • Los encabezados permitidos y los encabezados expuestos pueden ser:

    • Encabezados literales en los que se proporciona el nombre exacto del encabezado, como x-ms-meta-processed. Puede especificar un máximo de 64 encabezados literales en la solicitud.

    • Encabezados con prefijo en los que se proporciona un prefijo del encabezado, como x-ms-meta-data\. Especificar un prefijo de esta manera permite o expone cualquier encabezado que comience con ese prefijo. Puede especificar un máximo de dos encabezados con prefijo en la solicitud.

  • Los métodos (o verbos HTTP) especificados en el AllowedMethods elemento deben ajustarse a los métodos que admiten las API del servicio Azure Storage. Los métodos admitidos son DELETE, , HEADMERGEGET, POST, , OPTIONSy .PUT

Es opcional especificar reglas de CORS en la solicitud. Si se llama a Set Table Service Properties sin especificar el elemento Cors en el cuerpo de la solicitud, se conservan todas las reglas de CORS existentes.

Para deshabilitar CORS, llame a Set Table Service Properties con la configuración vacía de reglas de CORS (por ejemplo, </Cors>) y sin reglas de CORS internas. Esta llamada elimina las reglas existentes y deshabilita CORS para Table Storage.

Todos los elementos de regla de CORS son necesarios si especifica el CorsRule elemento . Si falta algún elemento, se producirá un error en la solicitud con el código de error 400 (solicitud incorrecta).

A partir de la versión 2013-08-15, los elementos para la configuración XML son opcionales. Para actualizar un elemento específico, envíe XML que contenga solo el elemento actualizado y no afecte a otras configuraciones.

Para obtener información detallada sobre las reglas de CORS y la lógica de evaluación, consulte Compatibilidad de CORS con los servicios de Azure Storage.

Solicitud y respuesta de ejemplo

El siguiente URI de ejemplo realiza una solicitud para cambiar las propiedades de Table Storage de la cuenta de almacenamiento ficticia denominada myaccount:

PUT https://myaccount.table.core.windows.net/?restype=service&comp=properties HTTP/1.1  

La solicitud se envía con los encabezados siguientes:

x-ms-version: 2013-08-15  
x-ms-date: Mon, 21 Oct 2013 04:38:23 GMT  
Authorization: SharedKey  
myaccount:Z1lTLDwtq5o1UYQluucdsXk6/iB7YxEu0m6VofAEkUE=  
Host: myaccount.table.core.windows.net  

La solicitud se envía con el cuerpo XML siguiente:

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <Logging>  
        <Version>1.0</Version>  
        <Delete>true</Delete>  
        <Read>false</Read>  
        <Write>true</Write>  
        <RetentionPolicy>  
            <Enabled>true</Enabled>  
            <Days>7</Days>  
        </RetentionPolicy>  
    </Logging>  
    <HourMetrics>  
        <Version>1.0</Version>  
        <Enabled>true</Enabled>  
        <IncludeAPIs>false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true</Enabled>  
            <Days>7</Days>  
        </RetentionPolicy>  
    </HourMetrics>  
    <MinuteMetrics>  
        <Version>1.0</Version>  
        <Enabled>true</Enabled>  
        <IncludeAPIs>true</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true</Enabled>  
            <Days>7</Days>  
        </RetentionPolicy>  
    </MinuteMetrics>  
    <Cors>  
        <CorsRule>  
            <AllowedOrigins> http://www.fabrikam.com,http://www.contoso.com</AllowedOrigins>  
            <AllowedMethods>GET,PUT</AllowedMethods>  
            <MaxAgeInSeconds>500</MaxAgeInSeconds>  
            <ExposedHeaders>x-ms-meta-data*,x-ms-meta-customheader</ExposedHeaders>  
            <AllowedHeaders>x-ms-meta-target*,x-ms-meta-customheader</AllowedHeaders>  
        </CorsRule>  
    </Cors>  
</StorageServiceProperties>  
  

Una vez enviada la solicitud, se devuelve la siguiente respuesta:

HTTP/1.1 202 Accepted  
Connection: Keep-Alive  
Transfer-Encoding: chunked  
Date: Mon, 21 Oct 2013 04:38:24 GMT  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cb939a31-0cc6-49bb-9fe5-3327691f2a30  
x-ms-version: 2013-08-15  
  

Consulte también