接入教程
1. 注册AWS账户并获取访问密钥
2. 通过AWS控制台创建首个CloudFront分发
3. 配置源站(如S3存储桶或自定义服务器)
4. 设置缓存行为和域名CNAME
5. 使用SDK或API调用管理分发配置
6. 监控分发性能和使用报告
使用Python列出CloudFront分发
import boto3
from botocore.config import Config
# 配置CloudFront客户端
config = Config(region_name='us-east-1')
client = boto3.client(
'cloudfront',
config=config,
aws_access_key_id='YOUR_API_KEY',
aws_secret_access_key='YOUR_SECRET_KEY'
)
# 列出所有分发
response = client.list_distributions()
# 处理响应
if 'DistributionList' in response:
for distribution in response['DistributionList']['Items']:
print(f"Distribution ID: {distribution['Id']}")
print(f"Domain: {distribution['DomainName']}")
print(f"Status: {distribution['Status']}")
print("-" * -30)
使用PHP创建CloudFront失效请求
<?php
require 'vendor/autoload.php';
use Aws\CloudFront\CloudFrontClient;
use Aws\Exception\AwsException;
// 创建CloudFront客户端
$client = new CloudFrontClient([
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => [
'key' => 'YOUR_API_KEY',
'secret' => 'YOUR_SECRET_KEY'
]
]);
// 创建失效请求
try {
$result = $client->createInvalidation([
'DistributionId' => 'EXAMPLE_DISTRIBUTION_ID',
'InvalidationBatch' => [
'CallerReference' => time(),
'Paths' => [
'Quantity' => 2,
'Items' => ['/images/*', '/css/*']
]
]
]);
echo "Invalidation created: " . $result['Invalidation']['Id'];
} catch (AwsException $e) {
echo "Error: " . $e->getMessage();
}
?>
使用JavaScript获取分发配置
const AWS = require('aws-sdk');
// 配置AWS SDK
AWS.config.update({
region: 'us-east-1',
accessKeyId: 'YOUR_API_KEY',
secretAccessKey: 'YOUR_SECRET_KEY'
});
const cloudfront = new AWS.CloudFront();
// 获取分发配置
async function getDistributionConfig(distributionId) {
try {
const params = {
Id: distributionId
};
const response = await cloudfront.getDistributionConfig(params).promise();
console.log('Distribution Configuration:');
console.log('Status:', response.DistributionConfig.Enabled ? 'Enabled' : 'Disabled');
console.log('Comment:', response.DistributionConfig.Comment);
console.log('Default Root Object:', response.DistributionConfig.DefaultRootObject);
return response;
} catch (error) {
console.error('Error fetching distribution config:', error);
throw error;
}
}
// 使用示例
// getDistributionConfig('EXAMPLE_DISTRIBUTION_ID');
常见问题
如何获取CloudFront API的访问密钥?
访问AWS管理控制台,在IAM(身份和访问管理)服务中创建具有CloudFront权限的用户或角色,然后生成访问密钥ID和秘密访问密钥。确保遵循最小权限原则,仅授予必要的权限。
CloudFront API请求的速率限制是多少?
CloudFront API的速率限制因操作而异。默认情况下,大多数操作的限制为每秒5-10个请求。如需更高限制,可通过AWS支持中心提交申请。建议在代码中实现重试逻辑和指数退避策略。
创建失效请求后需要多长时间生效?
失效请求通常在5-10分钟内完成,但具体时间取决于缓存内容的数量和分布范围。您可以通过GetInvalidation API查询失效请求的状态。请注意,失效操作会消耗CloudFront配额。
Aitishiku.com