Как в 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