Share via


New-AzureBatchTask

ジョブの下に Batch タスクを作成します。

警告

AzureRM PowerShell モジュールは、2024 年 2 月 29 日の時点で正式に非推奨になりました。 引き続きサポートを受け、更新を受け取れるようにするために、AzureRM から Az PowerShell モジュールに移行することをお勧めします。

AzureRM モジュールは引き続き機能する可能性がありますが、メインが維持またはサポートされなくなり、ユーザーの判断とリスクで引き続き使用できます。 Az モジュールへの移行に関するガイダンスについては、移行リソースを参照してください。

構文

New-AzureBatchTask
   -JobId <String>
   -Id <String>
   [-DisplayName <String>]
   [-CommandLine <String>]
   [-ResourceFiles <IDictionary>]
   [-EnvironmentSettings <IDictionary>]
   [-AuthenticationTokenSettings <PSAuthenticationTokenSettings>]
   [-UserIdentity <PSUserIdentity>]
   [-AffinityInformation <PSAffinityInformation>]
   [-Constraints <PSTaskConstraints>]
   [-MultiInstanceSettings <PSMultiInstanceSettings>]
   [-DependsOn <TaskDependencies>]
   [-ApplicationPackageReferences <PSApplicationPackageReference[]>]
   [-OutputFile <PSOutputFile[]>]
   [-ExitConditions <PSExitConditions>]
   [-ContainerSettings <PSTaskContainerSettings>]
   -BatchContext <BatchAccountContext>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzureBatchTask
   -JobId <String>
   [-Tasks <PSCloudTask[]>]
   -BatchContext <BatchAccountContext>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzureBatchTask
   [-Job <PSCloudJob>]
   [-Tasks <PSCloudTask[]>]
   -BatchContext <BatchAccountContext>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzureBatchTask
   [-Job <PSCloudJob>]
   -Id <String>
   [-DisplayName <String>]
   [-CommandLine <String>]
   [-ResourceFiles <IDictionary>]
   [-EnvironmentSettings <IDictionary>]
   [-AuthenticationTokenSettings <PSAuthenticationTokenSettings>]
   [-UserIdentity <PSUserIdentity>]
   [-AffinityInformation <PSAffinityInformation>]
   [-Constraints <PSTaskConstraints>]
   [-MultiInstanceSettings <PSMultiInstanceSettings>]
   [-DependsOn <TaskDependencies>]
   [-ApplicationPackageReferences <PSApplicationPackageReference[]>]
   [-OutputFile <PSOutputFile[]>]
   [-ExitConditions <PSExitConditions>]
   [-ContainerSettings <PSTaskContainerSettings>]
   -BatchContext <BatchAccountContext>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

説明

New-AzureBatchTask コマンドレットは、JobId パラメーターまたは Job パラメーターで指定されたジョブの下に Azure Batch タスクを作成します。

例 1: Batch タスクを作成する

PS C:\>New-AzureBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -BatchContext $Context

このコマンドは、ID Job-000001 を持つジョブの下に ID Task23 を持つタスクを作成します。 タスクは、指定されたコマンドを実行します。 Get-AzureRmBatchAccountKeys コマンドレットを使用して、$Context変数にコンテキストを割り当てます。

例 2: Batch タスクを作成する

PS C:\> $autoUser = New-Object Microsoft.Azure.Commands.Batch.Models.PSAutoUserSpecification -ArgumentList @("Task", "Admin")
PS C:\> $userIdentity = New-Object Microsoft.Azure.Commands.Batch.Models.PSUserIdentity $autoUser
PS C:\>Get-AzureBatchJob -Id "Job-000001" -BatchContext $Context | New-AzureBatchTask -Id "Task26" -CommandLine "cmd /c echo hello > newFile.txt" -UserIdentity $userIdentity -BatchContext $Context

このコマンドは、Get-AzureBatchJob コマンドレットを使用 して、ID Job-000001 を持つ Batch ジョブを 取得します。 コマンドは、パイプライン 演算子を使用して、そのジョブを現在のコマンドレットに渡します。 このコマンドは、そのジョブの下に ID Task26 を持つタスクを作成します。 タスクは、管理者特権のアクセス許可を使用して、指定されたコマンドを実行します。

例 3: パイプラインを使用して、指定したジョブにタスクのコレクションを追加する

PS C:\>$Context = Get-AzureRmBatchAccountKeys -AccountName "ContosoBatchAccount"
PS C:\> $Task01 = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudTask("Task23", "cmd /c dir /s")
PS C:\> $Task02 = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudTask("Task24", "cmd /c dir /s")
PS C:\> Get-AzureBatchJob -Id "Job-000001" -BatchContext $Context | New-AzureBatchTask -Tasks @($Task01, $Task02) -BatchContext $Context

最初のコマンドでは、Get-AzureRmBatchAccountKeys を使用して 、ContosoBatchAccount という名前のバッチ アカウントのアカウント キーへのオブジェクト参照を作成します。 このコマンドは、このオブジェクト参照を $Context 変数に格納します。 次の 2 つのコマンドでは、New-Object コマンドレットを使用して PSCloudTask オブジェクトを作成します。 コマンドは、タスクを $Task 01 変数と $Task 02 変数に格納します。 最後のコマンドは、Get-AzureBatchJob を使用 して ID Job-000001 を持つ Batch ジョブを取得します。 その後、コマンドはパイプライン演算子を使用して、そのジョブを現在のコマンドレットに渡します。 このコマンドは、そのジョブの下にタスクのコレクションを追加します。 このコマンドは、$Contextに格納されているコンテキストを使用します。

例 4: 指定したジョブにタスクのコレクションを追加する

PS C:\>$Context = Get-AzureRmBatchAccountKeys -AccountName "ContosoBatchAccount"
PS C:\> $Task01 = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudTask("Task23", "cmd /c dir /s")
PS C:\> $Task02 = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudTask("Task24", "cmd /c dir /s")
PS C:\> New-AzureBatchTask -JobId "Job-000001" -Tasks @($Task01, $Task02) -BatchContext $Context

最初のコマンドでは、Get-AzureRmBatchAccountKeys を使用して 、ContosoBatchAccount という名前のバッチ アカウントのアカウント キーへのオブジェクト参照を作成します。 このコマンドは、このオブジェクト参照を $Context 変数に格納します。 次の 2 つのコマンドでは、New-Object コマンドレットを使用して PSCloudTask オブジェクトを作成します。 コマンドは、タスクを $Task 01 変数と $Task 02 変数に格納します。 最後のコマンドは、ID Job-000001 を持つジョブの下に、$Task 01 および $Task 02 に格納されているタスクを追加します。

例 5: 出力ファイルを含むタスクを追加する

PS C:\>New-AzureBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -BatchContext $Context
PS C:\>$blobContainerDestination = New-Object Microsoft.Azure.Commands.Batch.Models.PSOutputFileBlobContainerDestination "https://myaccount.blob.core.windows.net/sascontainer?sv=2015-04-05&st=2015-04-29T22%3A18%3A26Z&se=2015-04-30T02%3A23%3A26Z&sr=b&sp=rw&spr=https&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D"
PS C:\>$destination = New-Object Microsoft.Azure.Commands.Batch.Models.PSOutputFileDestination $blobContainerDestination
PS C:\>$uploadOptions = New-Object Microsoft.Azure.Commands.Batch.Models.PSOutputFileUploadOptions "TaskSuccess"
PS C:\>$outputFile = New-Object Microsoft.Azure.Commands.Batch.Models.PSOutputFile "*.txt", $blobContainerDestination, $uploadOptions

PS C:\>New-AzureBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -OutputFile $outputFile -BatchContext $Context

例 6: 認証トークン設定を使用してタスクを追加する

PS C:\>$authSettings = New-Object Microsoft.Azure.Commands.Batch.Models.PSAuthenticationTokenSettings
PS C:\>$authSettings.Access = "Job"
PS C:\>New-AzureBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -AuthenticationTokenSettings $authSettings -BatchContext $Context

例 7: コンテナーで実行されるタスクを追加する

PS C:\>New-AzureBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -ContainerSettings New-Object Microsoft.Azure.Commands.Batch.Models.PSTaskContainerSettings "containerImageName"

パラメーター

-AffinityInformation

Batch サービスがタスクを実行するノードを選択するために使用するローカリティ ヒントを指定します。

Type:PSAffinityInformation
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationPackageReferences

Type:PSApplicationPackageReference[]
Aliases:ApplicationPackageReference
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AuthenticationTokenSettings

Batch サービス操作の実行にタスクが使用できる認証トークンの設定。 これが設定されている場合、Batch サービスは、アカウント アクセス キーを必要とせずに Batch サービス操作を認証するために使用できる認証トークンをタスクに提供します。 トークンは、AZ_BATCH_AUTHENTICATION_TOKEN環境変数を介して提供されます。 タスクがトークンを使用して実行できる操作は、設定によって異なります。 たとえば、タスクは、ジョブに他のタスクを追加したり、ジョブまたは他のタスクの状態をチェックしたりするために、ジョブのアクセス許可を要求できます。

Type:PSAuthenticationTokenSettings
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BatchContext

このコマンドレットが Batch サービスとの対話に使用する BatchAccountContext インスタンスを指定します。 Get-AzureRmBatchAccount コマンドレットを使用して BatchAccountContext を取得する場合、Batch サービスを操作するときに Microsoft Entra 認証が使用されます。 代わりに共有キー認証を使用するには、Get-AzureRmBatchAccountKeys コマンドレットを使用して、アクセス キーが設定された BatchAccountContext オブジェクトを取得します。 共有キー認証を使用する場合、プライマリ アクセス キーは既定で使用されます。 使用するキーを変更するには、BatchAccountContext.KeyInUse プロパティを設定します。

Type:BatchAccountContext
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CommandLine

タスクのコマンド ラインを指定します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Constraints

このタスクに適用される実行制約を指定します。

Type:PSTaskConstraints
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContainerSettings

タスクを実行するコンテナーの設定。 このタスクを実行するプールに containerConfiguration が設定されている場合は、これも設定する必要があります。 このタスクを実行するプールに containerConfiguration が設定されていない場合は、これを設定しないでください。 これを指定すると、AZ_BATCH_NODE_ROOT_DIRの下にあるすべてのディレクトリ (ノード上の Azure Batch ディレクトリのルート) がコンテナーに再帰的にマップされ、すべてのタスク環境変数がコンテナーにマップされ、タスク コマンド ラインがコンテナーで実行されます。

Type:PSTaskContainerSettings
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Azure との通信に使用される資格情報、アカウント、テナント、サブスクリプション。

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DependsOn

タスクが他のタスクに依存することを指定します。 依存しているすべてのタスクが正常に完了するまで、タスクはスケジュールされません。

Type:TaskDependencies
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayName

タスクの表示名を指定します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnvironmentSettings

このコマンドレットがタスクに追加する環境設定をキーと値のペアとして指定します。 キーは環境設定名です。 値は環境設定です。

Type:IDictionary
Aliases:EnvironmentSetting
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ExitConditions

Type:PSExitConditions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

タスクの ID を指定します。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Job

このコマンドレットでタスクを作成するジョブを指定します。 PSCloudJob オブジェクトを取得するには、Get-AzureBatchJob コマンドレットを使用します。

Type:PSCloudJob
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-JobId

このコマンドレットでタスクを作成するジョブの ID を指定します。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-MultiInstanceSettings

マルチインスタンス タスクを実行する方法に関する情報を指定します。

Type:PSMultiInstanceSettings
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputFile

コマンド ラインの実行後に Batch サービスがコンピューティング ノードからアップロードするファイルの一覧を取得または設定します。 マルチインスタンス タスクの場合、ファイルは、プライマリ タスクが実行されるコンピューティング ノードからのみアップロードされます。

Type:PSOutputFile[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceFiles

タスクに必要なリソース ファイルをキーと値のペアとして指定します。 キーはリソース ファイルのパスです。 値はリソース ファイルの BLOB ソースです。

Type:IDictionary
Aliases:ResourceFile
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tasks

追加するタスクのコレクションを指定します。 各タスクには一意の ID が必要です。

Type:PSCloudTask[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserIdentity

タスクを実行するユーザー ID。

Type:PSUserIdentity
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

PSCloudJob

パラメーター: Job (ByValue)

BatchAccountContext

パラメーター: BatchContext (ByValue)

出力

Void