Как я могу использовать пакеты NuGet в своих функциях Azure?


используя Функции Azure, могу ли я ссылаться и использовать пакеты NuGet в моей функции C#?

3 82

3 ответа:

да! Хотя портал функций Azure в настоящее время не предоставляет механизм для добавления пакетов NuGet и управления ими, среда выполнения поддерживает ссылки на NuGet и обеспечивает их правильное использование при компиляции и выполнении функций.

чтобы определить ваши зависимости, вам нужно создать Project.json файл с необходимыми ссылками на пакет NuGet. Вот пример, который добавляет ссылку на Microsoft.ProjectOxford.Face версия 1.1.0:

{
  "frameworks": {
    "net46":{
      "dependencies": {
        "Microsoft.ProjectOxford.Face": "1.1.0"
      }
    }
   }
}

Лазурное Портал функций предоставляет удобный способ управления вашими функциональными файлами, которые мы можем использовать для создания (или загрузки) наших project.json:

  1. в функции разработки, нажмите кнопку просмотр файлов
  2. нажмите на опцию создать файл (вы также можете нажать на опцию, чтобы загрузить файл, если у вас есть ранее созданный project.json файл на вашем компьютере
  3. имя файла project.json и определить свой пакет ссылкам (вы можете использовать приведенный выше пример как шаблон).

начнется процесс восстановления пакета, и вы увидите в своем окне журнала вывод, подобный следующему:

2016-04-04T19:02:48.745 Restoring packages.
2016-04-04T19:02:48.745 Starting NuGet restore
2016-04-04T19:02:50.183 MSBuild auto-detection: using msbuild version '14.0' from 'D:\Program Files (x86)\MSBuild.0\bin'.
2016-04-04T19:02:50.261 Feeds used:
2016-04-04T19:02:50.261 C:\DWASFiles\Sites\facavalfunctest\LocalAppData\NuGet\Cache
2016-04-04T19:02:50.261 https://api.nuget.org/v3/index.json
2016-04-04T19:02:50.261 
2016-04-04T19:02:50.511 Restoring packages for D:\home\site\wwwroot\HttpTriggerCSharp1\Project.json...
2016-04-04T19:02:52.800 Installing Newtonsoft.Json 6.0.8.
2016-04-04T19:02:52.800 Installing Microsoft.ProjectOxford.Face 1.1.0.
2016-04-04T19:02:57.095 All packages are compatible with .NETFramework,Version=v4.6.
2016-04-04T19:02:57.189 
2016-04-04T19:02:57.189 
2016-04-04T19:02:57.455 Packages restored.

как и ожидалось, среда выполнения функций Azure автоматически добавит ссылки на сборки пакетов, поэтому вам не нужно явно добавлять ссылки на сборки с помощью #r "AssemblyName", вы можете просто добавить необходимое using операторы для вашей функции и использовать типы определено в пакете NuGet, на который вы ссылаетесь.

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

вот несколько примеров:

С Помощью Редактора Службы Приложений (Монако)

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

  • на портале функций Azure нажмите кнопку Function app settings
  • под Дополнительные Параметры, нажмите кнопку Go to App Service Settings
  • нажмите на кнопку
  • под разработки, нажмите кнопку Редактор Службы Приложений
  • превратить его On если он еще не включен и нажмите на Go
  • после того, как он загружается, перетащите ваш project.json файл в папку вашей функции (папка, названная в честь вашей функции.

использование конечной точки SCM (Kudu)

  • переход к: https://<function_app_name>.scm.azurewebsites.net
  • нажать на кнопку консоль отладки > CMD
  • перейти к D:\home\site\wwwroot\<function_name>
  • перетащите ваш Project.json файл в папку (на сетку файлов)

FTP

Непрерывная Интеграция

если вы включаете непрерывную интеграцию и развертываете свою функцию с помощью project.json файл когда ваша функция приложение не работает, пакет восстановление произойдет автоматически, как только ваша функция приложение инициализирует. Рекомендуется, чтобы вы не добавить project.lock.json file to source control.

предварительно скомпилированные сборки

функции также могут быть развернуты как предварительно скомпилированные сборки, и в этом случае все управление зависимостями обрабатывается в Visual студии. Этот параметр можно использовать в качестве стандартных библиотек классов в любой версии Visual Studio или с помощью Visual Studio 2017 Azure Функции Инструменты.

вы можете использовать пакеты Nuget в своих функциях Azure. Проще всего будет использовать Visual Studio 2017 15.4, где есть шаблон для функций Azure. Выполните следующие действия

1) Добавить проект функции Azure: щелкните правой кнопкой мыши на решении и выберите Добавить новый проект. Перейдите в облачный вариант там вы найдете проект "функция Azure".

Azure Function

2) теперь довольно добавить любой пакет Nuget. Разверните "зависимости" и щелкните правой кнопкой мыши на нем, чтобы выберите опцию "Управление пакетами Nuget". Появится диалоговое окно пакет Nuget, выберите любой пакет Nuget, который вы хотите установить. Смотрите скриншот ниже

3) Теперь опубликуйте свою функцию Azure, Visual Studio позаботится обо всех настройках и т. д.

этот метод будет работать только в том случае, если вы используете Visual Studio 2017 15.4 или выше, если нет, вам придется следовать другим путям, как описано другими.

обратите внимание, что новый .также поддерживается формат csproj в Visual studio 2017. Если проект создается как веб-проект ASPNET, среда выполнения функций Azure загружает все пакеты nuget, необходимые для создания проекта.