Definir Propriedades do Serviço de Tabela

A Set Table Service Properties operação define as propriedades para o ponto final do Armazenamento de Tabelas do Azure de uma conta de armazenamento, incluindo propriedades para Análise de Armazenamento e regras CORS (Cross-Origin Resource Sharing). Para obter mais informações sobre as regras CORS, veja Suporte CORS para os serviços de Armazenamento do Azure.

Pedir

Pode especificar o pedido da Set Table Service Properties seguinte forma. Recomendamos HTTPS. Substitua account-name pelo nome da sua conta de armazenamento.

Método URI do pedido Versão HTTP
PUT https://account-name.table.core.windows.net/?restype=service&comp=properties HTTP/1.1

Tenha em atenção que o URI tem de incluir sempre a barra (/) para separar o nome do anfitrião das partes de caminho e consulta do URI. No caso desta operação, a parte do caminho do URI está vazia.

Parâmetros URI

Parâmetro URI Description
restype=service&comp=properties Obrigatório. A combinação de ambas as cadeias de consulta é necessária para definir as propriedades do serviço de Armazenamento do Azure.
timeout Opcional. O timeout parâmetro é expresso em segundos.

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais:

Cabeçalho do pedido Description
Authorization Obrigatório. Especifica o esquema de autorização, o nome da conta de armazenamento e a assinatura. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
Date ou x-ms-date Obrigatório. Especifica a Hora Universal Coordenada (UTC) do pedido. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
x-ms-version Necessário para todos os pedidos autorizados. Especifica a versão da operação a utilizar para este pedido. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de carateres de 1 kibibyte (KiB) que é registado nos registos quando o registo é configurado. Recomendamos vivamente que utilize este cabeçalho para correlacionar as atividades do lado do cliente com os pedidos que o servidor recebe.

Corpo do pedido

Para a versão 2012-02-12 e anterior, o formato do corpo do pedido é o seguinte:

<?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 a versão 2013-08-15 e posterior, o formato do corpo do pedido é o seguinte:

<?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 da versão 2013-08-15, pode ligar Set Table Service Properties com um ou mais elementos de raiz especificados no corpo do pedido. Os elementos de raiz incluem:

  • Logging

  • HourMetrics

  • MinuteMetrics

  • Cors

Já não é necessário especificar todos os elementos raiz no pedido. Se omitir um elemento raiz, as definições existentes do serviço para essa funcionalidade serão preservadas. No entanto, se especificar um elemento raiz, tem de especificar todos os elementos subordinados para esse elemento.

A tabela seguinte descreve os elementos do corpo do pedido:

Nome do elemento Descrição
Logging Opcional para a versão 2013-08-15 e posterior. Necessário para versões anteriores. Agrupa as definições de Análise de ArmazenamentoLogging.
Metrics Necessário para a versão 2012-02-12 e anterior. Não aplicável para a versão 2013-08-15 e posterior. Agrupa as definições de Análise de ArmazenamentoMetrics. As Metrics definições fornecem um resumo das estatísticas de pedidos agrupadas pela API em agregados por hora para tabelas.
HourMetrics Opcional para a versão 2013-08-15 e posterior. Não aplicável a versões anteriores. Agrupa as definições de Análise de ArmazenamentoHourMetrics. As HourMetrics definições fornecem um resumo das estatísticas de pedidos agrupadas pela API em agregados por hora para tabelas.
MinuteMetrics Opcional para a versão 2013-08-15 e posterior. Não aplicável a versões anteriores. Agrupa as definições de Análise de ArmazenamentoMinuteMetrics. As MinuteMetrics definições fornecem estatísticas de pedidos para cada minuto para tabelas. Para versões anteriores a 2013-08-15, MinuteMetrics não está incluído no corpo da resposta.
Version Obrigatório. Indica a versão do Análise de Armazenamento a configurar.
Delete Obrigatório. Aplica-se apenas à configuração de registo. Indica se todos os pedidos de eliminação devem ser registados.
Read Obrigatório. Aplica-se apenas à configuração de registo. Indica se todos os pedidos de leitura devem ser registados.
Write Obrigatório. Aplica-se apenas à configuração de registo. Indica se todos os pedidos de escrita devem ser registados.
Enabled Obrigatório. Indica se as métricas estão ativadas para o serviço de Armazenamento do Azure.

Se a replicação georredundante de acesso de leitura estiver ativada, as métricas primárias e secundárias são recolhidas. Se a replicação georredundante de acesso de leitura não estiver ativada, apenas são recolhidas métricas primárias.
IncludeAPIs Necessário apenas se as métricas estiverem ativadas. Aplica-se apenas à configuração de métricas. Indica se as métricas devem gerar estatísticas de resumo para as operações de API denominadas.
RetentionPolicy/Enabled Obrigatório. Indica se uma política de retenção está ativada para o serviço de Armazenamento do Azure.
RetentionPolicy/Days Necessário apenas se uma política de retenção estiver ativada. Indica o número de dias em que as métricas ou os dados de registo devem ser retidos. Todos os dados mais antigos que este valor serão eliminados. O valor mínimo que pode especificar é 1. O maior valor é 365 (um ano).
Cors Opcional. Suportado para a versão 2013-08-15 e posterior. Agrupa todas as regras CORS.

Omitindo este grupo de elementos não substituirá as definições CORS existentes.
CorsRule Opcional. Especifica uma regra CORS para o Armazenamento de Tabelas. Pode incluir até cinco elementos CorsRule no pedido. Se não CorsRule forem incluídos elementos no corpo do pedido, todas as regras CORS serão eliminadas e o CORS será desativado para o Armazenamento de Tabelas.
AllowedOrigins Necessário se CorsRule o elemento estiver presente. Fornece uma lista separada por vírgulas de domínios de origem que serão permitidos através * do CORS ou que contém para permitir todos os domínios. Um domínio de origem também pode incluir um caráter universal no subdomínio para permitir pedidos através do CORS para todos os subdomínios de um domínio. Limitado a 64 domínios de origem. Cada origem permitida pode ter até 256 carateres.
ExposedHeaders Necessário se o CorsRule elemento estiver presente. Fornece uma lista separada por vírgulas de cabeçalhos de resposta para expor aos clientes CORS. Limitado a 64 cabeçalhos definidos e dois cabeçalhos com prefixo. Cada cabeçalho pode ter até 256 carateres.
MaxAgeInSeconds Necessário se o CorsRule elemento estiver presente. Indica o número de segundos em que o cliente ou browser deve colocar em cache uma resposta de verificação prévia.
AllowedHeaders Necessário se o CorsRule elemento existir. Fornece uma lista separada por vírgulas de cabeçalhos permitidos para fazer parte do pedido de várias origens. Limitado a 64 cabeçalhos definidos e 2 cabeçalhos com prefixo. Cada cabeçalho pode ter até 256 carateres.
AllowedMethods Necessário se o CorsRule elemento existir. Fornece uma lista separada por vírgulas de métodos HTTP que a origem tem permissão para executar. Para o Armazenamento do Azure, os métodos permitidos são DELETE, GET, HEAD, MERGE, POST, OPTIONSe PUT.

Resposta

A resposta inclui um código de estado HTTP, um conjunto de cabeçalhos de resposta e um corpo de resposta.

Código de estado

Uma operação bem-sucedida devolve o código de estado 202 (Aceite).

Cabeçalhos de resposta

A resposta para esta operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
x-ms-request-id Especifica um valor que identifica exclusivamente um pedido feito relativamente ao serviço.
x-ms-version Especifica a versão da operação utilizada para a resposta. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure.
x-ms-client-request-id Pode ser utilizado para resolver problemas de pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se estiver presente no pedido e o valor for, no máximo, 1024 carateres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, este cabeçalho não estará presente na resposta.

Corpo da resposta

Nenhum.

Autorização

Apenas o proprietário da conta pode chamar esta operação.

Observações

As seguintes restrições e limitações aplicam-se às regras CORS no Armazenamento do Azure:

  • Pode armazenar um máximo de cinco regras.

  • O tamanho máximo de todas as definições de regras CORS no pedido, excluindo etiquetas XML, não deve exceder 2 KiB.

  • O comprimento de um cabeçalho permitido, cabeçalho exposto ou origem permitida não deve exceder os 256 carateres.

  • Os cabeçalhos permitidos e os cabeçalhos expostos podem ser:

    • Cabeçalhos literais onde é fornecido o nome exato do cabeçalho, como x-ms-meta-processed. Pode especificar um máximo de 64 cabeçalhos literais no pedido.

    • Cabeçalhos com prefixo onde é fornecido um prefixo do cabeçalho, como x-ms-meta-data\. Especificar um prefixo desta forma permite ou expõe qualquer cabeçalho que comece com esse prefixo. Pode especificar um máximo de dois cabeçalhos com prefixo no pedido.

  • Os métodos (ou verbos HTTP) especificados no elemento têm de estar em AllowedMethods conformidade com os métodos suportados pelas APIs do serviço de Armazenamento do Azure. Os métodos suportados são , , , , , POSTe PUTOPTIONS. MERGEHEADGETDELETE

Especificar regras CORS no pedido é opcional. Se chamar Set Table Service Properties sem especificar o Cors elemento no corpo do pedido, serão mantidas quaisquer regras CORS existentes.

Para desativar o CORS, chame Set Table Service Properties com definições de regras CORS vazias (por exemplo, </Cors>) e sem regras CORS internas. Esta chamada elimina todas as regras existentes e desativa o CORS para o Armazenamento de Tabelas.

Todos os elementos da regra CORS são necessários se especificar o CorsRule elemento . Se algum elemento estiver em falta, o pedido falhará com o código de erro 400 (Pedido Incorreto).

A partir da versão 2013-08-15, os elementos das definições XML são opcionais. Pode atualizar um elemento específico ao enviar XML que contém apenas o elemento atualizado e não afeta outras definições.

Para obter informações detalhadas sobre as regras CORS e a lógica de avaliação, veja Suporte cors para os serviços de Armazenamento do Azure.

Pedido e resposta de exemplo

O URI de exemplo seguinte faz um pedido para alterar as propriedades do Armazenamento de Tabelas para a conta de armazenamento fictícia com o nome myaccount:

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

O pedido é enviado com os seguintes cabeçalhos:

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  

O pedido é enviado com o seguinte corpo XML:

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

Depois de o pedido ser enviado, é devolvida a seguinte resposta:

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  
  

Ver também