2

C#とMicrosoft.NET.Sdk.Functionを使用してVisual Studioで開発されたAzure関数アプリケーションがあります。ビルドサーバーからAzure関数アプリケーションをビルドして展開する

Googleの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" 

次に、パッケージは、Azureブロブストレージにアップロードする必要があります(SASトークンなど) をそして、私はパッケージと展開時をダウンロードAzureの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 Resource Managerがパッケージにアクセスできることを確認してください!

0

これは興味深い解決策です!私はexplored the optionsしばらく前にはFTPとポータブルファンクションCLIを待つか、またはzip upするCLI publishを使用してください。

-1

機能アプリの設定から継続的なデプロイメントを設定できます。終わりには、ビルドサーバーで好きなツールを活用してアプリケーションを「公開」し、それらのアセットを機能アプリとしてデプロイする必要があります。

デプロイメントをセットアップするには、関数appに移動します。

  1. 「プラットフォームの機能」をクリックします。 「コード配備」というセクションが表示されます。
  2. 「展開オプション」をクリックすると、ソースの設定を求めるメッセージが表示されます。ここでは、GitHub、ローカルgit、Dropboxなどを選択できます。ローカルgitを使用していると仮定しましょう。
  3. 設定したポータルからgitエンドポイントを取得する
  4. ビルドサーバー、ローカル、またはどこから配備するかを指定してgit repoを作成します。エンドポイントを(3)からリモートとして設定します。 gitファイルの構造は、公開された関数のルートでなければなりません。
  5. パブリッシュ後にリモートをプッシュするようにビルドを設定します。 Azureは変更を検出し、関数appを自動的に更新します。

これは他のオプションと似ています。たとえば、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あなたのプロジェクトやソリューションを指定するセクションを探してください。 –

関連する問題