如何通过boto3获取CloudFront分发的启用/禁用状态?
获取CloudFront分发的启用/禁用状态(Boto3)
你可以通过get_distribution接口返回的DistributionConfig中的Enabled字段判断分发的启用/禁用状态,该字段为布尔类型:True代表启用,False代表禁用。
你之前看到的响应示例应该是截断了完整返回内容,get_distribution的完整响应里,Distribution对象下包含DistributionConfig节点,其中就有你需要的状态字段。
代码示例
单个分发状态查询
使用Boto3调用get_distribution获取指定分发的启用/禁用状态:
import boto3 cloudfront_client = boto3.client('cloudfront') def get_distribution_enabled_status(distribution_id): response = cloudfront_client.get_distribution(Id=distribution_id) # 提取启用/禁用状态 enabled_status = response['Distribution']['DistributionConfig']['Enabled'] return enabled_status # 示例调用 dist_id = "E2H2PR2OHJ17TC" print(f"分发 {dist_id} 的启用状态: {get_distribution_enabled_status(dist_id)}")
批量查询所有分发状态
如果需要批量获取所有分发的启用/禁用状态,可使用list_distributions:
def list_all_distributions_enabled_status(): response = cloudfront_client.list_distributions() distributions = response.get('DistributionList', {}).get('Items', []) for dist in distributions: dist_id = dist['Id'] enabled_status = dist['DistributionConfig']['Enabled'] print(f"分发ID: {dist_id}, 启用状态: {enabled_status}") list_all_distributions_enabled_status()
补充说明
Enabled是CloudFront分发的核心配置属性,只要分发存在就会返回该字段。- 部署状态(
Status字段的Deployed/InProgress)和启用/禁用状态是两个独立概念:部署状态表示当前配置是否已生效,启用/禁用状态决定分发是否处理用户请求。
内容的提问来源于stack exchange,提问作者Tim-G
相关产品推荐
相关产品推荐

