16

PowerShell スクリプトを使用して Azure 関数にデプロイする方法はありますか? octopus deploy を使用してすべての本番サービスにデプロイするため、CI は機能しません。そのため、powershell スクリプトを使用して展開する方法があれば有益です。

ありがとう!

4

5 に答える 5

11

Kudu REST APIを使用して Azure に関数をデプロイできます。また、テンプレート リポジトリで、これを実行するためのコードやサンプルを確認することもできます。このコード サンプルでは​​テスト スクリプトが Kudu Rest API を呼び出して、関数アプリに zip をデプロイする方法を確認できます。

関数のフォルダー構造は、フォルダーごとの関数です。./site/wwwrootFunction フォルダーをFunction Appにデプロイする必要があります。更新の間に新しいバインディングを追加する場合は、シークレットを含む可能性のあるアプリ設定も追加する必要があります。

PowerShell コードは次のようになります。

    $apiUrl = $config.scmEndpoint + "/api/zip/"
    if ($destinationPath)
    {
        $apiUrl = $apiUrl + $destinationPath
    }

    $response = Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $config.authInfo)} -Method PUT -InFile $zipFilePath -ContentType "multipart/form-data"
于 2016-04-19T23:19:10.267 に答える
7

Chris の説明に加えて、関数のデプロイに使用できるファースト クラスの ARM API があります。PowerShell では次のようになります。

Function DeployHttpTriggerFunction($ResourceGroupName, $SiteName, $FunctionName, $CodeFile, $TestData)
{
    $FileContent = "$(Get-Content -Path $CodeFile -Raw)"

    $props = @{
        config = @{
            bindings = @(
                @{
                    type = "httpTrigger"
                    direction = "in"
                    webHookType = ""
                    name = "req"
                }
                @{
                    type = "http"
                    direction = "out"
                    name = "res"
                }
            )
        }
        files = @{
            "index.js" = $FileContent
        }
        test_data = $TestData
    }

    New-AzureRmResource -ResourceGroupName $ResourceGroupName -ResourceType Microsoft.Web/sites/functions -ResourceName $SiteName/$FunctionName -PropertyObject $props -ApiVersion 2015-08-01 -Force
}

基礎となる API については、https://github.com/projectkudu/kudu/wiki/Functions-APIを参照してください。

于 2016-04-20T00:08:08.447 に答える