Задание свойств службы таблиц
Операция 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