如何创建Azure资源
1. 前言
Azure支持通过多种方式创建资源, 一般来说, 我们应该尽量减少手工创建资源。
2. 手动创建
这是最常见和最不推荐的,当需要的资源比较多的时候, 每次都需要手动工作来重现,并为非常容易人为错误留下余地。
3. 手动创建资源并保存脚本
有些人通过手动创建和保存脚本来解决问题。这也一样会有问题。将Azure资源导出为Json格式的ARM模板时, 通常需要手工调整。
4. 推荐选项
因此,如果不手动创建 Azure 资源,则有以下几种选项。
4.1 Farmer
Farmer是一个.net的一个领域特定语言(DSL: domain-specific-language),用于快速生成Azure资源管理器(ARM)模板。Farmer是商业支持的,开源的,免费使用的。
- Farmer - 使可重复的 Azure 部署变得简单!
- 从 F# 生成 ARM 模板
4.2 Bicep (推荐)
Bicep 是微软官方发布的一种领域特定语言(DSL),用于以声明方式部署 Azure 资源。它旨在通过更简洁的语法、改进的类型安全性以及对模块化和代码重用的更好支持来大大简化创作体验。Bicep 是对 ARM 和 ARM 模板的透明抽象,这意味着可以在 ARM 模板中完成的任何操作都可以在 Bicep 中完成。
Bicep 代码被转译为标准 ARM 模板 JSON 文件,从而有效地将 ARM 模板视为中间语言 (IL)。
- Bicep - 用于描述和部署 Azure 资源的声明性语言
- 免费,完全受微软支持
- 具有“az”命令集成
- VS Code的扩展,用于编写ARM Bicep文件 ⭐️
- 幕后 - 编译成 ARM JSON 模板进行部署
- 语法比 ARM JSON 简单得多
- 自动处理资源依赖关系
- 用于发布版本化和可重用体系结构的专用模块注册表
4.3 其他收费服务
迁移到自动化基础设施即代码(IaC)解决方案时,另一种选择是迁移到 Pulumi 或 Terraform 等付费提供商。如果你使用多个云,或者想要直接控制软件安装和基础架构,这些解决方案是理想的选择。
- 这两种工具都很棒,并且提供免费版本
- 付费版本为大型团队提供更多好处,提供管理大型的基础结构解决方案的能力
- Terraform 使用 HashiCorp Configuration Language HCL
- 像 YAML 一样,但功能更强大
- Terraform Quick Start Demo
- Pulumi 使用真实代码(C#、TypeScript、Go 和 Python)作为基础设施,而不是 JSON/YAML
Pulumi的Demo, 其中用C#定义Azure资源, 并从控制台运行”pulumi up”将资源部署到Azure