我已经找到了如何通过UI上传/管理Azure批处理作业应用程序包:
https://docs.microsoft.com/en-us/azure/batch/batch-application-packages
以及如何以编程方式上载和管理资源包:
但我似乎无法将2和2放在如何以编程方式管理应用程序包.在设置批处理作业时,是否有可以调用上传/管理应用程序包的API端点?
由于这不是很简单,我会写下我的发现.这些是通过无人值守的应用程序以编程方式上载应用程序包的步骤 - 无需用户输入(例如Azure凭据).
在Azure门户中:
Web app / API)在你的代码中:
BatchManagementClientApplicationPackageOperationsExtensions.CreateAsync方法,该方法应该返回一个ApplicationPackageApplicationPackage 包含StorageUrl,现在可用于通过存储API上传应用程序包ApplicationPackage您必须通过激活它ApplicationPackageOperationsExtensions.ActivateAsync把整个代码放在一起看起来像这样:
private const string ResourceUri = "https://management.core.windows.net/";
private const string AuthUri = "https://login.microsoftonline.com/" + "{TenantId}";
private const string ApplicationId = "{ApplicationId}";
private const string ApplicationSecretKey = "{ApplicationSecretKey}";
private const string SubscriptionId = "{SubscriptionId}";
private const string ResourceGroupName = "{ResourceGroupName}";
private const string BatchAccountName = "{BatchAccountName}";
private async Task UploadApplicationPackageAsync() {
// get the access token
var authContext = new AuthenticationContext(AuthUri);
var authResult = await authContext.AcquireTokenAsync(ResourceUri, new ClientCredential(ApplicationId, ApplicationSecretKey)).ConfigureAwait(false);
// create the BatchManagementClient and set the subscription id
var bmc = new BatchManagementClient(new TokenCredentials(authResult.AccessToken)) {
SubscriptionId = SubscriptionId
};
// create the application package
var createResult = await bmc.ApplicationPackage.CreateWithHttpMessagesAsync(ResourceGroupName, BatchAccountName, "MyPackage", "1.0").ConfigureAwait(false);
// upload the package to the blob storage
var cloudBlockBlob = new CloudBlockBlob(new Uri(createResult.Body.StorageUrl));
cloudBlockBlob.Properties.ContentType = "application/x-zip-compressed";
await cloudBlockBlob.UploadFromFileAsync("myZip.zip").ConfigureAwait(false);
// create the application package
var activateResult = await bmc.ApplicationPackage.ActivateWithHttpMessagesAsync(ResourceGroupName, BatchAccountName, "MyPackage", "1.0", "zip").ConfigureAwait(false);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |