AWS CloudFront 向分发添加新域并设置新证书



所以我正在尝试自动将新域添加到现有的 CF 发行版中,但收到Rate exceeded错误消息。

我正在使用aws/aws-sdk-php,但是当我使用aws-cli尝试相同的命令时,我收到相同的错误。

这是我到目前为止的代码:

private function addDistributionAliasAndSetNewCertificate(string $distributionId, string $domainName, string $certificateARN): void
{
$result = $this->cloudFront->getDistributionConfig(['Id' => $distributionId]);
$eTag = $result['ETag'];
$distributionConfig = $result['DistributionConfig'];
// if the domain is already in the distribution return early.
if (in_array($domainName, $distributionConfig['Aliases']['Items'], true)) {
StdOut::writeLine("Domain `{$domainName}` already found in distribution `{$distributionId}` config.");
return;
}
$distributionConfig['Aliases']['Items'][] = $domainName;
$distributionConfig['Aliases']['Quantity'] = count($distributionConfig['Aliases']['Items']);
$distributionConfig['ViewerCertificate'] = [
'ACMCertificateArn' => $certificateARN,
'MinimumProtocolVersion' => 'TLSv1.1_2016',
];
$distributionConfig['Comment'] = 'Updated by `' . getenv('HOST') . '` on `' . date(DATE_ATOM) . '`';
try {
$this->cloudFront->updateDistribution([
'Id' => $distributionId,
'DistributionConfig' => $distributionConfig,
'IfMatch' => $eTag,
]);
} catch (CloudFrontException $e) {
StdOut::writeLine($e->getAwsErrorMessage());
}
}

这将进入带有错误消息catchRate exceeded

当我使用 cli 工具执行相同的操作时,我得到以下输出:An error occurred (Throttling) when calling the UpdateDistribution operation (reached max retries: 4): Rate exceeded

我在两次通话之间等了几天,它的影响为 0。 我做错了什么吗?

我想通了。

问题是我正在覆盖/删除ViewerCertificate.SSLSupportMethod密钥。

最新更新