次の方法で共有


AzureFunctionAppContainer@1 - コンテナー v1 タスクのAzure Functions

Docker コンテナーを使用して関数アプリを更新します。

Docker コンテナーを使用して Function Apps を更新します。

構文

# 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.
# Azure Function for container v1
# Update Function Apps with Docker containers.
- 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.

入力

azureSubscription - Azure サブスクリプション
string. 必須です。

デプロイの Azure Resource Manager サブスクリプションを選択します。


appName - アプリ名
string. 必須です。

コンテナー用関数アプリの名前。


deployToSlotOrASE - スロットまたはApp Service Environmentにデプロイする
boolean. 既定値: false

この入力を にtrue設定して、既存のデプロイ スロットまたはAzure App Service環境にデプロイします。 タスクには、両方のターゲットのリソース グループ名が必要です。 デプロイ スロット オプションの場合、既定では 運用 スロットにデプロイされます。または、他の既存のスロット名を指定することもできます。 デプロイ ターゲットがAzure App Service環境の場合は、スロット名を運用環境のままにして、リソース グループ名を指定します。


resourceGroupName - リソース グループ
string. deployToSlotOrASE = true の場合に必要です。

コンテナー用関数アプリを含むリソース グループの名前。


slotName - スロット
string. deployToSlotOrASE = true の場合に必要です。 既定値: production

運用スロットを除く既存のスロットを入力または選択します。


imageName - イメージ名
string. 必須です。

特定のレジストリまたは名前空間のグローバルに一意のトップレベル ドメイン名。

メモ: 完全修飾イメージ名は、 という形式 <registry or namespace> <repository> <tag>になります。 たとえば、「 myregistry.azurecr.io/nginx:latest 」のように入力します。


containerCommand - スタートアップ コマンド
string.

デプロイ後に実行されるスタートアップ コマンド。 例: dotnet rundotnet filename.dll.


appSettings - アプリの設定
string.

構文-key valueを使用してアプリケーション設定を入力します (例:-RequestTimeout 5000-Port 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 エラー コード

5xx エラーが表示される場合は、Azure サービスの状態をチェックします

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 が構成されていて、 を有効Remove additional files at destinationにしている場合は、 も有効にするExclude files from the App_Data folder必要があります。 このオプションを有効にすると、Application Insights 拡張機能が安全な状態に保たれる。 Application Insights の継続的な Web ジョブが App_Data フォルダーにインストールされているため、この手順が必要です。

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)

要件

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
確認要求 None
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.104.1 以降
タスクのカテゴリ 配置