Я пытаюсь загрузить базовую функцию Azure Dotnet в службу приложений, размещенную в Windows, и изо всех сил пытаюсь доказать, что она работает, или убедиться, что настройки верны.
У меня также есть стремление к тому, чтобы развертывание было полностью автоматизировано без необходимости проходить через портал Azure, настраивать параметры и т. Д.
Процесс сборки: сейчас он выглядит так ...
- Функция C # компилируется, и все модульные тесты проходят локально и в агентах сборки Azure DevOps.
- Сборка завершается, и создается zip-файл.
- Я оборачиваю zip-файл в пакет Nuget с версией
- Пакет Nuget размещен в репозитории Azure DevOps Artifacts
Так что на данный момент все выглядит хорошо.
Процесс выпуска
- Я восстанавливаю и распаковываю пакет nuget в агенте сборки Azure DevOps.
- Я подтверждаю, что zip-файл существует с помощью задачи Powershell - все в порядке.
- I then use the Azure DevOps Release pipeline task; "Azure Functions"
- I think I've configured this task correctly
- Package or Folder: "The path I validated in step 2 above"
- Метод развертывания: Zip Deploy (я чередовал это и развертывание пакета в разных выпусках)
Настройки приложения (см. Снимок экрана ниже)
- пары имя-значение, например -Name "значение" -Name2 "value2" и т. д.
- Я также включил -WEBSITE_RUN_FROM_PACKAGE «1» в список настроек приложения (я пробовал выпуски с этой настройкой и без нее)
Результаты
Релиз проходит, в журналах говорится, что он загрузил пакет и настройки приложения.
Однако когда я захожу на портал Azure:
- Я не вижу настроек своего приложения, которые, как я думал, загрузил в выпуске.
- Он сохраняет фиктивные настройки приложения, которые я добавил напрямую через портал Azure.
Вопросы
- Should I create an empty Azure Function within the AppServive using the Azure Portal before I start the Release with this task?
- The very first time I ran the release it failed because it said it couldn't find the slot I'd specified. I was under the impression that the Azure Function pipeline task would create everything but it appears that it expects there to be an empty function with slots predefined and maybe app settings predefined. Any thoughts please?
- Должен ли я создавать настройки приложения на портале перед выпуском? Другими словами, задача конвейера разрешает только обновления существующих настроек приложения, созданного порталом.
- Есть ли лучшая задача конвейера для использования - которая может создать новую функцию Azure, если она еще не существует?
Как это часто бывает со справочной документацией, информация, которую я видел, следует счастливому пути, а иногда и слишком много с большим количеством «если», «но» и, возможно, советов.
Любое руководство будет действительно признательно, поскольку я чувствую, что хожу здесь по кругу, и это должно быть просто.
Спасибо.