Руководство. Интеграция Функций Azure с виртуальной сетью Azure с помощью частных конечных точек
В этом руководстве показано, как использовать Функции Azure для подключения к ресурсам в виртуальной сети Azure с помощью частных конечных точек. Вы создаете приложение-функцию с помощью новой учетной записи хранения, заблокированной виртуальной сетью через портал Azure. Виртуальная сеть использует триггер очереди служебной шины.
В этом руководстве вы выполните следующие действия.
- Создайте приложение-функцию в плане Elastic Premium с интеграцией виртуальной сети и частными конечными точками.
- Создание ресурсов Azure, таких как служебная шина
- Блокировка служебной шины за частной конечной точкой.
- Развертывание приложения-функции, которая использует как служебную шину, так и триггеры HTTP.
- Проверка нахождения приложения-функции в виртуальной сети.
- Очистите ресурсы.
Создание приложения-функции в плане "Премиум"
Вы создаете приложение-функцию C# в плане Elastic Premium, который поддерживает сетевые возможности, такие как интеграция виртуальной сети при создании вместе с бессерверным масштабированием. В этом руководстве используется C# и Windows. Также поддерживаются другие языки и Linux.
В меню портала Azure или на домашней странице нажмите кнопку Создать ресурс.
На странице Создать выберите Вычислительные ресурсы>Приложение-функция.
На странице Основные сведения задайте параметры приложения-функции согласно приведенной ниже таблице.
Параметр Предлагаемое значение Description Подписка Ваша подписка Подписка, в которой создано приложение-функция. Группа ресурсов myResourceGroup Имя новой группы ресурсов, в которой создается приложение-функция. Имя приложения-функции Глобально уникальное имя Имя, которое идентифицирует ваше новое приложение-функцию. Допустимые символы: a-z
(без учета регистра),0-9
и-
.Опубликовать Код Параметр для публикации файлов кода или контейнера Docker. Стек среды выполнения .NET В этом руководстве используется .NET. Версия 6 (LTS) В этом руководстве используется .NET 6.0, выполняющаяся в том же процессе, что и узел функций. Регион Предпочтительный регион Выберите ближайший регион или регион рядом с другими службами, к которому получают доступ ваши функции. Операционная система Windows В этом руководстве используется Windows, но также работает для Linux. План Функции уровня "Премиум" План размещения, который определяет выделение ресурсов в приложении-функции. По умолчанию при выборе плана Премиум создается новый план службы приложений. По умолчанию для параметра Номер SKU и размер задано значение EP1, где EP означает Elastic Premium (гибкий план "Премиум"). Дополнительные сведения см. в номеров SKU уровня "Премиум".
При запуске функций JavaScript для плана "Премиум" выберите экземпляр с меньшим количеством виртуальных ЦП. Дополнительные сведения см. в разделе Выбор планов "Премиум" для конфигурации с одним виртуальным ЦП.Нажмите кнопку "Далее" — хранилище. На странице хранилища введите следующие параметры.
Параметр Предлагаемое значение Description Учетная запись хранения Глобально уникальное имя Создайте учетную запись хранения для использования приложением-функцией. Имя учетной записи хранения должно содержать от 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, будет иметь повышенную сложность. Нажмите кнопку "Далее": мониторинг. Введите следующие параметры на странице Мониторинг.
Параметр Предлагаемое значение Description Application Insights По умолчанию. Создает ресурс Application Insights с таким же именем приложения в ближайшем поддерживаемом регионе. Разверните этот параметр, если вам нужно изменить Новое имя ресурса или сохранить данные в другое Расположение в Географическом регионе Azure. Выберите Просмотр и создание , чтобы просмотреть выбранные параметры конфигурации приложения.
На странице Просмотр и создание проверьте выбранные параметры. Затем выберите "Создать ", чтобы создать и развернуть приложение-функцию.
Нажмите на значок Уведомления в правом верхнем углу портала. Вы должны увидеть сообщение Развертывание выполнено.
Выберите Перейти к ресурсу для просмотра нового приложения-функции. Можно также установить флажок Закрепить на панели мониторинга. Это упростит возвращение к этому ресурсу приложения-функции из панели мониторинга.
Поздравляем! Вы успешно создали приложение-функцию уровня "Премиум".
Примечание.
Некоторые развертывания могут иногда не создавать частные конечные точки в учетной записи хранения с ошибкой StorageAccountOperationInProgress. Эта ошибка возникает, даже если само приложение-функция успешно создается. При возникновении такой ошибки удалите приложение-функцию и повторите операцию. Вместо этого можно создать частные конечные точки в учетной записи хранения вручную.
Создание служебной шины
Затем вы создадите служебная шина экземпляр, который используется для проверки функциональности сетевых возможностей приложения-функции в этом руководстве.
В меню портала Azure или на домашней странице нажмите кнопку Создать ресурс.
На странице Создать найдите элемент Служебная шина. Затем выберите Создать.
На вкладке Основные сведения настройте параметры служебной шины Microsoft Azure согласно приведенной ниже таблице. Для всех остальных параметров оставьте значения по умолчанию.
Параметр Предлагаемое значение Description Подписка Ваша подписка Подписка, в которой создаются ресурсы. Группа ресурсов myResourceGroup Группа ресурсов, которую вы создали с помощью приложения функции. Имя пространства имен myServiceBus Имя экземпляра служебная шина, для которого включена частная конечная точка. Местонахождение myFunctionRegion Регион, в котором вы создали приложение функцию. Ценовая категория Premium Выберите этот уровень, чтобы использовать частные конечные точки со служебной шиной Azure. Выберите Review + create (Просмотреть и создать). После завершения проверки нажмите кнопку Создать.
Блокировка служебной шины
Создайте частную конечную точку для блокировки служебной шины Microsoft Azure:
В новой служебной шине Microsoft Azure в меню слева выберите Сеть.
На вкладке Частные конечные точки выберите пункт Частная конечная точка.
На вкладке Основные сведения используйте параметры частной конечной точки, приведенные в следующей таблице.
Параметр Предлагаемое значение Description Подписка Ваша подписка Подписка, в которой создаются ресурсы. Группа ресурсов myResourceGroup Группа ресурсов, которую вы создали с помощью приложения функции. Имя sb-endpoint Имя частной конечной точки служебной шины. Регион myFunctionRegion Регион, в котором вы создали свою учетную запись хранения. На вкладке Ресурс используйте параметры частной конечной точки, приведенные в следующей таблице.
Параметр Предлагаемое значение 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. Скопируйте и сохраните Основную строку подключения. Это строка подключения при настройке параметров приложения.
Настройка параметров приложения-функции
В приложении-функции в меню слева выберите пункт Конфигурация.
Чтобы использовать приложение-функцию с виртуальными сетями и служебной шиной, обновите параметры приложения, показанные в следующей таблице. Чтобы добавить или изменить параметр, выберите пункт + Новый параметр приложения или нажмите на значок правки в крайнем правом столбце таблицы параметров приложения. По завершении нажмите кнопку Сохранить.
Параметр Предлагаемое значение Description SERVICEBUS_CONNECTION myServiceBusConnectionString Создайте этот параметр приложения для строки подключения служебной шины. Эта строка подключения к хранилищу взята из раздела Получение строки подключения служебной шины. WEBSITE_CONTENTOVERVNET 1 Создайте этот параметр приложения. Значение 1 обеспечит масштабирование вашему приложению-функции, если ваша учетная запись хранения ограничена виртуальной сетью. Так как вы используете план размещения Elastic Premium, в представлении конфигурации выберите вкладку "Параметры среды выполнения функции". Установите для параметра "Мониторинг масштабирования среды выполнения" значение "Вкл.". Затем выберите Сохранить. Масштабирование на основе среды выполнения позволяет подключать функции триггеров, отличных от HTTP, к службам, в вашей виртуальной сети.
Примечание.
Масштабирование среды выполнения не требуется для приложений-функций, размещенных в выделенном плане Служба приложений.
Развертывание триггера служебной шины и триггера HTTP
Примечание.
Включение частных конечных точек в приложении-функции также делает сайт диспетчера управления версиями (SCM) общедоступным. Ниже приведены инструкции по развертыванию с помощью Центра развертывания в приложении-функции. Кроме того, используйте zip-развертывание или локальные агенты, развернутые в подсети виртуальной сети.
В GitHub перейдите к следующему примеру репозитория. Он содержит приложение-функцию и две функции, триггер HTTP и триггер очереди служебной шины.
В верхней части страницы выберите Вилку, чтобы создать вилку этого репозитория в собственной учетной записи GitHub или в организации.
В приложении-функции в меню слева выберите пункт Центр развертывания. Затем выберите Параметры.
На вкладке Параметры используйте параметры развертывания, приведенные в следующей таблице.
Параметр Предлагаемое значение Description Источник GitHub На этапе 2 вы должны были создать репозиторий GitHub для примера кода. Предприятие myOrganization Организация, в которой зарегистрирован ваш репозиторий. Обычно это ваша учетная запись. Репозиторий руководство по функциям в виртуальной сети Репозиторий, отделенный от https://github.com/Azure-Samples/functions-vnet-tutorial. Ветвь main Главная ветвь созданного вами репозитория. Стек среды выполнения .NET Код в примере написан на C#. Версия .NET Core 3.1. Версия среды выполнения. Выберите Сохранить.
В первый раз развертывание может занять несколько минут. После успешного развертывания приложения на вкладке Журналы отобразится сообщение о состоянии Успешно (активно). Если потребуется, обновите страницу.
Поздравляем! Вы успешно развернули пример приложения функции.
Тестирование заблокированного приложения-функции
В приложении-функции в меню слева выберите пункт Функции.
Выберите 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 и частных конечных точках: