Задание свойств службы таблиц

Операция Set Table Service Properties задает свойства для конечной точки хранилища таблиц Azure учетной записи хранения, включая свойства для Аналитика Службы хранилища и правил общего доступа к ресурсам независимо от источника (CORS). Дополнительные сведения о правилах CORS см. в статье Поддержка CORS для служб хранилища Azure.

Запрос

Запрос можно указать Set Table Service Properties следующим образом. Рекомендуется использовать ПРОТОКОЛ HTTPS. Замените account-name именем своей учетной записи хранения.

Метод Универсальный код ресурса (URI) запроса параметр "Версия HTTP"
PUT https://account-name.table.core.windows.net/?restype=service&comp=properties HTTP/1.1

Обратите внимание, что URI должен всегда включать косую черту (/) для отделения имени узла от частей пути и запроса URI. Для этой операции компонент пути в URI будет пустым.

Параметры универсального кода ресурса (URI)

Параметр универсального кода ресурса (URI) Описание
restype=service&comp=properties Обязательный. Сочетание обеих строк запроса требуется для задания свойств службы хранилища Azure.
timeout Необязательный элемент. Параметр timeout указывается в секундах.

Заголовки запросов

В следующей таблице описаны обязательные и необязательные заголовки запросов.

Заголовок запроса Описание
Authorization Обязательный. Указывает схему авторизации, имя учетной записи хранения и подпись. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure.
Date или x-ms-date Обязательный. Задает время запроса в формате UTC. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure.
x-ms-version Требуется для всех авторизованных запросов. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в разделе Управление версиями для служб хранилища Azure.
x-ms-client-request-id Необязательный элемент. Предоставляет созданное клиентом непрозрачное значение с ограничением в 1 кибибайт (КиБ), которое записывается в журналы при настройке ведения журнала. Мы настоятельно рекомендуем использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером.

Текст запроса

Текст запроса для версии 2012-02-12 и более ранних имеет следующий формат:

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

Текст запроса для версии 2013-08-15 и более поздних имеет следующий формат:

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

Начиная с версии 2013-08-15, можно вызвать метод Set Table Service Properties с одним или несколькими корневыми элементами, указанными в тексте запроса. Корневые элементы включают:

  • Logging

  • HourMetrics

  • MinuteMetrics

  • Cors

Больше не нужно указывать каждый корневой элемент в запросе. Если корневой элемент не указан, то сохраняются существующие параметры службы для этой функции. Но если указать корневой элемент, необходимо указать каждый дочерний элемент для этого элемента.

В следующей таблице описываются элементы текста запроса.

Имя элемента Описание
Logging Необязательно для версии 2013-08-15 и более поздних версий. В предыдущих версиях обязателен. Группирует параметры Аналитика Службы хранилищаLogging.
Metrics В версии 2012-02-12 и более ранних обязателен. Неприменимо для версии 2013-08-15 и более поздних версий. Группирует параметры Аналитика Службы хранилищаMetrics. Параметры Metrics предоставляют сводку статистики запросов, сгруппированную по API в почасовую статистику для таблиц.
HourMetrics Необязательно для версии 2013-08-15 и более поздних версий. Неприменимо для более ранних версий. Группирует параметры Аналитика Службы хранилищаHourMetrics. Параметры HourMetrics предоставляют сводку статистики запросов, сгруппированную по API в почасовую статистику для таблиц.
MinuteMetrics Необязательно для версии 2013-08-15 и более поздних версий. Неприменимо для более ранних версий. Группирует параметры Аналитика Службы хранилищаMinuteMetrics. Параметры MinuteMetrics предоставляют статистику запроса на каждую минуту для таблиц. В версиях, предшествующих 2013-08-15, MinuteMetrics не включаются в тексте ответа.
Version Обязательный. Указывает версию настраиваемого Аналитика Службы хранилища.
Delete Обязательный. Применяется только к настройке ведения журнала. Указывает, следует ли вносить в журнал все запросы удаления.
Read Обязательный. Применяется только к настройке ведения журнала. Указывает, следует ли вносить в журнал все запросы чтения.
Write Обязательный. Применяется только к настройке ведения журнала. Указывает, следует ли вносить в журнал все запросы записи.
Enabled Обязательный. Указывает, включены ли метрики для службы хранилища Azure.

Если географически избыточная репликация с доступом для чтения включена, то будет вестись сбор как первичных, так и вторичных показателей. Если географически избыточная репликация с доступом для чтения не включена, то будет вестись сбор только первичных показателей.
IncludeAPIs Обязателен, только если показатели включены. Применяется только к настройкам метрики. Указывает, должна ли метрика создавать сводную статистику для вызываемых операций API.
RetentionPolicy/Enabled Обязательный. Указывает, включена ли политика хранения для службы хранилища Azure.
RetentionPolicy/Days Обязательно, если политика сохранения включена. Указывает число дней, в течение которых данные метрики или журнала должны сохраняться. Данные, которые старше указанного значения, удаляются. Минимальное значение, которое можно указать, — 1. Наибольшее значение — 365 (один год).
Cors Необязательный элемент. Поддерживается для версии 2013-08-15 и более поздних версий. Группирует все правила CORS.

При пропуске этой группы элементов существующие параметры CORS перезаписаны не будут.
CorsRule Необязательный элемент. Указывает правило CORS для хранилища таблиц. В один запрос можно включить не более пяти элементов CorsRule. Если в текст запроса нет CorsRule элементов, все правила CORS будут удалены, а CORS будет отключен для хранилища таблиц.
AllowedOrigins Обязательно, если присутствует элемент CorsRule. Предоставляет разделенный запятыми список доменов-источников, которые будут разрешены через CORS, или содержит * , чтобы разрешить все домены. Домен источника также может содержать подстановочный знак в поддомене, чтобы разрешить запросы через CORS для всех поддоменов домена. Ограничен 64 доменами источников. Каждый разрешенный источник может содержать до 256 символов.
ExposedHeaders Требуется, CorsRule если элемент присутствует. Предоставляет разделенный запятыми список заголовков ответов для предоставления клиентам CORS. Ограничен 64 определенными заголовками и 2 заголовками с префиксами. Каждый заголовок может содержать до 256 символов.
MaxAgeInSeconds Требуется, CorsRule если элемент присутствует. Указывает время в секундах, в течение которых клиент или браузер должны кэшировать предварительный ответ.
AllowedHeaders Требуется, CorsRule если элемент существует. Предоставляет разделенный запятыми список заголовков, которые могут быть частью запроса между источниками. Ограничен 64 определенными заголовками и 2 заголовками с префиксами. Каждый заголовок может содержать до 256 символов.
AllowedMethods Требуется, CorsRule если элемент существует. Предоставляет разделенный запятыми список методов HTTP, которые источник может выполнять. Для службы хранилища Azure допустимыми методами являются DELETE, GET, HEAD, MERGE, POST, , OPTIONSи PUT.

Ответ

Ответ включает код состояния HTTP, набор заголовков ответа и текст ответа.

Код состояния

Успешная операция возвращает код состояния 202 (принято).

Заголовки ответов

Ответ для этой операции включает следующие заголовки. Ответ также может включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.

Заголовок ответа Описание
x-ms-request-id Задает значение, которое однозначно идентифицирует запрос, сделанный к службе.
x-ms-version Задает версию операции, используемой для ответа. Дополнительные сведения см. в разделе Управление версиями для служб хранилища Azure.
x-ms-client-request-id Может использоваться для устранения неполадок запросов и соответствующих ответов. Значение этого заголовка равно значению заголовка x-ms-client-request-id , если он присутствует в запросе и содержит не более 1024 видимых символов ASCII. Если заголовок x-ms-client-request-id отсутствует в запросе, этот заголовок не будет присутствовать в ответе.

Текст ответа

Нет.

Авторизация

Только владелец учетной записи может вызвать эту операцию.

Комментарии

К правилам CORS в хранилище Azure применяются следующие ограничения.

  • Можно хранить не более пяти правил.

  • Максимальный размер всех параметров правил CORS в запросе, за исключением XML-тегов, не должен превышать 2 КиБ.

  • Длина разрешенного заголовка, представленного заголовка или разрешенного исходного домена не должна превышать 256 знаков.

  • Допустимые заголовки и доступные заголовки могут быть следующими:

    • Литеральные заголовки, в которых указано точное имя заголовка, например x-ms-meta-processed. В запросе можно указать не более 64 литеральных заголовков.

    • Заголовки с префиксом, в которых указан префикс заголовка, например x-ms-meta-data\. Указание префикса таким образом разрешает или предоставляет любой заголовок, начинающийся с этого префикса. В запросе можно указать не более двух заголовков с префиксом.

  • Методы (или HTTP-команды), указанные в элементе AllowedMethods , должны соответствовать методам, поддерживаемым API службы хранилища Azure. Поддерживаемые методы: DELETE, GET, HEAD, MERGE, POST, OPTIONSи PUT.

Указание правил CORS в запросе не обязательно. При вызове метода Set Table Service Properties без указания элемента Cors в тексте запроса все существующие правила CORS сохраняются.

Чтобы отключить CORS, вызовите Set Table Service Properties с пустыми параметрами правил CORS (например, </Cors>) и без внутренних правил CORS. Этот вызов удаляет все существующие правила и отключает CORS для хранилища таблиц.

Все элементы правила CORS являются обязательными при указании CorsRule элемента . Если какой-либо элемент отсутствует, запрос завершится ошибкой с кодом 400 (недопустимый запрос).

Начиная с версии 2013-08-15 элементы для параметров XML являются необязательными. Вы можете обновить определенный элемент, отправив XML-код, который содержит только обновленный элемент и не влияет на другие параметры.

Подробные сведения о правилах CORS и логике оценки см. в статье Поддержка CORS для служб хранилища Azure.

Пример запроса и ответа

В следующем примере URI выполняется запрос на изменение свойств хранилища таблиц для вымышленной учетной записи хранения с именем myaccount:

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

Запрос отправляется со следующими заголовками:

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  

Запрос отправляется со следующим текстом 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>  
  

После отправки запроса возвращается следующий ответ:

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  
  

См. также раздел