要实现ACM证书验证的动态Route 53记录,您可以按照以下步骤进行操作:
import boto3
def lambda_handler(event, context):
# 获取验证ACM证书所需的信息
certificate_arn = event['detail']['requestParameters']['certificateArn']
domain_name = event['detail']['requestParameters']['domainName']
validation_domain = event['detail']['requestParameters']['validationDomain']
# 创建Route 53客户端
route53 = boto3.client('route53')
# 创建验证记录
response = route53.change_resource_record_sets(
HostedZoneId='YOUR_HOSTED_ZONE_ID',
ChangeBatch={
'Changes': [
{
'Action': 'CREATE',
'ResourceRecordSet': {
'Name': '_acme-challenge.' + validation_domain,
'Type': 'TXT',
'TTL': 300,
'ResourceRecords': [
{
'Value': '"YOUR_VALIDATION_VALUE"'
}
]
}
}
]
}
)
return {
'statusCode': 200,
'body': 'Validation record created successfully.'
}
请根据您的具体情况修改代码中的占位符,如YOUR_HOSTED_ZONE_ID
和YOUR_VALIDATION_VALUE
。
配置Lambda函数的触发器:在Lambda函数配置页面,添加一个触发器,选择“CloudWatch Events”,并在“规则”下创建一个新的规则。在规则配置页面,选择“事件模式”,并在“事件模式”下选择“服务名称”为“ACM”,“操作名称”为“RequestCertificate”。这将使Lambda函数在有新的ACM证书请求时触发。
配置IAM角色:确保您的Lambda函数具有足够的权限来创建Route 53记录。您可以创建一个新的IAM角色,并将其附加到Lambda函数。
完成上述步骤后,每当有新的ACM证书请求时,Lambda函数将被触发,并创建一个动态的Route 53记录来验证证书。