能否通过Terraform部署Azure Cloud Services Extended Support
Terraform对Azure Cloud Services Extended Support的部署支持说明
Terraform官方AzureRM提供程序原生支持Azure Cloud Services Extended Support(云服务扩展支持)的全生命周期部署配置,不存在功能限制。
- 对应可用的正式资源为
azurerm_cloud_service,从AzureRM v3.0.0及以上稳定版本开始正式GA,可直接用于生产环境,不需要依赖第三方社区模块、ARM模板嵌套或者自定义脚本绕路实现。 - 你之前没找到对应实现代码,大概率是混淆了经典部署模型的旧版Azure Cloud Services和扩展支持版:经典版云服务属于Azure即将下线的老资源,确实没有原生Terraform支持,只有扩展支持版本有对应官方资源。
- 基础部署代码框架参考如下,你可以根据实际业务参数补全配置:
terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = ">=3.0.0" } } } provider "azurerm" { features {} } # 前置资源组 resource "azurerm_resource_group" "demo" { name = "cloudservice-demo-rg" location = "China East 2" # 按需替换为你使用的Azure区域 } # 云服务扩展支持核心资源 resource "azurerm_cloud_service" "demo" { name = "demo-cloudservice" location = azurerm_resource_group.demo.location resource_group_name = azurerm_resource_group.demo.name # 替换为你自己编译生成的cspkg包可访问地址 package_url = "https://your-storage-account.blob.core.chinacloudapi.cn/cspkg/demo.cspkg" # 引用本地的cscfg配置文件 configuration = file("${path.module}/ServiceConfiguration.Cloud.cscfg") # 按实际角色定义配置角色参数 role { name = "WebRole" sku_name = "Standard_D1_v2" instances = 2 } # 证书、诊断扩展、远程桌面、扩展配置可按需在资源块内嵌套对应参数 }
- 配置注意事项:
- 部署前需要提前将编译好的
.cspkg服务包上传到可被Azure资源管理器访问的存储位置,不要放在本地路径直接引用 - 如果部署用到自定义证书、远程桌面证书,需要提前将证书上传到同资源组下的Key Vault,配置时直接引用Key Vault中的证书标识符即可
- 自动伸缩规则、告警关联等周边配置可以通过对应
azurerm_monitor_autoscale_setting等独立资源对接,不需要在云服务资源内配置
- 部署前需要提前将编译好的
内容的提问来源于stack exchange,提问作者Aniket
相关产品推荐
相关产品推荐

