【Azure Batch】在中国区批处理服务(Mooncake Batch Account)上实验自动池(Auto Pool)的创建/删除
问题描述
在Azure Batch的介绍文档中,提出了自动池的概念, 它可以在任务完成后,自动删除Pool资源,详细介绍:https://docs.azure.cn/zh-cn/batch/nodes-and-pools#autopools& https://learn.microsoft.com/zh-cn/rest/api/batchservice/job/add?tabs=HTTP#autopoolspecification
自动池是在提交作业时由 Batch 服务创建的池,而不是在创建将在池中运行的作业之前创建的。
Batch 服务将根据指定的特征管理自动池的生存期。
大多数情况下,这些池也设置为在其作业完成后自动删除。
虽然在自动池的文档中包含了示例,但是示例中的创建的Task需要一个 myprogram2.exe 应用,并且设置的 cloudServiceConfiguration 属性值已经不在可用。 所以,为了简化在中国区的Batch Account服务上实现自动池进行了本次实验。

问题解答
基于示例中,创建Task的 JSON 内容,需要做一下几点的修改:
1) POST 的请求 URL 从 Batch Account Overview 页面中 Account endpoint 复制。
account.region.batch.azure.com/jobs?api-version=2023-05-01.17.0 //变为
<your batch account>.<chinanorth3>.batch.chinacloudapi.cn/jobs?api-version=2023-05-01.17.0
2) Task中的commandLine内容修改为简单的CMD指令
"commandLine": "cmd /c \"echo %date% %time% & set AZ_BATCH & timeout /t 90 > NUL & timeout /nobreak /t 10000 & echo 'what is your name?' & echo %date% %time% \"",
3) Pool 的信息,指定 vm size 和 image
"pool": {
"vmSize": "STANDARD_A1_V2",
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "microsoftwindowsserver",
"offer": "windowsserver",
"sku": "2019-datacenter-core-smalldisk",
"version": "latest"
},
"nodeAgentSKUId": "batch.node.windows amd64",
"licenseType": null,
"nodePlacementConfiguration": {
"policy": "Regional"
}
},
4)此处,获取Authorization的方式为从Azure门户上(F12 --> Network Trace )抓取Batch Task页面的Token

完成以上4步后,即可通过Postman或其他REST API工具发送POST请求。
完整的Task Body内容为:
{
"id": "jobId-2",
"priority": 100,
"constraints": {
"maxWallClockTime": "PT1H",
"maxTaskRetryCount": -1
},
"jobManagerTask": {
"id": "taskId",
"commandLine": "cmd /c \"echo %date% %time% & set AZ_BATCH & timeout /t 90 > NUL & timeout /nobreak /t 10000 & echo 'what is your name?' & echo %date% %time% \"",
"constraints": {
"maxWallClockTime": "PT1H",
"maxTaskRetryCount": 0,
"retentionTime": "PT1H"
},
"requiredSlots": 2,
"killJobOnCompletion": false,
"userIdentity": {
"autoUser": {
"scope": "task",
"elevationLevel": "admin"
}
},
"runExclusive": true
},
"poolInfo": {
"autoPoolSpecification": {
"autoPoolIdPrefix": "mypool",
"poolLifetimeOption": "job",
"pool": {
"vmSize": "STANDARD_A1_V2",
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "microsoftwindowsserver",
"offer": "windowsserver",
"sku": "2019-datacenter-core-smalldisk",
"version": "latest"
},
"nodeAgentSKUId": "batch.node.windows amd64",
"licenseType": null,
"nodePlacementConfiguration": {
"policy": "Regional"
}
},
"resizeTimeout": "PT15M",
"targetDedicatedNodes": 1,
"targetLowPriorityNodes": 0,
"taskSlotsPerNode": 1,
"taskSchedulingPolicy": {
"nodeFillType": "spread"
},
"enableAutoScale": false,
"enableInterNodeCommunication": true,
"metadata": [
{
"name": "myproperty",
"value": "myvalue"
}
],
"targetNodeCommunicationMode": "default"
}
}
}
}
请求的URL及Header:
POST https://XXXXXXXXXXXXXX.chinanorth3.batch.chinacloudapi.cn/jobs?api-version=2023-05-01.17.0
Accept: */*
User-Agent: Thunder Client (https://www.thunderclient.com)
Content-Type: application/json; odata=minimalmetadata
Authorization: Bearer Token
示例Demo:

参考资料
自动池: https://docs.azure.cn/zh-cn/batch/nodes-and-pools#autopools
Job - Add : https://learn.microsoft.com/zh-cn/rest/api/batchservice/job/add?tabs=HTTP#autopoolspecification
【Azure Batch】在中国区批处理服务(Mooncake Batch Account)上实验自动池(Auto Pool)的创建/删除的更多相关文章
- 批处理框架-spring Batch
并发处理业务 数据量大,并发度高,要支持事物,回滚,并发机制.事务.并发.监控.执行等,并不提供相应的调度功能.因此,如果我们希望批处理任务定期执行,可结合 Quartz 等成熟的调度框架实现. 业务 ...
- 【转】大数据批处理框架 Spring Batch全面解析
如今微服务架构讨论的如火如荼.但在企业架构里除了大量的OLTP交易外,还存在海量的批处理交易.在诸如银行的金融机构中,每天有3-4万笔的批处理作业需要处理.针对OLTP,业界有大量的开源框架.优秀的架 ...
- [Spring Batch 系列] 第一节 初识 Spring Batch
距离开始使用 Spring Batch 有一段时间了,一直没有时间整理,现在项目即将完结,整理下这段时间学习和使用经历. 官网地址:http://projects.spring.io/spring-b ...
- [SDK2.2]Windows Azure Storage (15) 使用WCF服务,将本地图片上传至Azure Storage (上) 服务器端代码
<Windows Azure Platform 系列文章目录> 这几天工作上的内容,把项目文件和源代码拿出来给大家分享下. 源代码下载:Part1 Part2 Part3 我们在写WEB服 ...
- Azure SQL 数据库:新服务级别问答
ShawnBice 2014 年 5 月 1 日上午 11:10 本月初,我们庆祝了SQL Server 2014 的推出,并宣布正式发布分析平台系统,同时分享了智能系统服务预览版.Quentin ...
- Azure 中快速搭建 FTPS 服务
FTP,FTPS 与 SFTP 的区别 FTP (File Transfer Protocol)是一种常用的文件传输协议,在日常工作中被广泛应用.不过,FTP 协议使用明文传输.如果文件传输发生在公网 ...
- Azure ARM (12) ARM模式下,在负载均衡器上设置多个公网IP地址
<Windows Azure Platform 系列文章目录> 最近在帮助一个客户设置WAF (Web Application Firewall),WAF厂商要求在负载均衡器上,设置多个公 ...
- [New Portal]Windows Azure Virtual Machine (21) 将本地Hyper-V的VM上传至Windows Azure Virtual Machine
<Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,并且保留OS中的内容. 注意:笔者没有执行Syspr ...
- WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法
本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html 昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内 ...
- 将使用netTcp绑定的WCF服务寄宿到IIS7上全记录 (这文章也不错)
原文地址:http://www.cnblogs.com/wengyuli/archive/2010/11/22/wcf-tcp-host-to-iis.html 摘要 在项目开发中,我们可能会适时的选 ...
随机推荐
- Linux 查找并且复制部分文件到其他目录的办法(find xargs {})
最近经常需要从某些文件夹查找部分文件,然后复制到其他目录里面进行进一步的处理 shell 脚本一直在不断的学习中, 最近发现之前看文档还是有疏漏. find . -iname "*fi*&q ...
- /dev/null 先后顺序的问题
https://blog.csdn.net/x1131230123/article/details/114317752
- postman数据驱动(.csv文件)
做api测试的时候同一个接口我们会用大量的数据(正常流/异常流)去验证,要是一种场 景写一个接口的话相对于比较麻烦,这个时候就可以使用数据驱动来实现 1.本地创建一个txt文件,第一行写上字段名,多个 ...
- 基于Spring Cache实现Caffeine、jimDB多级缓存实战
作者: 京东零售 王震 背景 在早期参与涅槃氛围标签中台项目中,前台要求接口性能999要求50ms以下,通过设计Caffeine.ehcache堆外缓存.jimDB三级缓存,利用内存.堆外.jimDB ...
- 使用Ant Design Vue的select搜索框出现的问题
Select 选择器进行搜索 <template> <div> <a-form-item label="分类:"> <a-select p ...
- vue中设置props参数类型
props参数的使用 在使用vue的项目开发的过程中 经常会定义大量的组件使用 这个时候组件中的定义的数据类型就非常重要了 此时我们需要定义组件中需要的数据类型 之前我只知道简单的几个 今天忽然发现原 ...
- es6默认传参 es5的默认传参
在默认传参在实际中座中还是用的比较多的. 它可以用来解决,用户没有给定值的时候,默认给一个指定的值. es6默认传参 es5的默认传参 //es6 function say(a = 4) { cons ...
- 13.4 DirectX内部劫持绘制
相对于外部绘图技术的不稳定性,内部绘制则显得更加流程与稳定,在Dx9环境中,函数EndScene是在绘制3D场景后,用于完成将最终的图像渲染到屏幕的一系列操作的函数.它会将缓冲区中的图像清空,设置视口 ...
- 2.13 PE结构:实现PE代码段加密
代码加密功能的实现原理,首先通过创建一个新的.hack区段,并对该区段进行初始化,接着我们向此区段内写入一段具有动态解密功能的ShellCode汇编指令集,并将程序入口地址修正为ShellCode地址 ...
- 【Linux】常用基本指令大汇总系列(篇一)【超详细的图解保姆教程】
常用基本指令大汇总系列(篇一) 大家好,欢迎大家来到我的博客.从今天开始,博主就要开启一个全新的系列了!Linux操作系统常用基本指令汇总系列,当大家按顺序学完这个系列,在Linux上编写基本的C语言 ...