Définition des propriétés du service Table

L’opération Set Table Service Properties définit les propriétés du point de terminaison de stockage Table Azure d’un compte de stockage, y compris les propriétés des règles de Storage Analytics et cors (Cross-Origin Resource Sharing). Pour plus d’informations sur les règles CORS, consultez Prise en charge de CORS pour les services de stockage Azure.

Requête

Vous pouvez spécifier la Set Table Service Properties demande comme suit. Nous recommandons HTTPS. Remplacez account-name par le nom de votre compte de stockage.

Méthode URI de demande Version HTTP
PUT https://account-name.table.core.windows.net/?restype=service&comp=properties HTTP/1.1

Notez que l'URI doit toujours inclure la barre oblique (/) pour séparer le nom d'hôte du chemin d'accès et les portions de requête de l'URI. Dans le cadre de cette opération, la partie de chemin d'accès de l'URI est vide.

Paramètres URI

Paramètre d’URI Description
restype=service&comp=properties Obligatoire. La combinaison des deux chaînes de requête est nécessaire pour définir les propriétés du service Stockage Azure.
timeout Optionnel. Le paramètre timeout est exprimé en secondes.

En-têtes de requête

Le tableau suivant décrit les en-têtes de requête obligatoires et facultatifs :

En-tête de requête Description
Authorization Obligatoire. Spécifie le schéma d’autorisation, le nom du compte de stockage et la signature. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure.
Date ou x-ms-date Obligatoire. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure.
x-ms-version Obligatoire pour toutes les demandes autorisées. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft Azure.
x-ms-client-request-id Optionnel. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (Kio) enregistrée dans les journaux lors de la configuration de la journalisation. Nous vous recommandons vivement d’utiliser cet en-tête pour mettre en corrélation les activités côté client avec les demandes que le serveur reçoit.

Corps de la demande

Le format du corps de la demande pour la version 2012-02-12 et les versions antérieures est le suivant :

<?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>  

Le format du corps de la demande pour la version 2013-08-15 et ultérieure est le suivant :

<?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>  

À partir de la version 2013-08-15, vous pouvez appeler Set Table Service Properties avec un ou plusieurs éléments racine spécifiés dans le corps de la demande. Les éléments racine incluent :

  • Logging

  • HourMetrics

  • MinuteMetrics

  • Cors

Il n’est plus nécessaire de spécifier chaque élément racine sur la demande. Si vous omettez un élément racine, les paramètres existants pour le service de cette fonctionnalité sont conservés. Toutefois, si vous spécifiez un élément racine, vous devez spécifier chaque élément enfant pour cet élément.

Le tableau suivant décrit les éléments du corps de la demande :

Nom de l'élément Description
Logging Facultatif pour la version 2013-08-15 et ultérieure. Obligatoire pour les versions antérieures. Regroupe les paramètres de Storage AnalyticsLogging.
Metrics Obligatoire pour la version 2012-02-12 et les versions antérieures. Non applicable pour la version 2013-08-15 et ultérieures. Regroupe les paramètres de Storage AnalyticsMetrics. Les paramètres Metrics fournissent un résumé des statistiques de requête regroupées par l'API en agrégats horaires des tables.
HourMetrics Facultatif pour la version 2013-08-15 et ultérieure. Non applicable aux versions antérieures. Regroupe les paramètres de Storage AnalyticsHourMetrics. Les paramètres HourMetrics fournissent un résumé des statistiques de requête regroupées par l'API en agrégats horaires des tables.
MinuteMetrics Facultatif pour la version 2013-08-15 et ultérieure. Non applicable aux versions antérieures. Regroupe les paramètres de Storage AnalyticsMinuteMetrics. Les paramètres MinuteMetrics fournissent des statistiques de requête pour chaque minutes des tables. Pour les versions antérieures à la version à 2013-08-15, MinuteMetrics n'est pas inclus dans le corps de la réponse.
Version Obligatoire. Indique la version de Storage Analytics à configurer.
Delete Obligatoire. S'applique uniquement à la configuration de journalisation. Indique si toutes les demandes de suppression doivent être journalisées.
Read Obligatoire. S'applique uniquement à la configuration de journalisation. Indique si toutes les demandes de lecture doivent être journalisées.
Write Obligatoire. S'applique uniquement à la configuration de journalisation. Indique si toutes les demandes d'écriture doivent être journalisées.
Enabled Obligatoire. Indique si les métriques sont activées pour le service Stockage Azure.

Si la réplication géographique redondante avec accès en lecture est activée, les métriques primaires et secondaires sont collectées. Si la réplication géographique redondante avec accès en lecture n'est pas activée, seules les métriques primaires sont collectées.
IncludeAPIs Obligatoire uniquement si les métriques sont activées. S'applique uniquement à la configuration des métriques. Indique si les métriques doivent générer des statistiques de synthèse pour les opérations d'API appelées.
RetentionPolicy/Enabled Obligatoire. Indique si une stratégie de rétention est activée pour le service Stockage Azure.
RetentionPolicy/Days Obligatoire uniquement si une stratégie de rétention est activée. Indique le nombre de jours pendant lesquels les métriques ou les données de journalisation doivent être conservées. Toutes les données plus anciennes que cette valeur seront supprimées. La valeur minimale que vous pouvez spécifier est 1. La valeur la plus élevée est 365 (un an).
Cors Optionnel. Pris en charge pour la version 2013-08-15 et ultérieure. Regroupe toutes les règles CORS.

Si cet élément n'est pas spécifié, le regroupement ne remplace pas les paramètres CORS existants.
CorsRule Optionnel. Spécifie une règle CORS pour le stockage table. Vous pouvez inclure jusqu’à cinq éléments CorsRule dans la requête. Si aucun élément n’est CorsRule inclus dans le corps de la demande, toutes les règles CORS sont supprimées et CORS est désactivé pour le stockage Table.
AllowedOrigins Obligatoire si l'élément CorsRule est présent. Fournit une liste séparée par des virgules des domaines d’origine qui seront autorisés via CORS ou qui contiennent * pour autoriser tous les domaines. Un domaine d’origine peut également inclure un caractère générique dans le sous-domaine pour autoriser les demandes via CORS pour tous les sous-domaines d’un domaine. Limitée à 64 domaines d'origine. Chaque origine autorisée peut comporter jusqu'à 256 caractères.
ExposedHeaders Obligatoire si l’élément CorsRule est présent. Fournit une liste séparée par des virgules d’en-têtes de réponse à exposer aux clients CORS. Limitée à 64 en-têtes définis et deux en-têtes avec préfixe. Chaque en-tête peut comporter jusqu'à 256 caractères.
MaxAgeInSeconds Obligatoire si l’élément CorsRule est présent. Indique le nombre de secondes pendant lesquelles le client ou le navigateur doit mettre en cache une réponse préliminaire.
AllowedHeaders Obligatoire si l’élément CorsRule existe. Fournit une liste séparée par des virgules d’en-têtes autorisés à faire partie de la demande d’origine croisée. Limitée à 64 en-têtes définis et deux en-têtes avec préfixe. Chaque en-tête peut comporter jusqu'à 256 caractères.
AllowedMethods Obligatoire si l’élément CorsRule existe. Fournit une liste séparée par des virgules des méthodes HTTP que l’origine est autorisée à exécuter. Pour stockage Azure, les méthodes autorisées sont DELETE, GET, HEAD, MERGE, POST, , OPTIONSet PUT.

response

La réponse inclut un code d'état HTTP, un ensemble d'en-têtes de réponse et un corps de réponse.

Code d’état

Une opération réussie renvoie le code d'état 202 (Accepté).

En-têtes de réponse

La réponse de l'opération inclut les en-têtes suivants. La réponse peut également inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

En-tête de réponse Description
x-ms-request-id Spécifie une valeur qui identifie de manière unique une requête adressée au service.
x-ms-version Spécifie la version de l'opération utilisée pour la réponse. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft Azure.
x-ms-client-request-id Peut être utilisé pour résoudre les demandes et les réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id , s’il est présent dans la requête et que la valeur est au maximum de 1 024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la demande, cet en-tête ne sera pas présent dans la réponse.

Response body

Aucun.

Autorisation

Seul le propriétaire du compte peut appeler cette opération.

Notes

Les restrictions et limitations suivantes s'appliquent aux règles CORS du stockage Azure :

  • Vous pouvez stocker un maximum de cinq règles.

  • La taille maximale de tous les paramètres de règle CORS sur la demande, à l’exception des balises XML, ne doit pas dépasser 2 Kio.

  • La longueur d'un en-tête autorisé, d'un en-tête exposé ou d'une origine autorisée ne doit pas dépasser 256 caractères.

  • Les en-têtes autorisés et les en-têtes exposés peuvent être les suivants :

    • En-têtes littérals où le nom exact de l’en-tête est fourni, tels que x-ms-meta-processed. Vous pouvez spécifier un maximum de 64 en-têtes littéraux sur la demande.

    • En-têtes préfixés où un préfixe de l’en-tête est fourni, comme x-ms-meta-data\. La spécification d’un préfixe de cette façon autorise ou expose tout en-tête commençant par ce préfixe. Vous pouvez spécifier un maximum de deux en-têtes préfixés sur la demande.

  • Les méthodes (ou verbes HTTP) spécifiées dans l’élément AllowedMethods doivent être conformes aux méthodes prises en charge par les API du service Stockage Azure. Les méthodes prises en charge sont DELETE, GET, HEADMERGE, POST, OPTIONS, et PUT.

La spécification de règles CORS sur la demande est facultative. Si vous appelez Set Table Service Properties sans spécifier l'élément Cors dans le corps de la requête, toutes les règles CORS existantes sont conservées.

Pour désactiver CORS, appelez Set Table Service Properties avec des paramètres de règles CORS vides (par exemple, </Cors>) et aucune règle CORS interne. Cet appel supprime toutes les règles existantes et désactive CORS pour le stockage Table.

Tous les éléments de règle CORS sont requis si vous spécifiez l’élément CorsRule . S’il manque un élément, la demande échoue avec le code d’erreur 400 (requête incorrecte).

À compter de la version 2013-08-15, les éléments pour les paramètres XML sont facultatifs. Vous pouvez mettre à jour un élément spécifique en envoyant du code XML qui contient uniquement l’élément mis à jour et qui n’affecte pas d’autres paramètres.

Pour plus d’informations sur les règles CORS et la logique d’évaluation, consultez Prise en charge de CORS pour les services de stockage Azure.

Exemple de requête et de réponse

L’exemple d’URI suivant effectue une demande de modification des propriétés de stockage table pour le compte de stockage fictif nommé myaccount :

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

La demande est envoyée avec les en-têtes suivants :

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 demande est envoyée avec le corps XML suivant :

<?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>  
  

Une fois la demande envoyée, la réponse suivante est retournée :

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  
  

Voir aussi