Как в Azure развернуть код functionapp без использования git?

Я создал шаблон Resource Manager, в котором есть ресурсы для запуска функционального приложения, в основном использующего для этой цели шаблон по умолчанию, и я могу вручную копировать файлы в хранилище файлов в sites\wwwroot и когда я скручиваю функцию app, она работает.

Но что меня интересует, так это то, как правильно развернуть кучу файлов для обновления фактического functionapp, но без использования git. Я могу видеть некоторые примеры использования git, но моя проблема в том, что я хочу, чтобы все мои функции в одном репо не были кучей небольших репо (я хочу монорепо).

В Azure вы просто загружаете свой код в файле.gz на S3, а затем при создании лямбды вы указываете путь к zip. А потом появляется простой API, который вы можете вызвать, чтобы получить новый zip и presto.

Что такое эквивалентный API в Azure, чтобы просто дать ему zip и распаковать файлы в нужном каталоге?

РЕДАКТИРОВАТЬ:

Мне наконец удалось это выяснить, главный ответ был, по сути, правильным, но я должен был выяснить несколько дополнительных шагов, поэтому я поставлю их здесь.

Конкретный документ по curl находится здесь. Моя тема вопроса с командой здесь.

Фактический вызов curl, который я использовал, таков:

$ curl -XPUT --data-binary @index.js.zip "https://abc:xyz@ugh.scm.azurewebsites.net/api/zip/site/wwwroot/hello"

Примечания к этому:

  • Вы должны использовать --data-binary, -d приводит к плохой полезной нагрузке
  • Для создания zip в bash я использовал: $ zip index.js.zip index.js
  • abc:xyz это имя пользователя и пароль для развертывания
  • Правильный путь для отправки site/wwwroot/hello где hello это имя функции.

Вы можете установить имя пользователя и пароль в пользовательском интерфейсе портала Azure ( здесь описано), но вы также можете установить его с помощью azure-cli вот так:

$ az login
$ az webapp deployment user set --user-name abc --password xyz

И это была хитрость: после настройки учетных данных для развертывания вы можете использовать их в базовой аутентификации для вызова API Kudu.

1 ответ

Решение

Использование Rest API для развертывания Function App также разрешено в Azure. Мы могли бы использовать следующий API Rest для этого. Мы могли бы получить более подробную информацию от Kudu REST API. Мы могли бы получить использование ftp и пароль из файла публикации, о том, как опубликовать файл, пожалуйста, обратитесь к другой теме SO.

PUT https://{user}:{password}@{FunctionAppname}.scm.azurewebsites.net/api/zip/{path}  # example path:site/wwwroot
Другие вопросы по тегам