使用共享程序集部署Azure功能

时间:2017-02-14 22:35:34

标签: azure azure-functions

我正在构建一个Azure功能,我使用一种预编译方法。在函数本身中我们只有一个调用" Process.Run()"启动预编译的私有DLL。这些dll保存在Web应用程序根目录的Shared文件夹中。

就我们所见,一切都在完美运行,但现在我们希望通过ARM模板或PowerShell脚本(ZIP)进行部署。我们还使用Visual Studio预览功能模板。

我们要部署的表单是

-- Host
---Shared (Deploy DLL's in this folder)
---HttpTriggerFunctionCSharep1
----(Deploy the needed files to this directory)

1 个答案:

答案 0 :(得分:0)

有几种方法可以部署Azure功能。 Here是关于它的一篇很好的博客文章,我将在下面为您总结并添加第四点。

  1. GIT整合
  2. KUDU Rest API
  3. MSdeploy.exe / WAWSDeploy.exe
  4. ARM模板与MSDeploy结合使用。
  5. 我首选的方法是#4。您需要为此部署执行几个步骤。

    1. 创建一个包含Azure功能应用程序代码的ZIP。 ZIP中的内容需要correct folder structure
    2. 将此ZIP上载到Azure存储blob容器。
    3. 在您的ARM模板中部署一个空的功能应用程序(This one可以作为您的起点。)
    4. 将MSDeploy ARM资源添加到Azure功能应用程序以将ZIP部署到功能应用程序。这是MSDeploy资源的示例:
    5. {
          "name": "MSDeploy",
          "type": "extensions",
          "location": "[resourceGroup().location]",
          "apiVersion": "2015-08-01",
          "dependsOn": [
              "[concat('Microsoft.Web/sites/', variables('functionAppName'))]"
          ],
          "properties": {
              "packageUri": "[concat('https://',parameters('storageAccount'), '.blob.core.windows.net/', parameters('storageContainer'), '/', parameters('zipFile'))]",
              "dbType": "None",
              "connectionString": ""
          }
      }
      

      我还发现了这个示例实现,它也基于我上面描述的原则:https://github.com/ianalderman/AZF_Samples/tree/master/DeploymentExample