此问题通常是由于在其他AWS服务中使用了相同的CNAME造成的。可以通过以下步骤解决该问题:
以下是一个包含代码示例的解决方案:
import boto3
# Create CloudFront client
cf = boto3.client('cloudfront')
# Get list of distributions
distributions = cf.list_distributions()
# Loop through distributions and find the one with the matching CNAME
matching_distribution = None
for distribution in distributions['DistributionList']['Items']:
if 'Aliases' in distribution:
for alias in distribution['Aliases']['Items']:
if alias == 'example.com':
matching_distribution = distribution
break
if matching_distribution is not None:
break
# Remove the existing CNAME
if matching_distribution is not None:
cf.update_distribution(
DistributionConfig={
'CallerReference': matching_distribution['CallerReference'],
'Aliases': {
'Quantity': 0,
'Items': []
},
'Comment': 'Updated CNAMEs'
},
Id=matching_distribution['Id']
)
# Add the new CNAME
cf.update_distribution(
DistributionConfig={
'CallerReference': 'example.com',
'Aliases': {
'Quantity': 1,
'Items': ['new.example.com']
},
'Comment': 'Updated CNAMEs'
},
Id=matching_distribution['Id']
)