New-AzBatchTask
在作業下建立 Batch 工作。
語法
New-AzBatchTask
-JobId <String>
-Id <String>
[-DisplayName <String>]
-CommandLine <String>
[-ResourceFiles <PSResourceFile[]>]
[-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-AzBatchTask
-JobId <String>
[-Tasks <PSCloudTask[]>]
-BatchContext <BatchAccountContext>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzBatchTask
[-Job <PSCloudJob>]
[-Tasks <PSCloudTask[]>]
-BatchContext <BatchAccountContext>
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzBatchTask
[-Job <PSCloudJob>]
-Id <String>
[-DisplayName <String>]
-CommandLine <String>
[-ResourceFiles <PSResourceFile[]>]
[-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>]
Description
New-AzBatchTask Cmdlet 會在 JobId 參數或 Job 參數所指定的作業下建立 Azure Batch 工作。
範例
範例 1:建立 Batch 工作
New-AzBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -BatchContext $Context
此命令會建立在標識碼為Job-0000001之作業底下標識碼Task23的工作。 工作會執行指定的命令。 使用 Get-AzBatchAccountKey Cmdlet 將內容指派給$Context變數。
範例 2:建立 Batch 工作
$autoUser = New-Object Microsoft.Azure.Commands.Batch.Models.PSAutoUserSpecification -ArgumentList @("Task", "Admin")
$userIdentity = New-Object Microsoft.Azure.Commands.Batch.Models.PSUserIdentity $autoUser
Get-AzBatchJob -Id "Job-000001" -BatchContext $Context | New-AzBatchTask -Id "Task26" -CommandLine "cmd /c echo hello > newFile.txt" -UserIdentity $userIdentity -BatchContext $Context
此命令會使用 Get-AzBatchJob Cmdlet 取得標識碼為 Job-000001 的 Batch 作業。 命令會使用管線運算符,將該作業傳遞至目前的 Cmdlet。 命令會建立具有該作業底下標識碼Task26的工作。 工作會使用提高的許可權來執行指定的命令。
範例 3:使用管線將工作集合新增至指定的作業
$Context = Get-AzBatchAccountKey -AccountName "ContosoBatchAccount"
$Task01 = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudTask("Task23", "cmd /c dir /s")
$Task02 = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudTask("Task24", "cmd /c dir /s")
Get-AzBatchJob -Id "Job-000001" -BatchContext $Context | New-AzBatchTask -Tasks @($Task01, $Task02) -BatchContext $Context
第一個命令會使用 Get-AzBatchAccountKey,為名為 ContosoBatchAccount 的批次帳戶建立帳戶密鑰的對象參考。 命令會將這個物件參考儲存在 $Context 變數中。 接下來的兩個命令會使用 New-Object Cmdlet 來建立 PSCloudTask 物件。 命令會將工作儲存在 $Task 01 和 $Task 02 變數中。 最後一個命令會使用 Get-AzBatchJob 取得標識碼為 Job-000001 的 Batch 作業。 然後,命令會使用管線運算符,將該作業傳遞至目前的 Cmdlet。 命令會在該作業下新增工作集合。 命令會使用儲存在 $Context 中的內容。
範例 4:將工作集合新增至指定的作業
$Context = Get-AzBatchAccountKey -AccountName "ContosoBatchAccount"
$Task01 = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudTask("Task23", "cmd /c dir /s")
$Task02 = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudTask("Task24", "cmd /c dir /s")
New-AzBatchTask -JobId "Job-000001" -Tasks @($Task01, $Task02) -BatchContext $Context
第一個命令會使用 Get-AzBatchAccountKey,為名為 ContosoBatchAccount 的批次帳戶建立帳戶密鑰的對象參考。 命令會將這個物件參考儲存在 $Context 變數中。 接下來的兩個命令會使用 New-Object Cmdlet 來建立 PSCloudTask 物件。 命令會將工作儲存在 $Task 01 和 $Task 02 變數中。 最後一個命令會將儲存在 $Task 01 和 $Task 02 中的工作新增至標識碼為 Job-000001 的工作。
範例 5:新增具有輸出檔案的工作
New-AzBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -BatchContext $Context
$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"
$destination = New-Object Microsoft.Azure.Commands.Batch.Models.PSOutputFileDestination $blobContainerDestination
$uploadOptions = New-Object Microsoft.Azure.Commands.Batch.Models.PSOutputFileUploadOptions "TaskSuccess"
$outputFile = New-Object Microsoft.Azure.Commands.Batch.Models.PSOutputFile "*.txt", $blobContainerDestination, $uploadOptions
New-AzBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -OutputFile $outputFile -BatchContext $Context
範例 6:新增具有驗證令牌設定的工作
$authSettings = New-Object Microsoft.Azure.Commands.Batch.Models.PSAuthenticationTokenSettings
$authSettings.Access = "Job"
New-AzBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -AuthenticationTokenSettings $authSettings -BatchContext $Context
範例 7:新增在容器中執行的工作
$Context = Get-AzBatchAccountKey -AccountName "ContosoBatchAccount"
New-AzBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -ContainerSettings (New-Object Microsoft.Azure.Commands.Batch.Models.PSTaskContainerSettings "containerImageName") -BatchContext $Context
參數
-AffinityInformation
指定 Batch 服務用來選取執行工作的節點的區域提示。
類型: | PSAffinityInformation |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ApplicationPackageReferences
類型: | PSApplicationPackageReference[] |
別名: | ApplicationPackageReference |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-AuthenticationTokenSettings
工作可用來執行 Batch 服務作業之驗證令牌的設定。 如果設定此選項,Batch 服務會提供驗證令牌,此令牌可用來驗證 Batch 服務作業,而不需要帳戶存取密鑰。 令牌會透過AZ_BATCH_AUTHENTICATION_TOKEN環境變數來提供。 工作可以使用令牌執行的作業取決於設定。 例如,工作可以要求作業許可權,以便將其他工作新增至作業,或檢查作業或其他工作的狀態。
類型: | PSAuthenticationTokenSettings |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-BatchContext
指定 此 Cmdlet 用來與 Batch 服務互動的 BatchAccountContext 實例。 如果您使用 Get-AzBatchAccount Cmdlet 來取得 BatchAccountContext,則與 Batch 服務互動時,將會使用Microsoft Entra 驗證。 若要改用共用密鑰驗證,請使用 Get-AzBatchAccountKey Cmdlet 來取得已填入其存取密鑰的 BatchAccountContext 物件。 使用共用金鑰驗證時,預設會使用主要存取金鑰。 若要變更要使用的密鑰,請設定 BatchAccountContext.KeyInUse 屬性。
類型: | BatchAccountContext |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-CommandLine
指定工作的命令行。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Constraints
指定套用至此工作的執行條件約束。
類型: | PSTaskConstraints |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ContainerSettings
工作執行所在的容器設定。 如果執行此工作的集區已設定 containerConfiguration,也必須設定此設定。 如果將執行此工作的集區沒有 containerConfiguration 設定,則不得設定此集區。 指定此專案時,AZ_BATCH_NODE_ROOT_DIR下方的所有目錄都會遞歸地對應至容器(節點上的 Azure Batch 目錄根目錄),所有工作環境變數都會對應至容器,並在容器中執行工作命令行。
類型: | PSTaskContainerSettings |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DefaultProfile
用於與 azure 通訊的認證、帳戶、租用戶和訂用帳戶。
類型: | IAzureContextContainer |
別名: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DependsOn
指定工作相依於其他工作。 除非所有相依的工作都順利完成,否則不會排程工作。
類型: | TaskDependencies |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DisplayName
指定工作的顯示名稱。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-EnvironmentSettings
指定此 Cmdlet 新增至工作的機碼/值組環境設定。 索引鍵是環境設定名稱。 值是環境設定。
類型: | IDictionary |
別名: | EnvironmentSetting |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ExitConditions
類型: | PSExitConditions |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Id
指定工作的識別碼。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Job
指定此 Cmdlet 建立工作的作業。 若要取得 PSCloudJob 物件,請使用 Get-AzBatchJob Cmdlet。
類型: | PSCloudJob |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-JobId
指定此 Cmdlet 建立工作之作業的標識碼。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-MultiInstanceSettings
指定如何執行多重實例工作的相關信息。
類型: | PSMultiInstanceSettings |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-OutputFile
取得或設定 Batch 服務在執行命令行之後,從計算節點上傳的檔案清單。 對於多重實例工作,檔案只會從執行主要工作的計算節點上傳。
類型: | PSOutputFile[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ResourceFiles
指定資源檔案做為工作所需的索引鍵/值組。 索引鍵是資源文件路徑。 值為資源檔 Blob 來源。
類型: | PSResourceFile[] |
別名: | ResourceFile |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Tasks
指定要加入的工作集合。 每個工作都必須有唯一標識碼。
類型: | PSCloudTask[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-UserIdentity
工作執行所在的使用者身分識別。
類型: | PSUserIdentity |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |