解決Terraform添加CDN網域名稱時,出現HTTPS配置報錯的問題。
問題現象
Terraform給出的報錯日誌如下:
│ Error: [ERROR] terraform-provider-alicloud/alicloud/resource_alicloud_cdn_domain_new.go:576: Resource public1.sige-test3.com SetCdnDomainSSLCertificate Failed!!! [SDK alibaba-cloud-sdk-go ERROR]:
│ SDKError:
│ StatusCode: 400
│ Code: SSLPri.MissingParameter
│ Message: code: 400, The SSLPri parameter is required. request id: F5512B73-4FCE-56DD-8F05-19BA81C701F1
│ Data: {"Code":"SSLPri.MissingParameter","HostId":"cdn.aliyuncs.com","Message":"The SSLPri parameter is required.","Recommend":"https://api.alibabacloud.com/troubleshoot?intl_lang=EN_US&q=SSLPri.MissingParameter&product=Cdn&requestId=F5512B73-4FCE-56DD-8F05-19BA81C701F1","RequestId":"F5512B73-4FCE-56DD-8F05-19BA81C701F1"}
│
│ with alicloud_cdn_domain_new.default,
│ on main.tf line 1, in resource "alicloud_cdn_domain_new" "default":
│ 1: resource "alicloud_cdn_domain_new" "default" 問題原因
在使用alicloud_cdn_domain_new建立CDN網域名稱並且添加HTTPS認證的時候,客戶在傳參裡面設定了cert_type參數,並且設定值為cas(表示使用阿里雲認證中心的認證)。
在cert_type="cas"的情況下,若為阿里雲國際站帳號,則必須同時設定cert_region="ap-southeast-1"(國際的阿里雲認證中心);而阿里雲中國站帳號,則可以不設定,因為cert_region的預設值是cn-hangzhou(中國內地的阿里雲認證中心)。
更多關於alicloud_cdn_domain_new的參數資訊,敬請參見alicloud_cdn_domain_new。

解決方案
在使用alicloud_cdn_domain_new建立CDN網域名稱且添加HTTPS認證的時候,當cert_type設定為"cas"時:
若當前帳號是阿里雲國際站帳號,
cert_region必填,且cert_region="ap-southeast-1"。若當前帳號不是阿里雲國際帳號,
cert_region非必填,cert_region="cn-hangzhou"。
例如:
# 添加一個加速網域名稱
resource "alicloud_cdn_domain_new" "domain" {
domain_name = "mycdndomain.alicloud-provider.cn"
cdn_type = "download"
scope = "overseas"
sources {
content = "myoss.oss-rg-china-mainland.aliyuncs.com"
type = "oss"
priority = "20"
port = 80
weight = "15"
}
# 認證配置
# cert_id 需現在阿里雲認證中心購買或上傳認證並記錄其ID
# cert_type=“cas” 表示使用阿里雲認證中心的認證
# cert_regin = "ap-southeast-1" 表示使用國際站的阿里雲認證中心
certificate_config {
cert_id = "1111111"
cert_name = "cert-2987438279834"
cert_type = "cas"
cert_region = "ap-southeast-1"
}
}