你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
BatchClient.ReplaceJob Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
ReplaceJob(String, BatchJob, Nullable<Int32>, Nullable<DateTimeOffset>, RequestConditions, CancellationToken) |
Updates the properties of the specified Job. |
ReplaceJob(String, RequestContent, Nullable<Int32>, Nullable<DateTimeOffset>, RequestConditions, RequestContext) |
[Protocol Method] Updates the properties of the specified Job.
|
ReplaceJob(String, BatchJob, Nullable<Int32>, Nullable<DateTimeOffset>, RequestConditions, CancellationToken)
- Source:
- BatchClient.cs
Updates the properties of the specified Job.
public virtual Azure.Response ReplaceJob (string jobId, Azure.Compute.Batch.BatchJob job, int? timeOutInSeconds = default, DateTimeOffset? ocpdate = default, Azure.RequestConditions requestConditions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member ReplaceJob : string * Azure.Compute.Batch.BatchJob * Nullable<int> * Nullable<DateTimeOffset> * Azure.RequestConditions * System.Threading.CancellationToken -> Azure.Response
override this.ReplaceJob : string * Azure.Compute.Batch.BatchJob * Nullable<int> * Nullable<DateTimeOffset> * Azure.RequestConditions * System.Threading.CancellationToken -> Azure.Response
Public Overridable Function ReplaceJob (jobId As String, job As BatchJob, Optional timeOutInSeconds As Nullable(Of Integer) = Nothing, Optional ocpdate As Nullable(Of DateTimeOffset) = Nothing, Optional requestConditions As RequestConditions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Response
Parameters
- jobId
- String
The ID of the Job whose properties you want to update.
- job
- BatchJob
A job with updated properties.
The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.".
- ocpdate
- Nullable<DateTimeOffset>
The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.
- requestConditions
- RequestConditions
The content to send as the request conditions of the request.
- cancellationToken
- CancellationToken
The cancellation token to use.
Returns
Exceptions
jobId
or job
is null.
jobId
is an empty string, and was expected to be non-empty.
Examples
This sample shows how to call ReplaceJob.
Uri endpoint = new Uri("<https://my-service.azure.com>");
TokenCredential credential = new DefaultAzureCredential();
BatchClient client = new BatchClient(endpoint, credential);
BatchJob job = new BatchJob(new BatchPoolInfo());
Response response = client.ReplaceJob("<jobId>", job);
This sample shows how to call ReplaceJob with all parameters.
Uri endpoint = new Uri("<https://my-service.azure.com>");
TokenCredential credential = new DefaultAzureCredential();
BatchClient client = new BatchClient(endpoint, credential);
BatchJob job = new BatchJob(new BatchPoolInfo
{
PoolId = "<poolId>",
AutoPoolSpecification = new BatchAutoPoolSpecification(BatchPoolLifetimeOption.JobSchedule)
{
AutoPoolIdPrefix = "<autoPoolIdPrefix>",
KeepAlive = true,
Pool = new BatchPoolSpecification("<vmSize>")
{
DisplayName = "<displayName>",
VirtualMachineConfiguration = new VirtualMachineConfiguration(new ImageReference
{
Publisher = "<publisher>",
Offer = "<offer>",
Sku = "<sku>",
Version = "<version>",
VirtualMachineImageId = "<virtualMachineImageId>",
}, "<nodeAgentSKUId>")
{
WindowsConfiguration = new WindowsConfiguration
{
EnableAutomaticUpdates = true,
},
DataDisks = {new DataDisk(1234, 1234)
{
Caching = CachingType.None,
StorageAccountType = StorageAccountType.StandardLRS,
}},
LicenseType = "<licenseType>",
ContainerConfiguration = new ContainerConfiguration(ContainerType.DockerCompatible)
{
ContainerImageNames = { "<containerImageNames>" },
ContainerRegistries = {new ContainerRegistryReference
{
Username = "<username>",
Password = "<password>",
RegistryServer = "<registryServer>",
IdentityReference = new BatchNodeIdentityReference
{
ResourceId = "<resourceId>",
},
}},
},
DiskEncryptionConfiguration = new DiskEncryptionConfiguration
{
Targets = { DiskEncryptionTarget.OsDisk },
},
NodePlacementConfiguration = new BatchNodePlacementConfiguration
{
Policy = BatchNodePlacementPolicyType.Regional,
},
Extensions = {new VMExtension("<name>", "<publisher>", "<type>")
{
TypeHandlerVersion = "<typeHandlerVersion>",
AutoUpgradeMinorVersion = true,
EnableAutomaticUpgrade = true,
Settings =
{
["key"] = "<settings>"
},
ProtectedSettings =
{
["key"] = "<protectedSettings>"
},
ProvisionAfterExtensions = {"<provisionAfterExtensions>"},
}},
OsDisk = new OSDisk
{
EphemeralOSDiskSettings = new DiffDiskSettings
{
Placement = DiffDiskPlacement.CacheDisk,
},
Caching = CachingType.None,
DiskSizeGB = 1234,
ManagedDisk = new ManagedDisk(StorageAccountType.StandardLRS),
WriteAcceleratorEnabled = true,
},
SecurityProfile = new SecurityProfile(true, SecurityTypes.TrustedLaunch, new UefiSettings
{
SecureBootEnabled = true,
VTpmEnabled = true,
}),
ServiceArtifactReference = new ServiceArtifactReference("<id>"),
},
TaskSlotsPerNode = 1234,
TaskSchedulingPolicy = new BatchTaskSchedulingPolicy(BatchNodeFillType.Spread),
ResizeTimeout = XmlConvert.ToTimeSpan("PT1H23M45S"),
ResourceTags = "<resourceTags>",
TargetDedicatedNodes = 1234,
TargetLowPriorityNodes = 1234,
EnableAutoScale = true,
AutoScaleFormula = "<autoScaleFormula>",
AutoScaleEvaluationInterval = XmlConvert.ToTimeSpan("PT1H23M45S"),
EnableInterNodeCommunication = true,
NetworkConfiguration = new NetworkConfiguration
{
SubnetId = "<subnetId>",
DynamicVNetAssignmentScope = DynamicVNetAssignmentScope.None,
EndpointConfiguration = new BatchPoolEndpointConfiguration(new InboundNatPool[]
{
new InboundNatPool("<name>", InboundEndpointProtocol.Tcp, 1234, 1234, 1234)
{
NetworkSecurityGroupRules = {new NetworkSecurityGroupRule(1234, NetworkSecurityGroupRuleAccess.Allow, "<sourceAddressPrefix>")
{
SourcePortRanges = {"<sourcePortRanges>"},
}},
}
}),
PublicIpAddressConfiguration = new PublicIpAddressConfiguration
{
IpAddressProvisioningType = IpAddressProvisioningType.BatchManaged,
IpAddressIds = { "<ipAddressIds>" },
},
EnableAcceleratedNetworking = true,
},
StartTask = new BatchStartTask("<commandLine>")
{
ContainerSettings = new BatchTaskContainerSettings("<imageName>")
{
ContainerRunOptions = "<containerRunOptions>",
Registry = default,
WorkingDirectory = ContainerWorkingDirectory.TaskWorkingDirectory,
},
ResourceFiles = {new ResourceFile
{
AutoStorageContainerName = "<autoStorageContainerName>",
StorageContainerUrl = "<storageContainerUrl>",
HttpUrl = "<httpUrl>",
BlobPrefix = "<blobPrefix>",
FilePath = "<filePath>",
FileMode = "<fileMode>",
IdentityReference = default,
}},
EnvironmentSettings = {new EnvironmentSetting("<name>")
{
Value = "<value>",
}},
UserIdentity = new UserIdentity
{
Username = "<username>",
AutoUser = new AutoUserSpecification
{
Scope = AutoUserScope.Task,
ElevationLevel = ElevationLevel.NonAdmin,
},
},
MaxTaskRetryCount = 1234,
WaitForSuccess = true,
},
ApplicationPackageReferences = {new BatchApplicationPackageReference("<applicationId>")
{
Version = "<version>",
}},
UserAccounts = {new UserAccount("<name>", "<password>")
{
ElevationLevel = ElevationLevel.NonAdmin,
LinuxUserConfiguration = new LinuxUserConfiguration
{
Uid = 1234,
Gid = 1234,
SshPrivateKey = "<sshPrivateKey>",
},
WindowsUserConfiguration = new WindowsUserConfiguration
{
LoginMode = LoginMode.Batch,
},
}},
Metadata = { new MetadataItem("<name>", "<value>") },
MountConfiguration = {new MountConfiguration
{
AzureBlobFileSystemConfiguration = new AzureBlobFileSystemConfiguration("<accountName>", "<containerName>", "<relativeMountPath>")
{
AccountKey = "<accountKey>",
SasKey = "<sasKey>",
BlobfuseOptions = "<blobfuseOptions>",
IdentityReference = default,
},
NfsMountConfiguration = new NfsMountConfiguration("<source>", "<relativeMountPath>")
{
MountOptions = "<mountOptions>",
},
CifsMountConfiguration = new CifsMountConfiguration("<username>", "<source>", "<relativeMountPath>", "<password>")
{
MountOptions = "<mountOptions>",
},
AzureFileShareConfiguration = new AzureFileShareConfiguration("<accountName>", "<azureFileUrl>", "<accountKey>", "<relativeMountPath>")
{
MountOptions = "<mountOptions>",
},
}},
TargetNodeCommunicationMode = BatchNodeCommunicationMode.Default,
UpgradePolicy = new UpgradePolicy(UpgradeMode.Automatic)
{
AutomaticOsUpgradePolicy = new AutomaticOsUpgradePolicy
{
DisableAutomaticRollback = true,
EnableAutomaticOsUpgrade = true,
UseRollingUpgradePolicy = true,
OsRollingUpgradeDeferral = true,
},
RollingUpgradePolicy = new RollingUpgradePolicy
{
EnableCrossZoneUpgrade = true,
MaxBatchInstancePercent = 1234,
MaxUnhealthyInstancePercent = 1234,
MaxUnhealthyUpgradedInstancePercent = 1234,
PauseTimeBetweenBatches = XmlConvert.ToTimeSpan("PT1H23M45S"),
PrioritizeUnhealthyInstances = true,
RollbackFailedInstancesOnPolicyBreach = true,
},
},
},
},
})
{
Priority = 1234,
AllowTaskPreemption = true,
MaxParallelTasks = 1234,
Constraints = new BatchJobConstraints
{
MaxWallClockTime = XmlConvert.ToTimeSpan("PT1H23M45S"),
MaxTaskRetryCount = 1234,
},
OnAllTasksComplete = OnAllBatchTasksComplete.NoAction,
Metadata = { default },
};
Response response = client.ReplaceJob("<jobId>", job, timeOutInSeconds: 1234, ocpdate: DateTimeOffset.Parse("Tue, 10 May 2022 18:57:31 GMT"), requestConditions: null);
Remarks
This fully replaces all the updatable properties of the Job. For example, if the Job has constraints associated with it and if constraints is not specified with this request, then the Batch service will remove the existing constraints.
Applies to
ReplaceJob(String, RequestContent, Nullable<Int32>, Nullable<DateTimeOffset>, RequestConditions, RequestContext)
- Source:
- BatchClient.cs
[Protocol Method] Updates the properties of the specified Job.
- This protocol method allows explicit creation of the request and processing of the response for advanced scenarios.
- Please try the simpler ReplaceJob(String, BatchJob, Nullable<Int32>, Nullable<DateTimeOffset>, RequestConditions, CancellationToken) convenience overload with strongly typed models first.
public virtual Azure.Response ReplaceJob (string jobId, Azure.Core.RequestContent content, int? timeOutInSeconds = default, DateTimeOffset? ocpdate = default, Azure.RequestConditions requestConditions = default, Azure.RequestContext context = default);
abstract member ReplaceJob : string * Azure.Core.RequestContent * Nullable<int> * Nullable<DateTimeOffset> * Azure.RequestConditions * Azure.RequestContext -> Azure.Response
override this.ReplaceJob : string * Azure.Core.RequestContent * Nullable<int> * Nullable<DateTimeOffset> * Azure.RequestConditions * Azure.RequestContext -> Azure.Response
Public Overridable Function ReplaceJob (jobId As String, content As RequestContent, Optional timeOutInSeconds As Nullable(Of Integer) = Nothing, Optional ocpdate As Nullable(Of DateTimeOffset) = Nothing, Optional requestConditions As RequestConditions = Nothing, Optional context As RequestContext = Nothing) As Response
Parameters
- jobId
- String
The ID of the Job whose properties you want to update.
- content
- RequestContent
The content to send as the body of the request.
The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.".
- ocpdate
- Nullable<DateTimeOffset>
The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.
- requestConditions
- RequestConditions
The content to send as the request conditions of the request.
- context
- RequestContext
The request context, which can override default behaviors of the client pipeline on a per-call basis.
Returns
The response returned from the service.
Exceptions
jobId
or content
is null.
jobId
is an empty string, and was expected to be non-empty.
Service returned a non-success status code.
Examples
This sample shows how to call ReplaceJob.
Uri endpoint = new Uri("<https://my-service.azure.com>");
TokenCredential credential = new DefaultAzureCredential();
BatchClient client = new BatchClient(endpoint, credential);
using RequestContent content = RequestContent.Create(new
{
poolInfo = new object(),
});
Response response = client.ReplaceJob("<jobId>", content);
Console.WriteLine(response.Status);
This sample shows how to call ReplaceJob with all parameters and request content.
Uri endpoint = new Uri("<https://my-service.azure.com>");
TokenCredential credential = new DefaultAzureCredential();
BatchClient client = new BatchClient(endpoint, credential);
using RequestContent content = RequestContent.Create(new
{
priority = 1234,
allowTaskPreemption = true,
maxParallelTasks = 1234,
constraints = new
{
maxWallClockTime = "PT1H23M45S",
maxTaskRetryCount = 1234,
},
poolInfo = new
{
poolId = "<poolId>",
autoPoolSpecification = new
{
autoPoolIdPrefix = "<autoPoolIdPrefix>",
poolLifetimeOption = "jobschedule",
keepAlive = true,
pool = new
{
displayName = "<displayName>",
vmSize = "<vmSize>",
virtualMachineConfiguration = new
{
imageReference = new
{
publisher = "<publisher>",
offer = "<offer>",
sku = "<sku>",
version = "<version>",
virtualMachineImageId = "<virtualMachineImageId>",
},
nodeAgentSKUId = "<nodeAgentSKUId>",
windowsConfiguration = new
{
enableAutomaticUpdates = true,
},
dataDisks = new object[]
{
new
{
lun = 1234,
caching = "none",
diskSizeGB = 1234,
storageAccountType = "standard_lrs",
}
},
licenseType = "<licenseType>",
containerConfiguration = new
{
type = "dockerCompatible",
containerImageNames = new object[]
{
"<containerImageNames>"
},
containerRegistries = new object[]
{
new
{
username = "<username>",
password = "<password>",
registryServer = "<registryServer>",
identityReference = new
{
resourceId = "<resourceId>",
},
}
},
},
diskEncryptionConfiguration = new
{
targets = new object[]
{
"osdisk"
},
},
nodePlacementConfiguration = new
{
policy = "regional",
},
extensions = new object[]
{
new
{
name = "<name>",
publisher = "<publisher>",
type = "<type>",
typeHandlerVersion = "<typeHandlerVersion>",
autoUpgradeMinorVersion = true,
enableAutomaticUpgrade = true,
settings = new
{
key = "<settings>",
},
protectedSettings = new
{
key = "<protectedSettings>",
},
provisionAfterExtensions = new object[]
{
"<provisionAfterExtensions>"
},
}
},
osDisk = new
{
ephemeralOSDiskSettings = new
{
placement = "cachedisk",
},
caching = "none",
diskSizeGB = 1234,
managedDisk = new
{
storageAccountType = "standard_lrs",
},
writeAcceleratorEnabled = true,
},
securityProfile = new
{
encryptionAtHost = true,
securityType = "trustedLaunch",
uefiSettings = new
{
secureBootEnabled = true,
vTpmEnabled = true,
},
},
serviceArtifactReference = new
{
id = "<id>",
},
},
taskSlotsPerNode = 1234,
taskSchedulingPolicy = new
{
nodeFillType = "spread",
},
resizeTimeout = "PT1H23M45S",
resourceTags = "<resourceTags>",
targetDedicatedNodes = 1234,
targetLowPriorityNodes = 1234,
enableAutoScale = true,
autoScaleFormula = "<autoScaleFormula>",
autoScaleEvaluationInterval = "PT1H23M45S",
enableInterNodeCommunication = true,
networkConfiguration = new
{
subnetId = "<subnetId>",
dynamicVNetAssignmentScope = "none",
endpointConfiguration = new
{
inboundNATPools = new object[]
{
new
{
name = "<name>",
protocol = "tcp",
backendPort = 1234,
frontendPortRangeStart = 1234,
frontendPortRangeEnd = 1234,
networkSecurityGroupRules = new object[]
{
new
{
priority = 1234,
access = "allow",
sourceAddressPrefix = "<sourceAddressPrefix>",
sourcePortRanges = new object[]
{
"<sourcePortRanges>"
},
}
},
}
},
},
publicIPAddressConfiguration = new
{
provision = "batchmanaged",
ipAddressIds = new object[]
{
"<ipAddressIds>"
},
},
enableAcceleratedNetworking = true,
},
startTask = new
{
commandLine = "<commandLine>",
containerSettings = new
{
containerRunOptions = "<containerRunOptions>",
imageName = "<imageName>",
workingDirectory = "taskWorkingDirectory",
},
resourceFiles = new object[]
{
new
{
autoStorageContainerName = "<autoStorageContainerName>",
storageContainerUrl = "<storageContainerUrl>",
httpUrl = "<httpUrl>",
blobPrefix = "<blobPrefix>",
filePath = "<filePath>",
fileMode = "<fileMode>",
}
},
environmentSettings = new object[]
{
new
{
name = "<name>",
value = "<value>",
}
},
userIdentity = new
{
username = "<username>",
autoUser = new
{
scope = "task",
elevationLevel = "nonadmin",
},
},
maxTaskRetryCount = 1234,
waitForSuccess = true,
},
applicationPackageReferences = new object[]
{
new
{
applicationId = "<applicationId>",
version = "<version>",
}
},
userAccounts = new object[]
{
new
{
name = "<name>",
password = "<password>",
elevationLevel = "nonadmin",
linuxUserConfiguration = new
{
uid = 1234,
gid = 1234,
sshPrivateKey = "<sshPrivateKey>",
},
windowsUserConfiguration = new
{
loginMode = "batch",
},
}
},
metadata = new object[]
{
new
{
name = "<name>",
value = "<value>",
}
},
mountConfiguration = new object[]
{
new
{
azureBlobFileSystemConfiguration = new
{
accountName = "<accountName>",
containerName = "<containerName>",
accountKey = "<accountKey>",
sasKey = "<sasKey>",
blobfuseOptions = "<blobfuseOptions>",
relativeMountPath = "<relativeMountPath>",
},
nfsMountConfiguration = new
{
source = "<source>",
relativeMountPath = "<relativeMountPath>",
mountOptions = "<mountOptions>",
},
cifsMountConfiguration = new
{
username = "<username>",
source = "<source>",
relativeMountPath = "<relativeMountPath>",
mountOptions = "<mountOptions>",
password = "<password>",
},
azureFileShareConfiguration = new
{
accountName = "<accountName>",
azureFileUrl = "<azureFileUrl>",
accountKey = "<accountKey>",
relativeMountPath = "<relativeMountPath>",
mountOptions = "<mountOptions>",
},
}
},
targetNodeCommunicationMode = "default",
upgradePolicy = new
{
mode = "automatic",
automaticOSUpgradePolicy = new
{
disableAutomaticRollback = true,
enableAutomaticOSUpgrade = true,
useRollingUpgradePolicy = true,
osRollingUpgradeDeferral = true,
},
rollingUpgradePolicy = new
{
enableCrossZoneUpgrade = true,
maxBatchInstancePercent = 1234,
maxUnhealthyInstancePercent = 1234,
maxUnhealthyUpgradedInstancePercent = 1234,
pauseTimeBetweenBatches = "PT1H23M45S",
prioritizeUnhealthyInstances = true,
rollbackFailedInstancesOnPolicyBreach = true,
},
},
},
},
},
onAllTasksComplete = "noaction",
metadata = new object[]
{
null
},
});
Response response = client.ReplaceJob("<jobId>", content, timeOutInSeconds: 1234, ocpdate: DateTimeOffset.Parse("Tue, 10 May 2022 18:57:31 GMT"), requestConditions: null);
Console.WriteLine(response.Status);