使azure资源的部署和管理尽可能简单和智能的脚本语言。

azure-script的Python项目详细描述


#azure script

一种创建的脚本语言,使azure资源的部署和管理尽可能简单和智能。
为了获得接近零的学习曲线,并利用您已经了解的有关az cli的所有信息,甚至帮助您了解更多有关它的信息,sytanx语言与az cli命令非常相似。它还具有一些额外的独特功能,但您可以重用所有现有的az cli经验,以便立即开始使用azure脚本。

它将显著减少执行az cli命令和创建shell脚本以部署azure reso所需的自定义代码量。资源。

阅读有关azure脚本[此处](待办事项)的更多信息。

[![生成状态](https://dev.azure.com/epicstuff/az%20cli%20script/\u apis/build/status/build)(https://dev.azure.com/epicstuff/az%20cli%20script/\u build/latest?definitionid=27)


\这是一个实验,尚未得到az cli团队的正式支持和维护。我们的顾客觉得它很有用,我们认为你也可以。请尝试一下,在您的项目中使用它,提交问题,并帮助我们继续开发它。


-在所有命令中保持命令签名和选项的一致性:在某些az命令中,资源名不是使用--name选项指定的。az脚本将更正此错误。
-与第三方cli(如databricks cli或kubernetes cli)集成
-提供上下文感知环境,以便每个命令都知道以前发生了什么,并可以相应地执行

例如,如果您希望将所有资源部署到"eastus"区域y您只需编写

```
location-use'eastus';
````

所有后续命令都将使用该位置,如果不是在命令本身中显式重写的话。**相同的逻辑可以应用于依赖其他资源的任何资源。**例如,存储帐户或VPN。

\language

例如,要使用az cli创建一个存储帐户,您可以键入类似

````
az group create-n'dmk1'-l'eastus'
az storage account create-g'dmk1'-n'dmk1 storage'-l'eastus'-sku'standard'lrs'
az eventhubs namespace create-g'dmk1'-n'dmk1 inset'-l'eastus'的内容--sku"标准"--容量20
az eventhubs eventhub create-g"dmk1"-n"dmk1inset-32"--消息租用1--分区计数32--命名空间名称"dmk1inset"
az eventhubs eventhub消费者组create-g"dmk1"-n"cosmos"--eventhub名称"dmk1inset-32"--命名空间名称"dmk1inset"
```

使用az脚本,您可以编写

```
位置使用"eastus";


组创建"dmk1";


存储帐户创建"dmk1存储"(
sku:"标准配置"
);

eventhubs命名空间创建"dmk1接收"(
sku:"标准配置",
容量:20
);

eventhubs eventhub创建"dmk1inset-32"(
消息保留:1,
分区计数:32
);

eventhubs eventhub消费者组创建"cosmos";
`````

这不是更好吗?

真的很简单!.

(不知何故)现在支持的资源是

-应用程序服务
-应用程序洞察
-cosmos db
-事件网格
-事件中心
-扩展
-功能应用程序
-hdinsight
-物联网
-资源组
-服务结构
-sql db
-sql server
-存储

我将在不久的将来发布,敬请关注。

\install


azure脚本已经通过扩展集成到az cli中。该扩展尚未在正式的az-cli扩展存储库中推送,因为它仍在大量开发中,但是可以通过手动指定源代码来使用。只要运行以下命令:

az extension add--source https://aka.ms/azure_script-latest-py2.py3 none any.whl

您可能需要查看samples文件夹以开始使用az cli脚本:

[azure script samples](./samples)

\usage


>运行"az script run"命令,传递要编译的脚本文件。

````
az script run--script<;filename.azs>;
```

默认情况下,将生成执行脚本文件中定义的操作所需的az cli命令。


s://en.wikipedia.org/wiki/windows_u subsystem戋u for戋linux)bash。


--输出选项将生成代码到指定的文件中,而不是将结果发送到控制台

az script run--script.\samples\e2e-2.azs--output file.\samples\e2e-2.azs.sh


o正确运行生成的bash脚本。例如,不提供"package.zip"或"index.json",因为它们只是在示例中用作占位符,以显示可以使用azure脚本执行的操作。

\compilation

整个过程是完全可扩展的,因此将来可以创建生成ARM模板的插件,甚至可以创建直接的rest api调用。



目前这只是一个实验。让我们看看它的发展方向……

,但如果你好奇,我有一个想法:

-支持第三方azure资源(如azure databricks),以便提供通用、统一的基础架构,即代码体验
-支持语法突出显示visual studio代码(完成:https://github.com/yorek/azure script vscode)
-在Visual Studio代码中支持并完成代码
-在Visual Studio代码中支持运行和调试.azs脚本
-运行预验证检查(例如检查脚本中引用的所有文件是否实际存在)。
-添加选项要在生成的脚本中注入预验证检查,在适当的时候(例如使用az cli)
-添加模板支持(使用[jinjia](http://jinja.pocoo.org/_))
-构建依赖关系图并尽可能并行运行az cli命令
-使用依赖关系图h,甚至在运行命令之前验证该命令
-强制应用最佳实践和众所周知的模式
-定义处理错误的聪明方法,例如:
-自动重试
-中断脚本
-采取补偿操作
-生成powershell脚本
-生成arm模板
-执行命令而不是生成脚本
-添加交互模式

只需分叉存储库,进行更改并提交一个请求。



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null