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

Внимание

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

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

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

Сертификаты

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

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

Разрешения

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

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

Сертификаты

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

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

Какова цель сертификата шифрования средств Microsoft Azure для расширений?

Эти сертификаты автоматически создаются каждый раз при добавлении расширения в облачную службу. Чаще всего это расширение 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 для облачных служб?

Вы можете включить ведение журнала Microsoft Диагностика Azure (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-адрес можно привязать к новой облачной службе или к существующему развертыванию. Дополнительные сведения см. в следующих документах.

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

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, вам не нужно вносить изменения на стороне сервера. Вам не нужно вносить изменения, так как заголовок h2-14, указывающий использование HTTP/2, по умолчанию отправляется по протоколу TLS. Если с другой стороны, клиент отправляет заголовок обновления для обновления до 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 и перейдите на вкладку "Сеть". Здесь можно проверить протокол.

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

Разрешения

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

Облачные службы не поддерживает модель управления доступом на основе ролей Azure, так как она не является службой на основе 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

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

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

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

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

Метод 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) для определенных имен узлов необходимо сначала установить на экземплярах ролей с помощью задачи запуска или кода, чтобы привязка SNI была эффективной.

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