Как добавить project.json и run.csx при развертывании функции Azure с помощью шаблона ARM

Я создаю template.json для развертывания приложения-функции с помощью шаблона ARM. Я знаю, что мы можем сделать это, чтобы создать функцию в приложении-функции:

{
                "apiVersion": "2015-08-01",
                "name": "TestFunctionCM",
                "type": "functions",
                "dependsOn": [
                    "[resourceId('Microsoft.Web/sites', variables('functionAppName'))]"
                ],
                "properties": {
                "config": {
                "bindings": [
                    {
                    "authLevel": "anonymous",
                    "name": "req",
                    "type": "httpTrigger",
                    "direction": "in"
                    },
                    {
                    "name": "res",
                    "type": "http",
                    "direction": "out"
                    }
                ]
              },
              "files": {
                "run.csx": "using System.Net;\r\n\r\n public static HttpResponseMessage Run(HttpRequestMessage req, TraceWriter log)\r\n\r\n {\r\n\r\n     return req.CreateResponse(HttpStatusCode.OK, \"Hello from MyFunction\");\r\n\r\n }"
              }
            }

Но это работает только для очень маленькой и простой функции. Есть ли способ загрузить скрипт для run.csx и project.json здесь?


person das    schedule 18.07.2018    source источник


Ответы (1)


Я думаю, что это попадает в категорию только потому, что вы можете, не означает, что вы должны :) Я бы посоветовал вам настроить отдельное развертывание для вашего кода и не использовать шаблоны ARM для развертывания исходного кода (на самом деле это не их предназначение). Встраивание вашего исходного кода в шаблон ARM не будет считаться хорошим или практичным вариантом, поскольку вы, вероятно, уже видите ограничения.

Это может быть что-то столь же формальное, как процесс сборки и выпуска VSTS, или что-то столь же простое, как настройка репозитория git (github, vsts, bitbucket и т. д.) и развертывание приложения таким образом. Развертывание через GIT популярно и просто, и вы можете найти дополнительные сведения о том, как это сделать, на странице https://docs.microsoft.com/en-us/azure/azure-functions/functions-continuous-deployment. . Даже публикация из инструмента разработчика или через FTP — лучший вариант.

Наконец, я бы предложил изучить создание предварительно скомпилированных приложений с помощью С# с помощью таких инструментов, как Visual Studio или Visual Studio Code. Файлы CSX отлично подходят для быстрых и грязных нужд или для экспериментов, но менее идеальны для производственного кода. Кроме того, многие из этих инструментов на самом деле упрощают настройку конвейера развертывания для вашего приложения.

person Josh Carlisle    schedule 18.07.2018