2017-10-06 4 views
2

リソーステンプレートを作成しました。このテンプレートは基本的にこの目的のためにデフォルトのテンプレートを使用して関数アプリケーションを実行します。私は手動でファイルストレージにファイルをコピーすることができます。sites\wwwrootとfunctionappをカールすると動作します。Azureでは、gitを使用せずにfunctionappコードをデプロイするにはどうすればよいですか?

しかし、実際のfunctionappを更新するためにたくさんのファイルを配置する正しい方法はありますが、gitを使用するのは適切ではありません。私はgitの使い方の例を見ることができますが、私の問題はすべての機能を単一のリポジトリに収めたいということです。小さなリポジトリ(モノレポがほしい)の束ではありません。

Azureでは、.gzファイルのコードをS3にアップロードするだけで、ラムダを作成するときにzipへのパスを与えることができます。その後、新しいzipをプッシュアップするために呼び出すことができるシンプルなAPIがあります。

azureで同等のAPIを使用していますが、これをzipにして、適切なディレクトリにファイルを展開しますか?

編集:私は最終的にそれを把握するために管理

、トップの答えは基本的に正しかったが、私はそう、私はここにそれらを出してあげる把握しなければならなかったいくつかの余分な手順がありました。

カールの特定の文書はhereです。チームの問題スレッドはhereです。

私が使用した実際のカール・コールがこれです:あなたはbashでzipファイルを作成するには、悪いペイロードで--data-binary-d結果

  • を使用する必要があります

    • :この上

      $ curl -XPUT --data-binary @index.js.zip "https://abc:[email protected]/api/zip/site/wwwroot/hello" 
      

      ノート私は使用しました:$ zip index.js.zip index.js

    • abc:xyzは、展開のユーザ名とパスワードです
    • 送信する正しいパスはsite/wwwroot/helloです。ここで、helloは機能の名前です。

      $ az login 
      $ az webapp deployment user set --user-name abc --password xyz 
      

      そして、あなたがしたらそれは、トリックでした:あなたは紺碧ポータルUI(documented here)にユーザー名とパスワードを設定することができますが、あなたもそうようazure-cliでそれを設定することができます

    基本認証でそれらを使用してkudu apiを呼び出すことができる展開資格情報をセットアップします。

  • 答えて

    2

    Rest APIを使用して関数アプリケーションをデプロイすることは、Azureでも可能です。これを行うには、次のRest APIを使用できます。 Kudu REST APIから詳細情報を得ることができます。 ftpの使用方法とパスワードをパブリッシュファイルから得る方法、ファイルをパブリッシュする方法についてはSO threadを参照してください。

    PUT https://{user}:{password}@{FunctionAppname}.scm.azurewebsites.net/api/zip/{path} # example path:site/wwwroot 
    
    +0

    ありがとう、私は深夜のハッキングの後の昨夜それを理解することができましたが、これは本質的に正しいので、私は答えとしてあなたをマークしています。私は私の解決策についての詳細を私の質問に更新しました。 –

    +0

    また、新しい[zip deployment](https://github.com/projectkudu/kudu/wiki/Deploying-from-a-zip-file)APIを[こちら](https:// github。com/projectkudu/kudu/issues/2589) –

    +0

    @DavidEbboあなたの情報をありがとう。 –

    関連する問題