次の方法で共有


AzureRmWebAppDeployment@3 - Azure App Service デプロイ v3 タスク

このタスクを使用して、Docker、Java、.NET、.NET Core、Node.js、PHP、Python、または Ruby を使用して、Web、モバイル、または API アプリを Azure App Service にデプロイします。

このバージョンのタスクは非推奨です。AzureRmWebAppDeployment@4 を使用して、ワークロード ID フェデレーションなどの最新の機能を利用します。

AzureFunctionApp@1 を使用して Azure Functions アプリをデプロイします。

このタスクを使用して、Docker、Java、.NET、.NET Core、Node.js、PHP、Python、または Ruby を使用して、Web、モバイル、または API アプリを Azure App Service にデプロイします。

AzureFunctionApp@1 を使用して Azure Functions アプリをデプロイします。

構文

# Azure App Service deploy v3
# Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby.
- task: AzureRmWebAppDeployment@3
  inputs:
    azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription. 
    appType: 'app' # 'app' | 'applinux' | 'functionapp' | 'api' | 'mobileapp'. Alias: WebAppKind. Required. App type. Default: app.
    WebAppName: # string. Required. App Service name. 
    #DeployToSlotFlag: false # boolean. Optional. Use when WebAppKind != "". Deploy to slot. Default: false.
    #ResourceGroupName: # string. Required when DeployToSlotFlag = true. Resource group. 
    #SlotName: # string. Required when DeployToSlotFlag = true. Slot. 
    #ImageSource: 'Registry' # 'Registry' | 'Builtin'. Optional. Use when WebAppKind = applinux || WebAppKind = linux. Image Source. Default: Registry.
    #AzureContainerRegistry: # string. Required when ImageSource = AzureContainerRegistry. Registry. 
    #AzureContainerRegistryLoginServer: # string. Optional. Use when ImageSource = invalidimagesource. Registry Login Server Name. 
    #AzureContainerRegistryImage: # string. Required when ImageSource = AzureContainerRegistry. Image. 
    #AzureContainerRegistryTag: # string. Optional. Use when ImageSource = AzureContainerRegistry. Tag. 
    #DockerRepositoryAccess: 'public' # 'private' | 'public'. Required when ImageSource = invalidImage. Repository Access. Default: public.
    #dockerRegistryConnection: # string. Alias: RegistryConnectedServiceName. Required when DockerRepositoryAccess = private || ImageSource = PrivateRegistry. Registry Connection. 
    #PrivateRegistryImage: # string. Required when ImageSource = PrivateRegistry. Image. 
    #PrivateRegistryTag: # string. Optional. Use when ImageSource = PrivateRegistry. Tag. 
    #DockerNamespace: # string. Required when WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource  = Registry. Registry or Namespace. 
    #DockerRepository: # string. Required when WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource  = Registry. Image. 
    #DockerImageTag: # string. Optional. Use when WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource  = Registry. Tag. 
    #VirtualApplication: # string. Optional. Use when WebAppKind != linux && WebAppKind != applinux && WebAppKind != "". Virtual application. 
    #Package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required when WebAppKind != linux && WebAppKind != applinux &&  WebAppKind != "". Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Alias: BuiltinLinuxPackage. Required when WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Builtin. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #RuntimeStack: # string. Required when WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Builtin. Runtime Stack. 
    #StartupCommand: # string. Optional. Use when WebAppKind = applinux || WebAppKind = linux. Startup command. 
  # Output
    #WebAppUri: # string. Optional. Use when WebAppKind != "". App Service URL. 
  # Post Deployment Action
    #ScriptType: # 'Inline Script' | 'File Path'. Optional. Use when WebAppKind != "". Deployment script type. 
    #InlineScript: ':: You can provide your deployment commands here. One command per line.' # string. Required when ScriptType == Inline Script && WebAppKind != "". Inline Script. Default: :: You can provide your deployment commands here. One command per line..
    #ScriptPath: # string. Required when ScriptType == File Path && WebAppKind != "". Deployment script path. 
  # File Transforms & Variable Substitution Options
    #GenerateWebConfig: false # boolean. Optional. Use when WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .war. Generate Web.config. Default: false.
    #WebConfigParameters: # string. Required when GenerateWebConfig == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .war. Web.config parameters. 
    #enableXmlTransform: false # boolean. Alias: XmlTransformation. Optional. Use when WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .war. XML transformation. Default: false.
    #enableXmlVariableSubstitution: false # boolean. Alias: XmlVariableSubstitution. Optional. Use when WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .war. XML variable substitution. Default: false.
    #JSONFiles: # string. Optional. Use when WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .war. JSON variable substitution. 
  # Application and Configuration Settings
    #AppSettings: # string. App settings. 
    #ConfigurationSettings: # string. Configuration settings. 
  # Additional Deployment Options
    #TakeAppOfflineFlag: false # boolean. Optional. Use when WebAppKind != linux && WebAppKind != applinux && WebAppKind != "". Take App Offline. Default: false.
    #UseWebDeploy: false # boolean. Optional. Use when WebAppKind != linux && WebAppKind != applinux && WebAppKind != "". Publish using Web Deploy. Default: false.
    #SetParametersFile: # string. Optional. Use when UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != "". SetParameters file. 
    #RemoveAdditionalFilesFlag: false # boolean. Optional. Use when UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != "". Remove additional files at destination. Default: false.
    #ExcludeFilesFromAppDataFlag: false # boolean. Optional. Use when UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != "". Exclude files from the App_Data folder. Default: false.
    #AdditionalArguments: # string. Optional. Use when UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != "". Additional arguments. 
    #RenameFilesFlag: false # boolean. Optional. Use when UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != "". Rename locked files. Default: false.

入力

Azure サブスクリプション を する
入力エイリアス: ConnectedServiceNamestring。 必須。

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


appType - アプリの種類の
入力エイリアス: WebAppKindstring。 必須。 使用できる値: app (Web アプリ)、applinux (Linux Web アプリ)、functionapp (Function App (Not recommended, Use Azure Functions Task)))、api (API App)、mobileapp (モバイル アプリ)。 既定値: app.

デプロイする Web アプリの種類を指定します。

注: 組み込みのプラットフォーム イメージまたはカスタム コンテナー イメージのデプロイ用に Linux Web App を指定します。


appType - アプリの種類の
入力エイリアス: WebAppKindstring。 必須。 使用できる値: app (Web アプリ)、applinux (Linux Web アプリ)、functionapp (Function App)、api (API アプリ)、mobileapp (モバイル アプリ)。 既定値: app.

デプロイする Web アプリの種類を指定します。

注: 組み込みのプラットフォーム イメージまたはカスタム コンテナー イメージのデプロイ用に Linux Web App を指定します。


App Service 名 を する
string。 必須。

既存の Azure App Service の名前を指定します。 選択したアプリの種類に基づくアプリ サービスは、タスク アシスタントを使用する場合にのみ一覧表示されます。


DeployToSlotFlag - スロット にデプロイする
boolean。 任意 WebAppKind != ""するときに使用します。 既定値: false.

このオプションを使用して、運用スロット以外の既存のスロットにデプロイします。 このオプションが選択されていない場合、Azure App Service は運用スロットにデプロイされます。


ResourceGroupName - リソース グループの
stringDeployToSlotFlag = trueする場合に必要です。

上記で指定した Azure App Service を含む Azure リソース グループを指定します。


SlotName - スロット
stringDeployToSlotFlag = trueする場合に必要です。

運用スロット以外の既存のスロットを指定します。


イメージ ソースImageSource -
string。 任意 WebAppKind = applinux || WebAppKind = linuxするときに使用します。 使用できる値: Registry (コンテナー レジストリ)、Builtin (組み込みイメージ)。 既定値: Registry.

App Service on Linux には、アプリケーションを発行するための 2 つの異なるオプションが用意されています。

組み込みのプラットフォーム イメージを使用したカスタム イメージのデプロイまたはアプリのデプロイ。


レジストリAzureContainerRegistry -
stringImageSource = AzureContainerRegistryする場合に必要です。

特定のレジストリのグローバルに一意の最上位ドメイン名。

注: 完全修飾イメージ名は、<registry>/<repository>:<tag>形式になります。 たとえば、myregistry.azurecr.io/nginx:latestします。


AzureContainerRegistryLoginServer - レジストリ ログイン サーバー名の
string。 任意 ImageSource = invalidimagesourceするときに使用します。

Azure コンテナー レジストリ ログイン サーバー名を指定します。


AzureContainerRegistryImage - イメージ
stringImageSource = AzureContainerRegistryする場合に必要です。

コンテナー イメージが格納されているリポジトリの名前。

注: 完全修飾イメージ名は、<registry>/<repository>:<tag>形式になります。 たとえば、myregistry.azurecr.io/nginx:latestです。


AzureContainerRegistryTag - タグの
string。 任意 ImageSource = AzureContainerRegistryするときに使用します。

これは、レジストリが Docker イメージにバージョンを提供するために使用するメカニズムです。

注: 完全修飾イメージ名は、<registry>/<repository>:<tag>形式になります。 たとえば、myregistry.azurecr.io/nginx:latestです。


DockerRepositoryAccess - リポジトリ アクセス
stringImageSource = invalidImageする場合に必要です。 使用できる値: privatepublic。 既定値: public.

Docker リポジトリへのアクセスを指定します。


dockerRegistryConnection - レジストリ接続
入力エイリアス: RegistryConnectedServiceNamestringDockerRepositoryAccess = private || ImageSource = PrivateRegistryする場合に必要です。

レジストリ接続を指定します。


PrivateRegistryImage - イメージ
stringImageSource = PrivateRegistryする場合に必要です。

コンテナー イメージが格納されているリポジトリの名前。

注: 完全修飾イメージ名は、<registry><repository>:<tag>形式になります。 たとえば、myregistry.azurecr.io/nginx:latestです。


PrivateRegistryTag - タグの
string。 任意 ImageSource = PrivateRegistryするときに使用します。

タグは、レジストリが Docker イメージにバージョンを提供するために使用するメカニズムです。

注: 完全修飾イメージ名は、'<registry>/<repository>:<tag>' の形式になります。 たとえば、myregistry.azurecr.io/nginx:latestです。


DockerNamespace - レジストリまたは名前空間の
stringWebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Registryする場合に必要です。

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

注: 完全修飾イメージ名は、<registry or namespace>/<repository>:<tag>形式になります。 たとえば、myregistry.azurecr.io/nginx:latestです。


DockerRepository - イメージ
stringWebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Registryする場合に必要です。

コンテナー イメージが格納されているリポジトリの名前。

注: 完全修飾イメージ名は次の形式になります: '<registry or namespace>/<repository>:<tag>. たとえば、myregistry.azurecr.io/nginx:latestです。


DockerImageTag - タグの
string。 任意 WebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Registryするときに使用します。

これは、レジストリが Docker イメージにバージョンを提供するために使用するメカニズムです。

注: 完全修飾イメージ名は、'<registry or namespace>/<repository>:<tag>' の形式になります。 たとえば、myregistry.azurecr.io/nginx:latestです。


仮想アプリケーション の
string。 任意 WebAppKind != linux && WebAppKind != applinux && WebAppKind != ""するときに使用します。

Azure portal で構成されている仮想アプリケーションの名前を指定します。 このオプションは、App Service ルートへのデプロイには必要ありません。


Package - パッケージまたはフォルダー
stringWebAppKind != linux && WebAppKind != applinux && WebAppKind != ""する場合に必要です。 既定値: $(System.DefaultWorkingDirectory)/**/*.zip.

MSBuild によって生成されたアプリ サービスの内容を含むパッケージまたはフォルダーへのファイル パス、または圧縮された zip または war ファイル。

変数はビルド とリリースです。 ワイルドカード がサポートされています。

たとえば、$(System.DefaultWorkingDirectory)/\*\*/\*.zip$(System.DefaultWorkingDirectory)/\*\*/\*.warなどです。


packageForLinux - パッケージまたはフォルダー
入力エイリアス: BuiltinLinuxPackagestringWebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Builtinする場合に必要です。 既定値: $(System.DefaultWorkingDirectory)/**/*.zip.

MSBuild によって生成されたアプリ サービスの内容を含むパッケージまたはフォルダーへのファイル パス、または圧縮された zip または war ファイル。

変数はビルド とリリースです。 ワイルドカード がサポートされています。

たとえば、$(System.DefaultWorkingDirectory)/\*\*/\*.zip$(System.DefaultWorkingDirectory)/\*\*/\*.warなどです。


ランタイム スタック の
stringWebAppKind != app && WebAppKind != functionapp && WebAppKind != api && WebAppKind != mobileapp && ImageSource = Builtinする場合に必要です。

フレームワークとバージョンを指定します。


StartupCommand - スタートアップ コマンドの
string。 任意 WebAppKind = applinux || WebAppKind = linuxするときに使用します。

スタートアップ コマンドを指定します。


App Service URLWebAppUri - する
string。 任意 WebAppKind != ""するときに使用します。

Azure App Service の URL に対して生成される出力変数の名前を指定します。 この変数は、後続のタスクで使用できます。


ScriptType - 展開スクリプトの種類
string。 任意 WebAppKind != ""するときに使用します。 使用できる値: Inline ScriptFile Path (スクリプト ファイル パス)。

タスクが正常にデプロイを完了した後に Azure App Service で実行されるスクリプトを提供して、デプロイをカスタマイズします。 たとえば、Node、PHP、Python アプリケーションのパッケージを復元できます。 Azure App Service のデプロイ詳細を確認します。


インライン スクリプト の
stringScriptType == Inline Script && WebAppKind != ""する場合に必要です。 既定値: :: You can provide your deployment commands here. One command per line..


ScriptPath - 展開スクリプト パス
stringScriptType == File Path && WebAppKind != ""する場合に必要です。


GenerateWebConfig - Web.config の生成
boolean。 任意 WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .warするときに使用します。 既定値: false.

標準 Web.config が生成され、アプリケーションにない場合は Azure App Service にデプロイされます。 web.config の値は、アプリケーション フレームワークによって編集および変更できます。 たとえば、node.js アプリケーションの場合、web.config にはスタートアップ ファイルと iis_node モジュール値が含まれます。 Azure App Service のデプロイ詳細を確認します。


パラメーターWebConfigParameters - Web.config する
stringGenerateWebConfig == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .warする場合に必要です。

生成された web.config ファイル内のスタートアップ ファイルなどの値を編集します。 この編集機能は、生成された web.config専用です。 Azure App Service のデプロイ詳細を確認します。


AppSettings - アプリ設定の
string

構文 -key 値に従って Web アプリ アプリケーションの設定を編集します。 スペースを含む値は、二重引用符で囲む必要があります。 例: -Port 5000-RequestTimeout 5000-WEBSITE_TIME_ZONE"Eastern Standard Time".


ConfigurationSettings - 構成設定の
string

構文 -key 値に従って Web アプリの構成設定を編集します。 スペースを含む値は、二重引用符で囲む必要があります。

例: -phpVersion 5.6-linuxFxVersion: node|6.11.


TakeAppOfflineFlag - アプリをオフラインにする
boolean。 任意 WebAppKind != linux && WebAppKind != applinux && WebAppKind != ""するときに使用します。 既定値: false.

同期操作が開始される前に、App Service のルート ディレクトリに app_offline.htm ファイルを配置して Azure App Service をオフラインにするには、このオプションを使用します。 同期操作が正常に完了すると、ファイルは削除されます。


Web 配置を使用した発行の UseWebDeploy -
boolean。 任意 WebAppKind != linux && WebAppKind != applinux && WebAppKind != ""するときに使用します。 既定値: false.

Publish using Web Deploy オプションは、Windows エージェントを使用する場合にのみサポートされます。 他のプラットフォームでは、タスクは Azure App Service のデプロイに Kudu REST API に依存しており、次のオプションはサポートされていません。


SetParameters ファイルの の
string。 任意 UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != ""するときに使用します。

使用する SetParameters.xml ファイルの場所。


RemoveAdditionalFilesFlag - コピー先の で追加のファイルを削除する
boolean。 任意 UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != ""するときに使用します。 既定値: false.

App Service パッケージまたはフォルダーに一致するファイルがない Azure App Service 上のファイルを削除するには、このオプションを使用します。

注: これにより、この Azure App Service にインストールされている拡張機能に関連するすべてのファイルも削除されます。 これを回避するには、[Exclude files from App_Data folder] チェック ボックスをオンにします。


ExcludeFilesFromAppDataFlag - App_Data フォルダーの からファイルを除外する
boolean。 任意 UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != ""するときに使用します。 既定値: false.

App_Data フォルダー内のファイルが Azure App Service にデプロイまたは削除されないようにするには、このオプションを使用します。


AdditionalArguments - その他の引数
string。 任意 UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != ""するときに使用します。

構文 -key:valueに続く追加の Web 配置引数。

これらは、Azure App Service をデプロイするときに適用されます。 例: -disableLink:AppPoolExtension-disableLink:ContentExtension.

Web 配置操作の設定のその他の例を参照してください。


RenameFilesFlag - ロックされたファイルの名前を変更
boolean。 任意 UseWebDeploy == true && WebAppKind != linux && WebAppKind != applinux && WebAppKind != ""するときに使用します。 既定値: false.

このオプションを使用して、Azure App Service アプリケーション設定で msdeploy フラグの MSDEPLOY_RENAME_LOCKED_FILES=1 を有効にします。 このオプションを使用すると、msdeploy で、アプリのデプロイ中にロックされているロックされたファイルの名前を変更できます。


XML 変換 を する
入力エイリアス: XmlTransformationboolean。 任意 WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .warするときに使用します。 既定値: false.

構成変換は、*.Release.config*.<EnvironmentName>.config*.config file に対して実行されます。

構成変換は変数置換の前に実行されます。

XML 変換は、Windows プラットフォームでのみサポートされます。


enableXmlVariableSubstitution - XML 変数置換
入力エイリアス: XmlVariableSubstitutionboolean。 任意 WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .warするときに使用します。 既定値: false.

ビルドまたはリリース パイプラインで定義されている変数は、構成ファイルと keynameappSettings、および applicationSettings セクションの connectionStrings または parameters.xml エントリと照合されます。 変数の置換は、構成変換の後に実行されます。

注: リリース パイプラインと環境内で同じ変数が定義されている場合、環境変数はリリース パイプライン変数よりも優先されます。


JSON 変数の置換 を する
string。 任意 WebAppKind != linux && WebAppKind != applinux && WebAppKind != "" && Package NotEndsWith .warするときに使用します。

変数値に置き換える JSON ファイルの新しい行区切りリストを提供します。 ファイル名は、ルート フォルダーを基準にして指定されます。

入れ子になった JSON 変数または階層型の JSON 変数を置き換える場合は、JSONPath 式を使用して指定します。

たとえば、次のサンプルの ConnectionString の値を置き換えるには、ビルド/リリース パイプライン (またはリリース パイプラインの環境) で Data.DefaultConnection.ConnectionString 変数を定義する必要があります。

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
    }
  }
}

変数の置換は、構成の変換後に実行されます。

注: パイプライン変数は置換で除外されます。


タスク コントロールのオプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。

出力変数

なし。

注釈

このタスクの新しいバージョンを使用できます。 詳細については、AzureRmWebAppDeployment@4を参照してください。

トラブルシューティング

Windows エージェントから Microsoft Entra ID 認証を使用して Azure App Service に Web デプロイできない

Azure App Service デプロイ タスクでは、次の 3 つの条件が存在しない限り、Microsoft Entra ID を使用した ARM サービス接続を使用した Microsoft Azure への接続がサポートされます。

  • Windows エージェントで Web 配置パッケージ形式を使用している
  • エージェントが以前のバージョンの msdeploy.exe で実行されている (たとえば、windows-2019 ホストされているエージェント イメージを使用する場合)
  • Azure App Service の基本認証が無効になっている

これら 3 つの条件が存在する場合は、App Service is configured to not use basic authentication. This requires Web Deploy msdeploy.exe version 7.1.7225.2108 or higher. You need a version of Visual Studio that includes an updated version of msdeploy.exe. For more information, visit https://aka.ms/azdo-webapp-msdeploy. のようなエラーが表示されます。

この問題を解決するには、次のオプションから優先順に選択できます。

  1. エージェント イメージを更新します。 ホストされているエージェントを使用している場合は、windows-2019 から windows-2022 (または windows-latest) に移行します。 セルフホステッド エージェントを使用している場合は、エージェントに Visual Studio 2022 をインストールして、新しいバージョンの msdeploy.exeを取得します。
  2. 古いエージェント イメージに依存していて、パイプラインのエージェントを更新できない場合は、Azure App Service デプロイ タスクが windows-2022 (または windows-latest) 実行されるようにジョブ 分割することを検討してください。
  3. どちらのオプションも使用できない場合は、Azure App Service の基本認証 を有効

必要条件

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