属性 服务令牌不能为空
property servicetoken cannot be empty
"certificatefordns":{
"Type" : "AWS::CertificateManager::Certificate",
"Properties" : {
"DomainName" : "*.test-elb.acb.com",
"ValidationMethod" : "DNS"
},
"CertificateDNSRecord":{
"Type": "Custom::CertificateDNSRecord",
"Properties": {
"CertificateArn": {
"Ref": "certificatefordns"
},
"DomainName": "*.test-elb.acb.com"
}},
"DNS": {
"Type": "AWS::Route53::RecordSetGroup",
"Properties": {
"HostedZoneId": "Z01724793QXGY7AZ",
"RecordSets": [
{
"Name": {
"Ref": "AlternateDomainNames"
},
"Type": "A",
"AliasTarget": {
"HostedZoneId": "Z23TAZ6MNIO",
"DNSName": {
"Fn::GetAtt": [
"WebLoadBalancer",
"DNSName"
]
}
}
},
{
"Name": {
"Fn::Sub": "${CertificateDNSRecord.Name}"
},
"Type": {
"Fn::Sub": "${CertificateDNSRecord.Type}"
},
"TTL": "60",
"Weight": 1,
"SetIdentifier": "*.test-elb.acb.com",
"ResourceRecords": [
{
"Fn::Sub": "${CertificateDNSRecord.Value}"
}
]
}
]
}
}
您好团队,
我想为负载均衡器创建一个新证书,借助此 json 代码,我能够创建该证书,但一段时间后它将通过一个错误 属性 servicetoken不能为空 所以当我搜索时,我很困惑我需要创建 lambda 函数还是什么?
或者有没有其他方法可以拒绝此错误。
请指导我。
CloudFormation 中的自定义资源 需要 ServiceToken:
- 服务提供商提供给模板开发人员以访问服务的服务令牌,例如 Amazon SNS 主题 ARN 或 Lambda 函数 ARN 。服务令牌必须来自您正在创建堆栈的同一区域。
你的 Custom::CertificateDNSRecord
不见了。所以你必须提供它。
如果自定义资源用于验证 ACM 认证,您可以勾选新选项,该选项不需要自定义 lambda 函数:
是的,我有自己的解决方案。我们只需要使用这个模板就可以了。
"certificatefordns":{
"Type" : "AWS::CertificateManager::Certificate",
"Properties" : {
"DomainName" : "*.test-elb.acb.com",
"ValidationMethod" : "DNS",
"DomainValidationOptions": [
{
"DomainName": {
"Ref": "AlternateDomainNames"
},
"HostedZoneId": "Z01724793QXGL8FOZ"
}]
}
},
它将创建一个新证书。
"certificatefordns":{
"Type" : "AWS::CertificateManager::Certificate",
"Properties" : {
"DomainName" : "*.test-elb.acb.com",
"ValidationMethod" : "DNS"
},
"CertificateDNSRecord":{
"Type": "Custom::CertificateDNSRecord",
"Properties": {
"CertificateArn": {
"Ref": "certificatefordns"
},
"DomainName": "*.test-elb.acb.com"
}},
"DNS": {
"Type": "AWS::Route53::RecordSetGroup",
"Properties": {
"HostedZoneId": "Z01724793QXGY7AZ",
"RecordSets": [
{
"Name": {
"Ref": "AlternateDomainNames"
},
"Type": "A",
"AliasTarget": {
"HostedZoneId": "Z23TAZ6MNIO",
"DNSName": {
"Fn::GetAtt": [
"WebLoadBalancer",
"DNSName"
]
}
}
},
{
"Name": {
"Fn::Sub": "${CertificateDNSRecord.Name}"
},
"Type": {
"Fn::Sub": "${CertificateDNSRecord.Type}"
},
"TTL": "60",
"Weight": 1,
"SetIdentifier": "*.test-elb.acb.com",
"ResourceRecords": [
{
"Fn::Sub": "${CertificateDNSRecord.Value}"
}
]
}
]
}
}
您好团队, 我想为负载均衡器创建一个新证书,借助此 json 代码,我能够创建该证书,但一段时间后它将通过一个错误 属性 servicetoken不能为空 所以当我搜索时,我很困惑我需要创建 lambda 函数还是什么? 或者有没有其他方法可以拒绝此错误。 请指导我。
CloudFormation 中的自定义资源 需要 ServiceToken:
- 服务提供商提供给模板开发人员以访问服务的服务令牌,例如 Amazon SNS 主题 ARN 或 Lambda 函数 ARN 。服务令牌必须来自您正在创建堆栈的同一区域。
你的 Custom::CertificateDNSRecord
不见了。所以你必须提供它。
如果自定义资源用于验证 ACM 认证,您可以勾选新选项,该选项不需要自定义 lambda 函数:
是的,我有自己的解决方案。我们只需要使用这个模板就可以了。
"certificatefordns":{
"Type" : "AWS::CertificateManager::Certificate",
"Properties" : {
"DomainName" : "*.test-elb.acb.com",
"ValidationMethod" : "DNS",
"DomainValidationOptions": [
{
"DomainName": {
"Ref": "AlternateDomainNames"
},
"HostedZoneId": "Z01724793QXGL8FOZ"
}]
}
},
它将创建一个新证书。