Docker コンテナーを使用して関数アプリを更新します。
構文
# Azure Functions for container v1
# Update a function app with a Docker container.
- task: AzureFunctionAppContainer@1
inputs:
azureSubscription: # string. Required. Azure subscription.
appName: # string. Required. App name.
#deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
#resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group.
#slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
imageName: # string. Required. Image name.
#containerCommand: # string. Startup command.
# Application and Configuration Settings
#appSettings: # string. App settings.
#configurationStrings: # string. Configuration settings.
入力
appName
-
アプリ名の
string
. 必須。
コンテナー用関数アプリの名前。
スロットまたは App Service Environment にデプロイする
boolean
. 既定値: false
.
この入力を true
に設定して、既存のデプロイ スロットまたは Azure App Service Environment にデプロイします。 タスクには、両方のターゲットのリソース グループ名が必要です。 デプロイ スロット オプションの場合、既定では、運用 スロットにデプロイされるか、他の既存のスロット名を指定できます。 デプロイ ターゲットが Azure App Service Environment の場合は、スロット名を運用 のままにし、リソース グループ名を指定します。
resourceGroupName
-
リソース グループの
string
.
deployToSlotOrASE = true
する場合に必要です。
コンテナー用関数アプリを含むリソース グループの名前。
slotName
-
スロット
string
.
deployToSlotOrASE = true
する場合に必要です。 既定値: production
.
運用 スロットを除く、既存のスロットを入力または選択します。
imageName
-
イメージ名の
string
. 必須。
特定のレジストリまたは名前空間のグローバルに一意の最上位ドメイン名。
注: 完全修飾イメージ名は、<registry or namespace> <repository> <tag>
形式になります。 たとえば、myregistry.azurecr.io/nginx:latest
のようにします。
containerCommand
-
スタートアップ コマンドの
string
.
デプロイ後に実行されるスタートアップ コマンド。 例: dotnet run
dotnet filename.dll.
appSettings
-
アプリ設定の
string
.
構文 -key value
を使用してアプリケーション設定を入力します (例: -Port 5000
-RequestTimeout 5000
-WEBSITE_TIME_ZONE
)。 スペースを含む値を二重引用符で囲みます (例: "Eastern Standard Time"
)。
configurationStrings
-
構成設定の
string
.
構文 -key value
を使用して構成文字列を入力します (例: -phpVersion 5.6
-linuxFxVersion: node|6.11
)。 スペースを含む値を二重引用符で囲みます。
タスク コントロールのオプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。
出力変数
このタスクでは、次の 出力変数を定義します。この変数は、ダウンストリームのステップ、ジョブ、およびステージで使用できます。
AppServiceApplicationUrl
選択した App Service のアプリケーション URL。
注釈
このタスクを使用して、カスタム イメージを使用して Linux に Azure 関数をデプロイします。
エラー: Azure のアクセス トークンをフェッチできませんでした。 使用されているサービス プリンシパルが有効であり、有効期限が切れていないかどうかを確認します。
このタスクでは、サービス接続のサービス プリンシパルを使用して Azure で認証します。 サービス プリンシパルの有効期限が切れているか、App Service に対するアクセス許可がない場合、タスクはこのエラーで失敗します。 使用されているサービス プリンシパルが有効であることと、アプリの登録に存在することを確認してください。 詳細については、「ロールベースのアクセス制御を使用して Azure サブスクリプション リソースへのアクセスを管理するを参照してください。 このブログ記事 には、サービス プリンシパル認証の使用に関する詳細も記載されています。
SSL エラー
App Service で証明書を使用する場合、証明書は信頼された証明機関によって署名されている必要があります。 Web アプリで証明書の検証エラーが発生した場合は、自己署名証明書を使用している可能性があります。 エラーを解決するには、VSTS_ARM_REST_IGNORE_SSL_ERRORS
という名前の変数をビルドまたはリリース パイプラインの true
値に設定します。
リリースが長時間ハングし、失敗する
この問題は、App Service プランの容量が不足している可能性があります。 この問題を解決するには、App Service インスタンスをスケールアップして使用可能な CPU、RAM、ディスク領域を増やすか、別の App Service プランを試すことができます。
5xx エラー コード
5
Azure 関数が突然動作を停止しました
前回のデプロイから 1 年以上が経過した場合、Azure Functions は突然動作を停止する可能性があります。 "deploymentMethod" で "RunFromPackage" を使用してデプロイすると、有効期限が 1 年の SAS が生成され、アプリケーション構成で "WEBSITE_RUN_FROM_PACKAGE" の値として設定されます。 Azure Functions では、この SAS を使用して関数の実行用のパッケージ ファイルを参照するため、SAS の有効期限が切れている場合、関数は実行されません。 この問題を解決するには、もう一度デプロイして、有効期限が 1 年の SAS を生成します。
サービス接続を構成する方法
このタスクには、Azure Resource Manager サービス接続
Application Insights を使用して Web ジョブのデプロイを構成する方法
App Service にデプロイするときに、Application Insights を構成
App Service へのデプロイ中にエージェントがプロキシの背後にある場合は、どのように構成すればよいですか?
セルフホステッド エージェントに Web プロキシが必要な場合は、構成時にエージェントにプロキシについて通知できます。 これにより、エージェントはプロキシ経由で Azure Pipelines または Azure DevOps Server に接続できます。 Web プロキシの背後でセルフホステッド エージェントを実行する方法の詳細について説明します。
例示
この例では、コンテナーを使用して Linux に Azure Functions をデプロイします。
variables:
imageName: contoso.azurecr.io/azurefunctions-containers:$(build.buildId)
azureSubscription: Contoso
# To ignore SSL error uncomment the following variable
# VSTS_ARM_REST_IGNORE_SSL_ERRORS: true
steps:
- task: AzureFunctionAppContainer@1
displayName: Azure Function App on Container deploy
inputs:
azureSubscription: $(azureSubscription)
appName: functionappcontainers
imageName: $(imageName)