Руководство. Интеграция Функций Azure с виртуальной сетью Azure с помощью частных конечных точек
Статья
В этом руководстве показано, как использовать Функции Azure для подключения к ресурсам в виртуальной сети Azure с помощью частных конечных точек. Вы создаете приложение-функцию с помощью новой учетной записи хранения, заблокированной виртуальной сетью через портал Azure. Виртуальная сеть использует триггер очереди служебной шины.
В этом руководстве вы выполните следующие действия.
Создайте приложение-функцию в плане Elastic Premium с интеграцией виртуальной сети и частными конечными точками.
Создание ресурсов Azure, таких как служебная шина
Блокировка служебной шины за частной конечной точкой.
Развертывание приложения-функции, которая использует как служебную шину, так и триггеры HTTP.
Проверка нахождения приложения-функции в виртуальной сети.
Очистите ресурсы.
Создание приложения-функции в плане "Премиум"
Вы создаете приложение-функцию C# в плане Elastic Premium, который поддерживает сетевые возможности, такие как интеграция виртуальной сети при создании вместе с бессерверным масштабированием. В этом руководстве используется C# и Windows. Также поддерживаются другие языки и Linux.
В меню портала Azure или на домашней странице нажмите кнопку Создать ресурс.
На странице Создать выберите Вычислительные ресурсы>Приложение-функция.
На странице Основные сведения задайте параметры приложения-функции согласно приведенной ниже таблице.
План размещения, который определяет выделение ресурсов в приложении-функции. По умолчанию при выборе плана Премиум создается новый план службы приложений. По умолчанию для параметра Номер SKU и размер задано значение EP1, где EP означает Elastic Premium (гибкий план "Премиум"). Дополнительные сведения см. в номеров SKU уровня "Премиум".
Создайте учетную запись хранения для использования приложением-функцией. Имя учетной записи хранения должно содержать от 3 до 24 символов. Оно может содержать только цифры и строчные буквы. Вы также можете использовать существующую учетную запись, которая не ограничена правилами брандмауэра и соответствует требованиям учетной записи хранения. При использовании функций с заблокированной учетной записью хранения требуется учетная запись хранения версии 2. Это версия хранилища по умолчанию, созданная при создании приложения-функции с возможностями сети с помощью колонки создания.
Выберите Далее: сеть.
На странице "Сеть" введите следующие параметры.
Примечание
Некоторые из этих параметров не отображаются, пока не будут выбраны другие параметры.
Параметр
Предлагаемое значение
Description
Включение общедоступного доступа
Выключено
Запрет доступа к общедоступной сети блокирует весь входящий трафик, за исключением того, что поступает из частных конечных точек.
Включение внедрения сети
Включено
Возможность настройки приложения с интеграцией виртуальной сети при создании появится в окне портала после включения этого параметра.
Виртуальная сеть
Создать
Выберите поле "Создать". На всплывающем экране укажите имя виртуальной сети и нажмите кнопку "ОК". Отображаются параметры ограничения входящего и исходящего доступа к приложению-функции при создании. Необходимо явно включить интеграцию виртуальной сети в части исходящего доступа окна, чтобы ограничить исходящий доступ.
Введите следующие параметры для раздела "Входящий доступ ". На этом шаге создается частная конечная точка в приложении-функции.
Совет
Чтобы продолжить взаимодействие с приложением-функцией на портале, необходимо добавить локальный компьютер в виртуальную сеть. Если вы не хотите ограничить входящий доступ, пропустите этот шаг.
Параметр
Предлагаемое значение
Description
Включение частных конечных точек
Включено
Возможность настроить приложение с интеграцией виртуальной сети при создании появится на портале после включения этого параметра.
Имя частной конечной точки
myInboundPrivateEndpointName
Имя, определяющее частную конечную точку нового приложения-функции.
Входящий подсеть
Создать
Этот параметр создает новую подсеть для входящей частной конечной точки. В отдельную подсеть можно добавить несколько частных конечных точек. Укажите имя подсети. Блок адресов подсети может оставаться в значении по умолчанию. Нажмите OK. Дополнительные сведения о размерах подсети см. в разделе "Подсети".
DNS
Частная зона DNS Azure
Это значение указывает, какой DNS-сервер использует частную конечную точку. В большинстве случаев, если вы работаете в Azure, Частная зона DNS зона Azure — это зона DNS, которую следует использовать в качестве использования вручную для пользовательских зон DNS, что повышает сложность.
Введите следующие параметры для раздела "Исходящий доступ ". Этот шаг интегрирует приложение-функцию с виртуальной сетью при создании. Он также предоставляет параметры для создания частных конечных точек в учетной записи хранения и ограничения учетной записи хранения из сетевого доступа при создании. Если приложение-функция интегрировано, все исходящий трафик по умолчанию проходит через виртуальную сеть.
Параметр
Предлагаемое значение
Description
Включение интеграции виртуальной сети
Включено
Это интегрирует приложение-функцию с виртуальной сетью при создании и перенаправлении всего исходящего трафика через виртуальную сеть.
Исходящая подсеть
создание
При этом создается новая подсеть для интеграции виртуальной сети приложения-функции. Приложение-функция может быть интегрировано только с пустой подсетью. Укажите имя подсети. Блок адресов подсети может оставаться в значении по умолчанию. Если вы хотите настроить его, ознакомьтесь с дополнительными сведениями о размерах подсети. Нажмите OK. Отображается параметр создания частных конечных точек хранилища. Чтобы использовать приложение-функцию с виртуальными сетями, его необходимо присоединить к подсети.
Введите следующие параметры для раздела частной конечной точки хранилища. На этом шаге создаются частные конечные точки для больших двоичных объектов, очередей, файлов и таблиц в учетной записи хранения при создании. Это эффективно интегрирует учетную запись хранения с виртуальной сетью.
Параметр
Предлагаемое значение
Description
Добавление частной конечной точки хранилища
Включено
Возможность настройки приложения с интеграцией виртуальной сети при создании отображается на портале после включения этого параметра.
Имя частной конечной точки
myInboundPrivateEndpointName
Имя, определяющее частную конечную точку учетной записи хранения.
Подсеть частной конечной точки
Создать
При этом создается новая подсеть для входящей частной конечной точки в учетной записи хранения. В отдельную подсеть можно добавить несколько частных конечных точек. Укажите имя подсети. Блок адресов подсети может оставаться в значении по умолчанию. Если вы хотите настроить его, ознакомьтесь с дополнительными сведениями о размерах подсети. Нажмите OK.
DNS
Частная зона DNS Azure
Это значение указывает, какой DNS-сервер использует частную конечную точку. В большинстве случаев, если вы работаете в Azure, Частная зона DNS зона Azure является зоной DNS, которую следует использовать в качестве использования вручную для пользовательских зон DNS, будет иметь повышенную сложность.
Нажмите кнопку "Далее": мониторинг. Введите следующие параметры на странице Мониторинг.
Создает ресурс Application Insights с таким же именем приложения в ближайшем поддерживаемом регионе. Разверните этот параметр, если вам нужно изменить Новое имя ресурса или сохранить данные в другое Расположение в Географическом регионе Azure.
Выберите Просмотр и создание , чтобы просмотреть выбранные параметры конфигурации приложения.
На странице Просмотр и создание проверьте выбранные параметры. Затем выберите "Создать ", чтобы создать и развернуть приложение-функцию.
Нажмите на значок Уведомления в правом верхнем углу портала. Вы должны увидеть сообщение Развертывание выполнено.
Выберите Перейти к ресурсу для просмотра нового приложения-функции. Можно также установить флажок Закрепить на панели мониторинга. Это упростит возвращение к этому ресурсу приложения-функции из панели мониторинга.
Поздравляем! Вы успешно создали приложение-функцию уровня "Премиум".
Примечание
Некоторые развертывания могут иногда не создавать частные конечные точки в учетной записи хранения с ошибкой StorageAccountOperationInProgress. Эта ошибка возникает, даже если само приложение-функция успешно создается. При возникновении такой ошибки удалите приложение-функцию и повторите операцию. Вместо этого можно создать частные конечные точки в учетной записи хранения вручную.
Создание служебной шины
Затем вы создадите служебная шина экземпляр, который используется для проверки функциональности сетевых возможностей приложения-функции в этом руководстве.
В меню портала Azure или на домашней странице нажмите кнопку Создать ресурс.
На странице Создать найдите элемент Служебная шина. Затем выберите Создать.
На вкладке Основные сведения настройте параметры служебной шины Microsoft Azure согласно приведенной ниже таблице. Для всех остальных параметров оставьте значения по умолчанию.
Регион, в котором вы создали свою учетную запись хранения.
На вкладке Ресурс используйте параметры частной конечной точки, приведенные в следующей таблице.
Параметр
Предлагаемое значение
Description
Подписка
Ваша подписка
Подписка, в рамках которой создан ресурс.
Тип ресурса
Microsoft.ServiceBus/namespaces
Тип ресурса для служебной шины Microsoft Azure.
Ресурс
myServiceBus
Служебная шина Microsoft Azure, созданная ранее в этом руководстве.
Целевой подресурс
пространство имен
Частная конечная точка, используемая для пространства имен из служебная шина.
На вкладке виртуальная сеть для параметра подсети выберите значение по умолчанию.
Выберите Review + create (Просмотреть и создать). После завершения проверки нажмите кнопку Создать.
После создания частной конечной точки вернитесь в раздел "Сеть" в пространстве имен служебная шина и проверьте вкладку "Общедоступный доступ".
Убедитесь в том, что флажок Выбранные сети установлен.
Выберите + Добавить существующую виртуальную сеть, чтобы добавить недавно созданную виртуальную сеть.
На вкладке Добавление сетей используйте параметры сети из следующей таблицы:
Параметр
Предлагаемое значение
Description
Подписка
Ваша подписка
Подписка, в рамках которой создан ресурс.
Виртуальные сети
myVirtualNet
Имя виртуальной сети, к которой подключается приложение-функция.
Подсети
functions
Имя подсети, к которой подключается приложение-функция.
Выберите параметр Добавить IP-адрес клиента, чтобы предоставить текущему IP-адресу клиента доступ к пространству имен.
Примечание
Далее в этом руководстве будет показано, как разрешить порталу Microsoft Azure публиковать сообщения в очереди с помощью IP-адреса клиента.
Выберите Включить, чтобы включить конечную точку службы.
Выберите Добавить, чтобы добавить выбранную виртуальную сеть и подсеть в правила брандмауэра для служебной шины Microsoft Azure.
Щелкните Сохранить, чтобы сохранить обновленные правила брандмауэра.
Теперь ресурсы в виртуальной сети могут взаимодействовать со служебной шиной Microsoft Azure с помощью частной конечной точки.
Создать очередь
Создайте очередь, в которой триггер Функции Azure служебная шина получает события:
В служебной шине в меню слева выберите Очереди.
Выберите Очередь. В рамках этого руководства в качестве имени новой очереди укажите очередь имен.
Нажмите кнопку создания.
Важно!
В настоящее время в этом руководстве показано, как подключиться к служебная шина с помощью строка подключения, который требует обработки секрета общего ресурса. Для повышения безопасности вместо этого следует использовать управляемые удостоверения при подключении к служебная шина из приложения. Дополнительные сведения см. в статье справочника по привязкам на основе удостоверений в служебная шина.
Получение строки подключения служебной шины
В служебной шине в меню слева выберите Политики общего доступа.
Выберите RootManageSharedAccessKey. Скопируйте и сохраните Основную строку подключения. Это строка подключения при настройке параметров приложения.
Настройка параметров приложения-функции
В приложении-функции в меню слева выберите пункт Конфигурация.
Чтобы использовать приложение-функцию с виртуальными сетями и служебной шиной, обновите параметры приложения, показанные в следующей таблице. Чтобы добавить или изменить параметр, выберите пункт + Новый параметр приложения или нажмите на значок правки в крайнем правом столбце таблицы параметров приложения. По завершении нажмите кнопку Сохранить.
Создайте этот параметр приложения. Значение 1 обеспечит масштабирование вашему приложению-функции, если ваша учетная запись хранения ограничена виртуальной сетью.
Так как вы используете план размещения Elastic Premium, в представлении конфигурации выберите вкладку "Параметры среды выполнения функции". Установите для параметра "Мониторинг масштабирования среды выполнения" значение "Вкл.". Затем выберите Сохранить. Масштабирование на основе среды выполнения позволяет подключать функции триггеров, отличных от HTTP, к службам, в вашей виртуальной сети.
Примечание
Масштабирование среды выполнения не требуется для приложений-функций, размещенных в выделенном плане Служба приложений.
Развертывание триггера служебной шины и триггера HTTP
Примечание
Включение частных конечных точек в приложении-функции также делает сайт диспетчера управления версиями (SCM) общедоступным. Ниже приведены инструкции по развертыванию с помощью Центра развертывания в приложении-функции. Кроме того, используйте zip-развертывание или локальные агенты, развернутые в подсети виртуальной сети.
В GitHub перейдите к следующему примеру репозитория. Он содержит приложение-функцию и две функции, триггер HTTP и триггер очереди служебной шины.
В первый раз развертывание может занять несколько минут. После успешного развертывания приложения на вкладке Журналы отобразится сообщение о состоянии Успешно (активно). Если потребуется, обновите страницу.
Поздравляем! Вы успешно развернули пример приложения функции.
Тестирование заблокированного приложения-функции
В приложении-функции в меню слева выберите пункт Функции.
Выберите ServiceBusQueueTrigger.
В меню слева выберите Монитор.
Вы видите, что вы не можете отслеживать свое приложение. Ваш браузер не имеет доступа к виртуальной сети и не может напрямую обращаться к ресурсам в виртуальной сети.
Существует и другой способ мониторинга функции с помощью Application Insights:
В приложении функции в меню слева выберите пункт Application Insights. Затем выберите Просмотр данных Application Insights.
В меню слева выберите Динамические метрики.
В служебной шине на новой вкладке в меню слева выберите Очереди.
Выберите свою очередь.
В меню слева выберите Обозреватель служебной шины. В разделе Отправить (для параметра Тип содержимого) выберите значение Текст/обычный. Введите сообщение.
Нажмите кнопку Отправить, чтобы отправить сообщение.
На вкладке Динамические метрики вы увидите, что триггер очереди служебной шины запущен. Если нет, отправьте сообщение из Обозревателя служебной шины еще раз.
Поздравляем! Вы протестировали настройки своего приложения-функции с частными конечными точками.
Общие сведения о частных зонах DNS
Вы использовали частную конечную точку для подключения к ресурсам Azure. Вы подключаетесь к частному IP-адресу, а не к общедоступной конечной точке. Существующие службы Azure настроены на использование существующего DNS для подключения к общедоступной конечной точке. Необходимо переопределить конфигурацию DNS так, чтобы подключение выполнялось к частной конечной точке.
Для каждого ресурса Azure, настроенного с использованием частной конечной точки, создается частная зона DNS. Для каждого частного IP-адреса, связанного с использованием частной конечной точкой, создается запись DNS.
В этом учебнике были созданы следующие зоны DNS:
privatelink.file.core.windows.net
privatelink.blob.core.windows.net
privatelink.servicebus.windows.net
privatelink.azurewebsites.net
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.
В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.
На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.
Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.
Следующие шаги
В этом руководстве вы создали приложение-функцию уровня «Премиум», учетную запись хранения и служебную шину. Вы защитили все эти ресурсы за частными конечными точками.
Воспользуйтесь следующими ссылками, чтобы получить дополнительные сведения о сетевых параметрах функций Azure и частных конечных точках:
Узнайте, как безопасно подключить сервер SQL Azure с помощью частной конечной точки Azure через портал Azure, обеспечивая частное и безопасное взаимодействие с SQL Server.
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.
Узнайте, как использовать безопасную учетную запись хранения в виртуальной сети в качестве учетной записи хранения по умолчанию для приложения-функции в Функции Azure.