你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
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>]
说明
New-AzBatchTask cmdlet 在 JobId 参数或 Job 参数指定的作业下创建 Azure Batch 任务。
示例
示例 1:创建 Batch 任务
New-AzBatchTask -JobId "Job-000001" -Id "Task23" -CommandLine "cmd /c dir /s" -BatchContext $Context
此命令创建一个 ID 任务,该任务在 ID 为 Job-000001 的作业下具有 ID 任务 23。 任务运行指定的命令。 使用 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 获取 ID 为 Job-000001 的 Batch 作业。 该命令使用管道运算符将该作业传递到当前 cmdlet。 该命令创建一个在该作业下具有 ID 任务 26 的任务。 该任务使用提升的权限运行指定的命令。
示例 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 获取 ID 为 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 变量中。 最后一个命令在 ID 为 Job-00001 的作业下添加存储在 $Task 01 和 $Task 02 的任务。
示例 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,Microsoft 则在与 Batch 服务交互时将使用 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
指定任务的 ID。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-Job
指定此 cmdlet 创建任务的作业。 若要获取 PSCloudJob 对象,请使用 Get-AzBatchJob cmdlet。
类型: | PSCloudJob |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-JobId
指定此 cmdlet 在其中创建任务的作业的 ID。
类型: | 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
指定要添加的任务的集合。 每个任务必须具有唯一 ID。
类型: | PSCloudTask[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-UserIdentity
运行任务的用户标识。
类型: | PSUserIdentity |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |