2

我有一個在Visual Studio中使用C#和Microsoft.NET.Sdk.Function開發的Azure函數應用程序。從構建服務器構建和部署Azure函數應用程序

我需要從我們的Jenkins構建服務器構建和部署這個應用程序。什麼是推薦的方法?的MSBuild? MSDeploy? Azure函數CLI? FTP? 我無法使用源代碼管理或VSTS部署。

一些示例腳本將不勝感激!

回答

0

我能夠通過2個步驟實現部署。首先,使用的msbuild創建zip包:

msbuild FunctionApp.sln /p:Configuration=Release /p:DeployOnBuild=true 
    /p:WebPublishMethod=Package /p:PackageAsSingleFile=true 
    /p:SkipInvalidConfigurations=true 
    /p:DesktopBuildPackageLocation="c:\output.zip" /p:DeployIisAppPath="Default Web Site" 

接着,包應該被上傳到天藍Blob存儲(SAS令牌等) 然後,我使用天青AppService服務的MSDeploy擴展下載軟件包並部署它進入您的Azure函數服務:

{ 
    "apiVersion": "2015-08-01", 
    "type": "Microsoft.Web/sites", 
    "name": "[variables('functionAppName')]", 
    "kind": "functionapp", 
    "dependsOn": [ 
     ... 
    ], 
    "properties": {...}, 
    "resources": [ 
     { 
      "name": "MSDeploy", 
      "type": "extensions", 
      "location": "[resourceGroup().location]", 
      "apiVersion": "2015-08-01", 
      "dependsOn": [ 
       "[concat('Microsoft.Web/sites/', variables('functionAppName'))]" 
      ], 
      "tags": { 
       "displayName": "webDeploy" 
      }, 
      "properties": { 
       "packageUri": "[concat(parameters('_artifactsLocation'), '/', parameters('webDeployPackageFolder'), '/', parameters('webDeployPackageFileName'), parameters('_artifactsLocationSasToken'))]", 
       "dbType": "None", 
       "connectionString": "", 
       "setParameters": { 
        "IIS Web Application Name": "[variables('functionAppName')]" 
       } 
      } 
     } 
    ] 
}, 

確保Azure資源管理器能夠訪問包!

0

這是一個有趣的解決方案! I explored the options一會兒回來,現在只是FTP,並等待可移植函數CLI或使用CLI發佈拉鍊。

-1

您可以從功能應用程序的配置中設置連續部署。在一天結束時,您希望利用構建服務器上的任何工具「發佈」您的應用程序,然後將這些資產部署爲功能應用程序。

要設置部署,請導航到您的功能應用程序。

  1. 點擊「平臺功能」。您將看到一個名爲「代碼部署」的部分。
  2. 點擊「部署選項」,系統會提示您設置源代碼。在這裏,您可以選擇GitHub,本地git,Dropbox等。假設您使用的是本地git。
  3. 一旦你配置好門戶就從門戶網站獲取git端點
  4. 在你的構建服務器上創建一個git倉庫,你可以在你的本地或你想從中進行部署。將(3)中的端點設置爲遠程端點。 git文件結構應該是你發佈的函數的根。
  5. 設置您的版本以在發佈後推送遠程。 Azure會檢測更改並自動更新功能應用程序。

這與其他選項類似 - 例如,如果您選擇DropBox,它將監視位置並在文件更改/刷新後更新。

有在這裏這個能力爲文章全文:

https://jlik.me/7b

+0

感謝傑里米響應。我使用GIT方法的第一個問題是我的函數不在JavaScript中,即使在csx中也是如此。我的函數項目是基於Microsoft.NET.Sdk.Functions的.net應用程序。所以,我克隆的git包含每個函數的bin文件夾和function.json。因此,構建服務器可能必須在提交/推送之前先構建項目。什麼是命令行?或者,如果我只提交我的c#代碼,Azure應用服務將構建我的項目? –

+0

是的,您可以通過添加.deployment文件來指定您的部署詳細信息。如果您對此有任何疑問,請告知我們:https://github.com/projectkudu/kudu/wiki/Customizing-deployments查找有關指定您的項目和/或解決方案的部分。 –

相關問題