在使用AWS SDK创建CloudFront分发时,默认情况下,分发会以禁用状态创建。这是因为启用分发可能会产生费用,并需要进行额外的配置步骤。
要解决这个问题,你需要启用创建后返回的分发ID的分发。以下是使用AWS SDK for JavaScript进行此操作的示例代码:
// 引入AWS SDK
const AWS = require('aws-sdk');
// 配置CloudFront客户端
const cloudfront = new AWS.CloudFront();
// 创建分发的函数
function createDistribution(params, callback) {
// 创建分发
cloudfront.createDistribution(params, (error, data) => {
if (error) {
console.error(error);
callback(error);
} else {
// 分发创建成功,启用分发
enableDistribution(data.Distribution.Id, callback);
}
});
}
// 启用分发的函数
function enableDistribution(distributionId, callback) {
const params = {
Id: distributionId,
IfMatch: '*', // 必须设置为'*'以允许更新
DistributionConfig: {
Enabled: true, // 设置为true以启用分发
},
};
// 更新分发配置以启用它
cloudfront.updateDistribution(params, (error, data) => {
if (error) {
console.error(error);
callback(error);
} else {
console.log('分发已启用:', data.Distribution.Status);
callback(null, data);
}
});
}
// 使用示例
const distributionParams = {
// ... 分发配置参数
};
createDistribution(distributionParams, (error, data) => {
if (error) {
console.error('创建或启用分发失败:', error);
} else {
console.log('分发已创建并启用:', data.Distribution.Status);
}
});
在这个示例中,首先创建分发,然后在创建成功后立即调用enableDistribution
函数来更新分发配置并启用它。这样,你就能确保分发在创建之后是启用状态。
没有现成的enable方法,其实是需要调用updateDistribution中的DistributionConfig的Enable字段。
'Enabled' => $currentConfig['DistributionConfig']["Enabled"]