Definir propriedades do serviço Tabela

A Set Table Service Properties operação define propriedades para o ponto de extremidade do Armazenamento de Tabelas do Azure de uma conta de armazenamento, incluindo propriedades para Análise de Armazenamento e regras cors (compartilhamento de recursos entre origens). Para obter mais informações sobre regras de CORS, consulte Suporte a CORS para os serviços de Armazenamento do Azure.

Solicitação

Você pode especificar a solicitação Set Table Service Properties da seguinte maneira. Recomendamos HTTPS. Substitua account-name pelo nome da sua conta de armazenamento.

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

Observe que o URI sempre deve incluir a barra (/) para separar o nome do host do caminho e as partes de consulta do URI. No caso dessa operação, a parte do caminho do URI fica vazia.

Parâmetros do URI

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

Cabeçalhos da solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais:

Cabeçalho da solicitação Descrição
Authorization Obrigatórios. Especifica o esquema de autorização, o nome da conta de armazenamento e a assinatura. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
Date ou x-ms-date Obrigatórios. Especifica o UTC (Tempo Universal Coordenado) para a solicitação. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
x-ms-version Necessário para todas as solicitações autorizadas. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres kib (1 kibibyte) que é registrado nos logs quando o registro em log é configurado. É altamente recomendável que você use esse cabeçalho para correlacionar atividades do lado do cliente com solicitações recebidas pelo servidor.

Corpo da solicitação

Para a versão 2012-02-12 e anterior, o formato da solicitação é 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 da solicitação é 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, você pode chamar Set Table Service Properties com um ou mais elementos raiz especificados no corpo da solicitação. Os elementos raiz incluem:

  • Logging

  • HourMetrics

  • MinuteMetrics

  • Cors

Não é mais necessário especificar todos os elementos raiz na solicitação. Se você omitir um elemento raiz, as configurações existentes para o serviço para essa funcionalidade serão preservadas. Mas se você especificar um elemento raiz, deverá especificar cada elemento filho para esse elemento.

A tabela a seguir descreve os elementos do corpo da solicitação:

Nome do elemento Descrição
Logging Opcional para a versão 2013-08-15 e posterior. Necessário para versões anteriores. Agrupa as configuraçõ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 configurações de Análise de ArmazenamentoMetrics. As configurações de Metrics fornecem um resumo das estatísticas de solicitação agrupadas por API em agregações de hora em hora para tabelas.
HourMetrics Opcional para a versão 2013-08-15 e posterior. Não aplicável a versões anteriores. Agrupa as configurações de Análise de ArmazenamentoHourMetrics. As configurações de HourMetrics fornecem um resumo das estatísticas de solicitação agrupadas por API em agregações de hora em hora para tabelas.
MinuteMetrics Opcional para a versão 2013-08-15 e posterior. Não aplicável a versões anteriores. Agrupa as configurações de Análise de ArmazenamentoMinuteMetrics. As configurações de MinuteMetrics fornecem estatísticas de solicitação para cada minuto para tabelas. Para as versões anteriores a 2013-08-15, MinuteMetrics não está incluído no corpo da resposta.
Version Obrigatórios. Indica a versão do Análise de Armazenamento a ser configurada.
Delete Obrigatórios. É aplicável apenas à configuração de geração de logs. Indica se todas as solicitações de exclusão devem ser registradas em log.
Read Obrigatórios. É aplicável apenas à configuração de geração de logs. Indica se todas as solicitações de leitura devem ser registradas em log.
Write Obrigatórios. É aplicável apenas à configuração de geração de logs. Indica se todas as solicitações de gravação devem ser registradas em log.
Enabled Obrigatórios. Indica se as métricas estão habilitadas para o serviço de Armazenamento do Azure.

Se a replicação georredundante de acesso de leitura estiver habilitada, as métricas primárias e secundárias serão coletadas. Se a replicação georredundante de acesso de leitura não estiver habilitada, apenas as métricas primárias serão coletadas.
IncludeAPIs Necessário somente se as métricas estiverem habilitadas. É aplicável apenas à configuração de métrica. Indica se a métrica deve gerar estatísticas de resumo para operações chamadas de API.
RetentionPolicy/Enabled Obrigatórios. Indica se uma política de retenção está habilitada para o serviço de Armazenamento do Azure.
RetentionPolicy/Days Necessário apenas se uma política de retenção estiver habilitada. Indica o número de dias em que a métrica ou os dados de log devem ser mantidos. Todos os dados mais antigos do que esse valor serão excluídos. O valor mínimo que você pode especificar é 1. O maior valor é 365 (um ano).
Cors Opcional. Compatível com a versão 2013-08-15 e posterior. Agrupa todas as regras de CORS.

Omitir esse grupo de elementos não substituirá as configurações existentes de CORS.
CorsRule Opcional. Especifica uma regra CORS para o Armazenamento de Tabelas. Você pode incluir até cinco elementos CorsRule na solicitação. Se nenhum CorsRule elemento for incluído no corpo da solicitação, todas as regras CORS serão excluídas e o CORS será desabilitado para o Armazenamento de Tabelas.
AllowedOrigins Necessário se o elemento CorsRule estiver presente. Fornece uma lista separada por vírgulas de domínios de origem que serão permitidos por meio do CORS ou contém * para permitir todos os domínios. Um domínio de origem também pode incluir um caractere curinga no subdomínio para permitir solicitações via CORS para todos os subdomínios de um domínio. Limitado a 64 domínios de origem. Cada origem permitida pode ter até 256 caracteres.
ExposedHeaders Obrigatório se o CorsRule elemento estiver presente. Fornece uma lista separada por vírgulas de cabeçalhos de resposta a serem expostos a clientes CORS. Limitado a 64 cabeçalhos definidos e dois cabeçalhos prefixados. Cada cabeçalho pode ter até 256 caracteres.
MaxAgeInSeconds Obrigatório se o CorsRule elemento estiver presente. Indica o número de segundos em que o cliente ou navegador deve armazenar em cache uma resposta de pré-voo.
AllowedHeaders Obrigatório se o CorsRule elemento existir. Fornece uma lista separada por vírgulas de cabeçalhos permitidos para fazer parte da solicitação entre origens. Limitado a 64 cabeçalhos definidos e 2 cabeçalhos prefixados. Cada cabeçalho pode ter até 256 caracteres.
AllowedMethods Obrigató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 status HTTP, um conjunto de cabeçalhos de resposta e um corpo de resposta.

Código de status

Uma operação bem-sucedida retorna o código de status 202 (Aceito).

Cabeçalhos de resposta

A resposta para esta operação inclui os cabeçalhos a seguir. 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 uma solicitação feita no serviço.
x-ms-version Especifica a versão da operação usada para a resposta. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure.
x-ms-client-request-id Pode ser usado para solucionar problemas de solicitações e respostas correspondentes. O valor desse cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se ele estiver presente na solicitação e o valor for no máximo 1.024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, esse cabeçalho não estará presente na resposta.

Corpo da resposta

Nenhum.

Autorização

Somente o proprietário da conta pode chamar essa operação.

Comentários

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

  • Você pode armazenar no máximo cinco regras.

  • O tamanho máximo de todas as configurações de regra CORS na solicitação, excluindo marcas XML, não deve exceder 2 KiB.

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

  • Cabeçalhos permitidos e cabeçalhos expostos podem ser:

    • Cabeçalhos literais em que o nome exato do cabeçalho é fornecido, como x-ms-meta-processed. Você pode especificar um máximo de 64 cabeçalhos literais na solicitação.

    • Cabeçalhos prefixados em que um prefixo do cabeçalho é fornecido, como x-ms-meta-data\. Especificar um prefixo dessa forma permite ou expõe qualquer cabeçalho que comece com esse prefixo. Você pode especificar um máximo de dois cabeçalhos prefixados na solicitação.

  • Os métodos (ou verbos HTTP) especificados no elemento devem estar em AllowedMethods conformidade com os métodos aos quais as APIs do serviço de Armazenamento do Azure dão suporte. Os métodos com suporte são DELETE, GET, HEAD, MERGE, POST, OPTIONS, e PUT.

Especificar as regras de CORS na solicitação é opcional. Se você chamar Set Table Service Properties sem especificar o elemento Cors no corpo da solicitação, todas as regras de CORS existentes serão mantidas.

Para desabilitar o CORS, chame Set Table Service Properties com configurações de regras CORS vazias (por exemplo, </Cors>) e sem regras internas do CORS. Essa chamada exclui todas as regras existentes e desabilita o CORS para o Armazenamento de Tabelas.

Todos os elementos de regra CORS serão necessários se você especificar o CorsRule elemento . Se algum elemento estiver ausente, a solicitação falhará com o código de erro 400 (Solicitação Incorreta).

A partir da versão 2013-08-15, os elementos para configurações XML são opcionais. Você pode atualizar um elemento específico enviando XML que contém apenas o elemento atualizado e não afeta outras configurações.

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

Exemplo de solicitação e resposta

O URI de exemplo a seguir faz uma solicitação para alterar as propriedades do Armazenamento de Tabelas para a conta de armazenamento fictícia chamada myaccount:

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

A solicitação é enviada 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  

A solicitação é enviada 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 que a solicitação é enviada, a seguinte resposta é retornada:

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  
  

Confira também