Приложение "Функции Azure" доступно только для чтения после публикации.

У меня есть несколько приложений с функциями Azure (c #, javascript и python), и через некоторое время все они были случайным образом установлены в режим только для чтения. Странно то, что до этого было обновлено только одно из этих трех функциональных приложений. Я знаю, что это не обязательно проблема, но я хочу иметь возможность вносить изменения на портале.

Я не могу открыть редактор службы приложений
 Редактор службы приложений не может быть нажат
Я не могу настроить приложение для чтения / записи в настройках приложения-функции -> Изменить приложение-функцию режим введите здесь описание изображения Я также пробовал использовать "func azure functionapp publish myAzFuncAppName --nozip", но с тем же результатом


person johnykes    schedule 19.01.2020    source источник


Ответы (4)


Конечно. Обратите внимание, что если функция «развернута» в Azure, будет развернут скомпилированный файл.

Например, если вы развертываете приложение-функцию C #, то будет развернут файл dll. Вот почему он доступен только для чтения.

Изменения в коде следует вносить до компиляции их в соответствующие файлы, которые нельзя редактировать, что требует особого внимания.

Но для модификации декларативной части и конфигурационной части функции это возможно, конкретные шаги заключаются в следующем:

Декларативная часть:

введите здесь описание изображения

Затем нажмите Консоль отладки> cmd:

введите здесь описание изображения

Зайдите на сайт \ wwwroot [yourfunctionname], и ​​там будет function.json.

введите здесь описание изображения

Щелкните «ручку» для редактирования и не забудьте сохранить.

Конфигурационная часть:

введите здесь описание изображения

person Bowman Zhu    schedule 20.01.2020
comment
Итак, теперь есть способ развертывания в приложениях функций Azure без отключения этой привилегии (функций редактирования на платформе)? - person johnykes; 20.01.2020
comment
@johnykes Привет, johnykes. Дело не в привилегии или отключении. Например, если вы создаете функцию с помощью vs 2019 и публикуете ее в Azure. Его шаги состоят в том, чтобы сначала скомпилировать и сгенерировать соответствующие файлы. Затем эти файлы упаковываются в zip-архив и развертываются в Azure. Поэтому конкретный код функции, полученный этим методом, редактировать нельзя. Другими словами, пока ваш локально скомпилированный код развернут в Azure, его часть кода редактировать нельзя. Редактировать можно только раздел объявлений (funtion.json) и раздел конфигурации (local.settings.json, Application Settings). - person Bowman Zhu; 20.01.2020
comment
@johnykes Таким образом, код функции, полученный вашим методом, не может быть отредактирован сам по себе, и нет способа установить права редактирования. Если вы знаете Java, вы можете понять, что исходный файл .java компилируется в файл .class. Или для консольной программы C ++ это файл .exe. Конечно, вы не можете редактировать эти скомпилированные файлы. Для программы, которую я здесь развернул, это файл dll, а не файл .cs. Обычно вы можете редактировать файл сценария .crx в Azure. Дайте мне знать, если у вас возникнут дополнительные сомнения. - person Bowman Zhu; 20.01.2020
comment
Хорошо, спасибо за разъяснения! По-прежнему грустно из-за невозможности вносить изменения непосредственно с портала после развертывания, но, надеюсь, Azure изменит это в будущем :) - person johnykes; 20.01.2020
comment
да же. Я не нашел способа обновить файл требований для моих функций python azure. Сказано только для чтения. - person GuillaumeLabs; 17.08.2020
comment
Как можно рассчитывать на эффективную работу с функциями Azure с таким ограничением? Нужно ли мне создавать новую функцию для каждого редактирования? - person garthoid; 18.01.2021

Вы можете изменить параметры на портале Azure или отредактировав параметры приложения. FUNCTION_APP_EDIT_MODE позволяет значениям только для чтения и чтения , а

person Sajeetharan    schedule 19.01.2020
comment
Посмотрите мой второй снимок экрана в разделе Я не могу настроить приложение для чтения / записи в настройках приложения-функции. Я не могу изменить эту настройку - person johnykes; 19.01.2020
comment
Вы можете отключить это, удалив настройку приложения WEBSITE_RUN_FROM_PACKAGE на портале. - person Sajeetharan; 19.01.2020
comment
Я пробовал сейчас, но после повторного развертывания моего приложения параметр повторно заполняется ссылкой на zip-пакет - person johnykes; 19.01.2020

Просто удалил приложение-функцию Azure, создал новое, перенес код в новый и развернул -> все еще доступен только для чтения, но теперь я смог открыть «Редактор службы приложений» и удалить «сгенерировано ...» из функции. .json, а затем установите «Чтение / запись» в меню «Настройки приложения-функции» -> «Режим редактирования приложения-функции».

Тем не менее ... Я не могу видеть / редактировать код функции, только для function.json, и если я повторно разверну с использованием расширений Azure Visual Code или powershell с атрибутом --nozip, снова появится «сгенерированный bla bla» :(

person johnykes    schedule 19.01.2020
comment
Конечно, вы не можете видеть / редактировать код функции. Это потому, что они были скомпилированы в разные файлы, которые нельзя редактировать. Если вы хотите увидеть код своей функции, вам необходимо создать функцию непосредственно на портале. - person Bowman Zhu; 20.01.2020
comment
Обратите внимание, что вы можете изменить декларативную и конфигурационную часть функции только после развертывания в Azure. Что касается самого кода, это не может быть изменено. Взгляните на мой ответ, я подробно рассказал об этом. - person Bowman Zhu; 20.01.2020

Когда приложение запускается из пакета, файлы загружаются из этого пакета. Следовательно, эти файлы нельзя редактировать.

Вам необходимо установить WEBSITE_RUN_FROM_PACKAGE : 0 в настройках приложения и повторно развернуть приложение, чтобы сделать приложение-функцию доступным для редактирования.

см. https://social.msdn.microsoft.com/Forums/en-US/972d843c-8bdc-4cfc-9c6d-263df196d37c/azure-function-app-readonly-mode?forum=AzureFunctions

ОБНОВЛЕНО:

Вы можете развернуть functionapp через командную строку из кода Visual Studio. Попробуйте команду ниже.

func azure functionapp опубликовать --nozip

Флаг nozip отключит режим Run-From-Package.

вы можете получить доступ к другой информации об этой команде с помощью func azure functionapp publish --help

person Venky    schedule 19.01.2020
comment
Я попробовал сейчас, но после повторного развертывания моего приложения параметр повторно заполняется ссылкой на zip-пакет. - person johnykes; 19.01.2020
comment
Убедитесь, что вы сняли флажок развертывать из пакета при развертывании через azure devops или visual studio, независимо от того, выполняете ли вы развертывание. - person Venky; 19.01.2020
comment
Я использую Visual Code. Не уверен, что смогу это проверить. - person johnykes; 19.01.2020