Поделиться через


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

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

Запрос

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

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

Примечание

Универсальный код ресурса (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 кибибайт (КиБ), которое записывается в журналы при настройке ведения журнала. Мы настоятельно рекомендуем использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером. Дополнительные сведения см. в статье Мониторинг хранилища очередей Azure.

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

Текст запроса для версии 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-seperated-list-of-response-headers</ExposedHeaders>  
            <AllowedHeaders> comma-seperated-list-of-request-headers </AllowedHeaders>  
        </CorsRule>  
    </Cors>  
</StorageServiceProperties>  

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

  • Logging
  • HourMetrics
  • MinuteMetrics
  • Cors

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

Элементы текста запроса описаны в следующей таблице:

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

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

При пропуске этой группы элементов существующие параметры CORS перезаписаны не будут.
элемент Необязательный элемент. Задает правило 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 применяются следующие ограничения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

x-ms-version: 2013-08-15  
x-ms-date: Wed, 23 Oct 2013 04:28:19 GMT  
Authorization: SharedKey  
myaccount:Z1lTLDwtq5o1UYQluucdsXk6/iB7YxEu0m6VofAEkUE=  
Host: myaccount.queue.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>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> 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: Wed, 23 Oct 2013 04:28:20 GMT  
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cb939a31-0cc6-49bb-9fe5-3327691f2a30  
x-ms-version: 2013-08-15  
  

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

Поддержка CORS для служб хранилища Azure
Спецификация CORS HTTP