Часто задаваемые вопросы о конфигурации и управлении для Облачных служб Azure (классические)

Важно!

Облачные службы (классическая версия) объявлены устаревшими для новых клиентов. Их поддержка будет полностью прекращена 31 августа 2024 года. Для новых развертываний следует использовать Облачные службы Azure с расширенной поддержкой. Это новая модель развертывания на основе Azure Resource Manager.

В этой статье приведены часто задаваемые вопросы по конфигурации и управлению для облачных служб Microsoft Azure. Сведения о размерах приводятся в статье Размеры для облачных служб .

Если проблема Azure не устранена в этой статье, посетите форумы Azure на форумах Microsoft Q и A и Stack Overflow. Описание своей проблемы можно опубликовать на этих форумах или написать в Twitter (@AzureSupport). Также можно отправить запрос в службу поддержки Azure. Чтобы отправить такой запрос, на странице поддержки Azure щелкните Получить поддержку.

Сертификаты

Мониторинг и ведение журнала

Сетевая конфигурация

Разрешения

Масштабирование

Общие вопросы

Сертификаты

Почему у моего TLS/SSL-сертификата Облачной службы неполная цепочка сертификатов?

Корпорация Майкрософт рекомендует пользователям установить полную цепочку сертификатов (конечный сертификат, промежуточные сертификаты и корневой сертификат) вместо только конечного сертификата. При установке только конечного сертификата вы зависите от того, как Windows построит цепочку сертификатов, проходя список доверия сертификатов. Если при попытке Windows проверить сертификат происходит перебой в сети или проблема DNS, сертификат может посчитаться недействительным. Установив полную цепочку сертификатов, можно избежать этой проблемы. В публикации в блоге Как установить связанный в цепочку SSL-сертификат показано, как это сделать.

Для чего нужен сертификат шифрования Microsoft Azure Tools для расширений?

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

Эти сертификаты можно игнорировать. Если вы хотите очистить сертификаты, можно попробовать удалить их все. Azure будет выдавать ошибку при попытке удалить сертификат, который используется.

Как создать запрос на подпись сертификата (CSR) без обращения к экземпляру с использованием RDP?

Ответ см. в следующем руководстве:

Получение сертификата для использования с веб-сайтами Microsoft Azure (WAWS)

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

Истекает срок действия сертификата управления моей облачной службы. Как его обновить?

Вы можете обновить сертификаты управления с помощью следующих команд PowerShell:

Add-AzureAccount
Select-AzureSubscription -Current -SubscriptionName <your subscription name>
Get-AzurePublishSettingsFile

Get-AzurePublishSettingsFile создает новый сертификат управления в разделе Подписки>Сертификаты управления на портале Azure. Новый сертификат получает имя в формате "[имя_подписки]-[текущая_дата]-credentials".

Как автоматизировать установку основного TLS/SSL-сертификата (PFX) и промежуточного сертификата (P7B)?

Эту задачу можно автоматизировать с помощью скрипта запуска (пакетный файл, командный файл или скрипт PowerShell), зарегистрировав этот скрипт в файле определения службы. Сам скрипт запуска и сертификат для него (P7B-файл) нужно разместить в папке проекта в том же каталоге, что и скрипт запуска.

Каково назначение сертификата «Управление службами Microsoft Azure для MachineKey»?

Этот сертификат используется для шифрования ключей компьютера на веб-ролях Azure. Для получения дополнительных сведений ознакомьтесь с этими рекомендациями.

Дополнительные сведения см. в следующих статьях:

Мониторинг и ведение журналов

Какие будущие возможности облачной службы на портале Azure помогут наблюдать за приложениями и управлять ими?

В ближайшее время появится возможность создавать новый сертификат для удаленного рабочего стола (RDP). Также можно выполнить этот скрипт:

$cert = New-SelfSignedCertificate -DnsName yourdomain.cloudapp.net -CertStoreLocation "cert:\LocalMachine\My" -KeyLength 20 48 -KeySpec "KeyExchange"
$password = ConvertTo-SecureString -String "your-password" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath ".\my-cert-file.pfx" -Password $password

В ближайшее время появится возможность выбора BLOB-объектов или локального расположения в качестве расположения для передачи csdef и cscfg. С помощью командлета New-AzureDeployment можно задать значение каждого расположения.

Возможность наблюдать за метриками на уровне экземпляра. Больше возможностей мониторинга см. в статье Мониторинг облачных служб.

Почему IIS останавливает запись в каталог журналов?

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

  • Включите диагностику для IIS и задайте периодическое перемещение этой диагностики в хранилище BLOB-объектов.
  • Вручную удалите файлы журнала из каталога ведения журнала.
  • Увеличьте квоту для локальных ресурсов.

Дополнительные сведения см. в следующих документах:

Как включить ведение журнала WAD для облачных служб?

Вы можете включить ведение журнала Диагностики Azure для Windows (WAD) такими способами:

  1. С помощью Visual Studio.
  2. С помощью кода .NET.
  3. С помощью PowerShell.

Чтобы получить текущие параметры WAD облачной службы, можно использовать команду PowerShell Get-AzureServiceDiagnosticsExtensions или просмотреть их на портале в колонке "Облачные службы" --> "Расширения".

Сетевая конфигурация

Как задать время ожидания простоя для подсистемы балансировки нагрузки Azure?

Время ожидания можно указать в файле определения службы (CSDEF-файле) следующим образом.

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="mgVS2015Worker" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
  <WorkerRole name="WorkerRole1" vmsize="Small">
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />
    </ConfigurationSettings>
    <Imports>
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="tcp" port="10100"   idleTimeoutInMinutes="30" />
    </Endpoints>
  </WorkerRole>

Дополнительные сведения см. в статье Новое: настраиваемое время ожидания простоя для Azure Load Balancer.

Как привязать статический IP-адрес к облачной службе?

Чтобы настроить статический IP-адрес, необходимо создать зарезервированный IP-адрес. Этот зарезервированный IP-адрес можно привязать к новой облачной службе или к существующему развертыванию. Дополнительные сведения см. в следующих документах.

Какие функции и возможности предоставляют базовые IPS/IDS и DDOS Azure?

Azure имеет IPS/IDS на физических серверах в центре обработки данных для защиты от угроз. Кроме того, клиенты могут разворачивать сторонние решения по обеспечению безопасности, такие как брандмауэры приложений, сетевые брандмауэры, антивредоносное ПО, системы обнаружения вторжений, системы предотвращения (IDS/IPS) и многое другое. Дополнительные сведения см. в разделе Защита данных и ресурсов и соответствие глобальным стандартам безопасности.

Корпорация Майкрософт осуществляет постоянный мониторинг серверов, сетей и приложений для обнаружения угроз. Комплексный подход к управлению угрозами в Azure использует системы обнаружения вторжений, предотвращения распределенных атак типа "отказ в обслуживании" (DDoS), тесты на проникновение, поведенческую аналитику, обнаружение аномалий и машинное обучение для постоянного усиления защиты и снижения рисков. Антивредоносное ПО Майкрософт для Azure защищает облачные службы и виртуальные машины Azure. Вы можете разворачивать сторонние решения по обеспечению безопасности, такие как брандмауэры приложений, сетевые брандмауэры, антивредоносное ПО, системы обнаружения вторжений, системы предотвращения (IDS/IPS) и многое другое.

Как включить HTTP/2 на виртуальной машине облачных служб?

Windows 10 и Windows Server 2016 в стандартной конфигурации поддерживают HTTP/2 как для клиента, так и для сервера. Если ваш клиент (браузер) подключается к серверу IIS через TLS и согласовывает HTTP/2 через расширения TLS, вам не нужно вносить никаких изменений на стороне сервера. Это связано с тем, что через TLS по умолчанию отсылается заголовок h2-14, описывающий использование HTTP/2. Если же ваш клиент отправляет заголовок Upgrade для обновления до HTTP/2, на стороне сервера следует внести указанные ниже изменения, чтобы обновление сработало правильно и вы смогли использовать подключение HTTP/2.

  1. Запустите файл regedit.exe.
  2. Перейдите к разделу реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters.
  3. Создайте новое значение DWORD с именем DuoEnabled.
  4. Задайте для него значение 1.
  5. Перезапустите сервер.
  6. Перейдите к веб-сайту по умолчанию и в разделе Привязки создайте новую привязку TLS с только что созданным самозаверяющим сертификатом.

Дополнительные сведения см. в разделе:

  • HTTP/2 on IIS (HTTP/2 в IIS)
  • Видео: HTTP/2 в Windows 10 для браузера, приложений и веб-сервера

Эти шаги можно автоматизировать через задачу запуска, чтобы описанные выше изменения в системном реестре применялись при каждом создании нового экземпляра PaaS. Дополнительные сведения см. в статье Как настроить и выполнить задачи запуска для облачной службы.

Когда все будет готово, проверьте наличие HTTP/2 с помощью одного из следующих методов.

  • Включите версию протокола для журналов IIS и изучите журналы IIS. HTTP/2 будет отображаться в журналах.
  • Включите средства разработчика клавишей F12 в браузере Internet Explorer или Microsoft Edge и перейдите на вкладку Network (Сеть), чтобы проверить версию протокола.

Дополнительные сведения см. в статье HTTP/2 on IIS (HTTP/2 в IIS).

Разрешения

Как реализовать доступ на основе ролей для облачных служб?

Облачные службы не поддерживают модель управления доступом на основе ролей Azure (Azure RBAC), так как они не являются службами на основе Azure Resource Manager.

См. сведения о различных ролях в Azure.

Удаленный рабочий стол

Могут ли инженеры Майкрософт без моего разрешения использовать удаленный рабочий стол для доступа к экземплярам облачной службы?

Корпорация Майкрософт придерживается строгого правила, которое не позволит нашим инженерам осуществлять удаленный доступ к облачной службе без письменного разрешения (электронного письма или другого сообщения в письменной форме) от владельца или его уполномоченного лица.

Я не могу подключиться к виртуальной машине облачной службы через удаленный рабочий стол с помощью RDP-файла. Я получаю следующую ошибку: произошла ошибка проверки подлинности (код: 0x80004005)

Эта ошибка может возникнуть, если вы используете RDP-файл с компьютера, присоединенного к идентификатору Microsoft Entra. Проблему можно устранить следующим способом.

  1. Щелкните правой кнопкой мыши скачанный RDP-файл и выберите действие Изменить.
  2. Добавьте префикс "\" перед именем пользователя. Например, укажите .\username вместо username.

Масштабирование

Не удается масштабироваться за пределами экземпляров X

В вашей подписке Azure есть ограничение на количество используемых ядер. Если использованы все доступные ядра, масштабирование не сработает. Например, если установлено ограничение в 100 ядер, это означает, что в облачной службе можно создать 100 экземпляров виртуальной машины размера A1 или 50 экземпляров виртуальной машины размера A2.

Как мне настроить автомасштабирование по метрикам памяти?

Автомасштабирование на основе метрик памяти в настоящее время не поддерживается для облачных служб.

Чтобы обойти эту проблему, используйте Application Insights. Автомасштабирование поддерживает Application Insights в качестве источника метрик и позволяет изменять число экземпляров роли по любой гостевой метрике, в том числе "Память". Чтобы реализовать такой механизм, настройте параметры для Application Insights в файле пакета для проекта облачной службы (\*.CSPKG) и включите для службы расширение диагностики Azure.

Дополнительные сведения о применении пользовательских метрик Application Insights для настройки автомасштабирования облачных служб см. в разделе Начало работы с автомасштабированием на основе пользовательской метрики в Azure.

Дополнительные сведения о том, как интегрировать систему диагностики Azure с Application Insights для облачных служб, см. в статье Send Cloud Service, Virtual Machine, or Service Fabric diagnostic data to Application Insights (Отправка в Application Insights диагностических данных облачной службы, виртуальной машины или Service Fabric).

Дополнительные сведения о том, как включить Application Insights для облачных служб, см. в статье Application Insights для облачных служб Azure.

Дополнительные сведения о том, как включить ведение журнала диагностики Azure для облачных служб, см. в разделе Включение диагностики в проектах облачных служб перед их развертыванием.

Универсальный

Как добавить на веб-сайт запрет на сканирование?

Чтобы помешать клиентам сканировать типы MIME, добавьте соответствующий параметр в файл web.config.

<configuration>
   <system.webServer>
      <httpProtocol>
         <customHeaders>
            <add name="X-Content-Type-Options" value="nosniff" />
         </customHeaders>
      </httpProtocol>
   </system.webServer>
</configuration>

Его можно также добавить как параметр в службах IIS. Используйте следующую команду из статьи Распространенные задачи запуска.

%windir%\system32\inetsrv\appcmd set config /section:httpProtocol /+customHeaders.[name='X-Content-Type-Options',value='nosniff']

Как настроить IIS для веб-роли?

Используйте сценарий запуска IIS из статьи Распространенные задачи запуска.

Что такое квота для облачной службы?

Почему на диске виртуальной машины облачной службы отображается очень мало свободного места?

Это ожидаемое поведение, и оно не должно приводить к проблемам с вашим приложением. Для диска %uproot% в виртуальных машинах PaaS Azure включено ведение журнала, что фактически вдвое увеличивает размер файлов. Однако существует несколько моментов, которые следует учитывать, чтобы это не стало проблемой.

Размер диска %approot% вычисляется как <размер файла .cspkg + максимальный размер журнала + запас свободного пространства> или 1,5 ГБ, в зависимости от того, какое значение больше. Размер вашей ВМ никак не влияет на этот расчет. (Размер виртуальной машины влияет только на размер временного диска C:

Запись на диск %approot% не поддерживается. Если вы записываете на виртуальную машину Azure, вы должны делать это во временный ресурс LocalStorage (или другой вариант, такой как хранилище BLOB-объектов, файлы Azure и т. п.). Поэтому объем свободного пространства в папке %approot% не имеет значения. Если вы не уверены, записывает ли ваше приложение данные на диск %approot%, всегда можно позволить службе поработать в течение нескольких дней, а затем сравнить размеры до и после. 

Azure ничего не будет записывать на диск %approot%. После создания VHD из файла .cspkg и подключения его к виртуальной машине Azure запись данных на этот виртуальный жесткий диск может выполнять только ваше приложение. 

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

Как автоматизировать добавление антивредоносного расширения для облачных служб?

Вы можете включить антивредоносное расширение с помощью сценария PowerShell в задаче запуска. Чтобы реализовать этот механизм, выполните действия в следующих статьях.

Дополнительные сведения о сценариях развертывания защиты от вредоносных программ и о том, как включить эту защиту на портале, вы найдете в разделе Сценарии развертывания антивредоносного ПО.

Как включить указание имени сервера для облачных служб?

Указание имени сервера в облачных службах можно включить, используя один из следующих методов.

Метод 1. Использование PowerShell

Указание имени сервера можно настроить с помощью командлета PowerShell New-WebBinding, включив его в задачу запуска для экземпляра роли облачной службы, как показано ниже:

New-WebBinding -Name $WebsiteName -Protocol "https" -Port 443 -IPAddress $IPAddress -HostHeader $HostHeader -SslFlags $sslFlags

Как описано здесь, $sslFlags может принимать одно из следующих значений.

Значение Значение
0 Указание имени сервера не используется
1 Указание имени сервера используется
2 Привязка без указания имени сервера, которая использует центральное хранилище сертификатов
3 Привязка с указанием имени сервера, которая использует центральное хранилище сертификатов

Метод 2: Использование кода

Также привязку с указанием имени сервера можно настроить, выполняя программный код при запуске роли, как описано в этой записи блога:

//<code snip> 
                var serverManager = new ServerManager(); 
                var site = serverManager.Sites[0]; 
                var binding = site.Bindings.Add(":443:www.test1.com", newCert.GetCertHash(), "My"); 
                binding.SetAttributeValue("sslFlags", 1); //enables the SNI 
                serverManager.CommitChanges(); 
    //</code snip>

При использовании любого из представленных выше методов для работы привязки с указанием имени узла нужно сначала установить на экземплярах ролей соответствующие сертификаты (*.pfx) для конкретных имен узлов. Это можно сделать с помощью задачи запуска или в программном коде.

Как мне добавить теги к облачной службе Azure?

Облачная служба представляет собой классический ресурс. Теги поддерживаются только ресурсами, созданными с использованием Azure Resource Manager. К классическим ресурсам, в том числе к облачной службе, теги применить нельзя.

Портал Azure не отображает версию пакета SDK для моей облачной службы. Как узнать ее?

Мы работаем над тем, чтобы реализовать эту возможность на портале Azure. Пока вы можете узнать версию пакета SDK с помощью этих команд PowerShell:

Get-AzureService -ServiceName "<Cloud Service name>" | Get-AzureDeployment | Where-Object -Property SdkVersion -NE -Value "" | select ServiceName,SdkVersion,OSVersion,Slot

Я хочу приостановить работу облачной службы на несколько месяцев. Как снизить расходы на обслуживание облачной службы, не теряя при этом IP-адрес?

Любая развернутая облачная служба оплачивается по объему ресурсов вычисления и хранения, которые для нее выделены. Это означает, что вам придется оплачивать хранилище виртуальной машины Azure, даже если она отключена.

Чтобы снизить затраты, не теряя выделенный для вашей службы IP-адрес, выполните следующие действия:

  1. Зарезервируйте IP-адрес, а затем удалите развертывание. Теперь вы будете оплачивать только IP-адрес. Дополнительные сведения о выставлении счетов за IP-адреса вы найдете на странице Цены на IP-адреса.
  2. Удалите развертывание. Не удаляйте домен xxx.cloudapp.net, чтобы его можно было использовать в будущем.
  3. Когда вы решите повторно развернуть облачную службу, применив для нее зарезервированный в подписке IP-адрес, воспользуйтесь инструкциями из статьи Reserved IP addresses for Cloud Services and Virtual Machines (Зарезервированные IP-адреса для облачных служб и виртуальных машин).