使用暂存分配和持续部署策略
您可以使用 Amazon Command Line Interface(Amazon CLI)或 CloudFront API 在 CloudFront 控制台中创建、更新和修改暂存分配与持续部署策略。
使用持续部署策略创建暂存分配
以下步骤演示如何使用持续部署策略创建暂存分配。
- Console
-
您可以使用Amazon Web Services Management Console,通过持续部署策略创建暂存分配。
创建暂存分配和持续部署策略(控制台)
登录 Amazon Web Services Management Console,并通过以下网址打开 CloudFront 控制台:https://console.amazonaws.cn/cloudfront/v4/home
。 -
在导航窗格中,选择分配。
-
选择要用作主分配的分配。主分配是当前为生产流量提供服务的分配,您将从中创建暂存分配。
-
在持续部署部分中,选择创建暂存分配。这将打开创建暂存分配向导。
-
在创建暂存分配向导中,执行以下操作:
-
(可选)键入暂存分配的描述。
-
选择下一步。
-
修改暂存分配的配置。有关您可以更新的设置的更多信息,请参阅更新主分配和暂存分配。
修改完暂存分配的配置后,选择下一步。
-
使用控制台指定流量配置。这将决定 CloudFront 如何将流量路由到暂存分配。(CloudFront 将流量配置存储在持续部署策略中。)
有关流量配置中的选项的更多信息,请参阅将请求路由到暂存分配。
完成流量配置后,选择下一步。
-
查看暂存分配的配置,包括流量配置,然后选择创建暂存分配。
-
在 CloudFront 控制台中完成创建暂存分配向导后,CloudFront 将执行以下操作:
-
使用您指定的设置创建暂存分配(在步骤 5c 中)
-
使用您指定的流量配置创建持续部署策略(在步骤 5d 中)
-
将持续部署策略附加到您从中创建暂存分配的主分配
当主分配的配置以及附加的持续部署策略部署到边缘站点时,CloudFront 会开始根据流量配置将指定部分的流量发送到暂存分配。
- CLI
-
要使用 Amazon CLI 创建暂存分配和持续部署策略,请执行以下步骤。
创建暂存分配(CLI)
-
将 aws cloudfront get-distribution 和 grep 命令结合使用以获取要用作主分配分发的
ETag
值。主分配是当前为生产流量提供服务的分发,将从中创建暂存分配。以下命令是一个示例。在以下示例中,将
primary_distribution_ID
替换为主分配的 ID。aws cloudfront get-distribution --id
primary_distribution_ID
| grep 'ETag'复制
ETag
值,因为您需要它来执行下一个步骤。 -
使用 aws cloudfront copy-distribution 命令创建暂存分配。以下示例命令使用转义字符(\)和换行符来提高可读性,但您应在该命令中省略这些字符。在以下示例命令中:
-
将
primary_distribution_ID
替换为主分配的 ID。 -
将
primary_distribution_ETag
替换为主分配的ETag
值(您已在上一步中获得)。 -
(可选)将
CLI_example
替换为所需的调用方参考 ID。
aws cloudfront copy-distribution --primary-distribution-id
primary_distribution_ID
\ --if-matchprimary_distribution_ETag
\ --staging \ --caller-reference 'CLI_example
'该命令的输出显示了有关暂存分配及其配置的信息。复制暂存分配的 CloudFront 域名,因为您在下一步中需要使用它。
-
创建持续部署策略(带输入文件的 CLI)
-
使用以下命令创建名为
continuous-deployment-policy.yaml
的文件,其中包含 create-continuous-deployment-policy 命令的所有输入参数。以下命令使用转义字符(\)和换行符来提高可读性,但您应在该命令中省略这些字符。aws cloudfront create-continuous-deployment-policy --generate-cli-skeleton yaml-input \ > continuous-deployment-policy.yaml
-
打开刚创建的名为
continuous-deployment-policy.yaml
的文件。编辑该文件以指定所需的持续部署策略设置,然后保存该文件。当您编辑该文件时:-
在
StagingDistributionDnsNames
部分中:-
将
Quantity
的值更改为1
。 -
对于
Items
,粘贴暂存分配的 CloudFront 域名(您已在上一步中保存)。
-
-
在
TrafficConfig
部分中:-
选择
Type
(SingleWeight
或SingleHeader
)。 -
删除其他类型的设置。例如,如果您需要基于权重的流量配置,请将
Type
设置为SingleWeight
,然后删除SingleHeaderConfig
设置。 -
要使用基于权重的流量配置,请将
Weight
的值设置为介于.01
(百分之一)和.15
(百分之十五)之间的十进制数。
有关
TrafficConfig
中的选项的更多信息,请参阅将请求路由到暂存分配和基于权重的配置的会话粘性。 -
-
-
使用以下命令通过
continuous-deployment-policy.yaml
文件中的输入参数创建持续部署策略。aws cloudfront create-continuous-deployment-policy --cli-input-yaml file://continuous-deployment-policy.yaml
复制命令输出中的
Id
值。这是持续部署策略 ID,您在下一步中需要它。
将持续部署策略附加到主分配(带输入文件的 CLI)
-
使用以下命令将主分配的配置保存到一个名为
primary-distribution.yaml
的文件中。将primary_distribution_ID
替换为主分配的 ID。aws cloudfront get-distribution-config --id
primary_distribution_ID
--output yaml > primary-distribution.yaml -
打开刚创建的名为
primary-distribution.yaml
的文件。编辑文件,进行以下更改:-
将持续部署策略 ID(从上一步中复制的)粘贴到
ContinuousDeploymentPolicyId
字段中。 -
将
ETag
字段重命名为IfMatch
,但不更改字段的值。
完成后保存该文件。
-
-
使用以下命令更新主分配以使用持续部署策略。将
primary_distribution_ID
替换为主分配的 ID。aws cloudfront update-distribution --id
primary_distribution_ID
--cli-input-yaml file://primary-distribution.yaml
当主分配的配置以及附加的持续部署策略部署到边缘站点时,CloudFront 会开始根据流量配置将指定部分的流量发送到暂存分配。
-
- API
-
要使用 CloudFront API 创建暂存分配和持续部署策略,请使用以下 API 操作:
有关您在这些 API 调用中指定的字段的更多信息,请参阅以下内容:
-
有关 Amazon SDK 或其他 API 客户端的 API 参考文档
创建暂存分配和持续部署策略后,使用 UpdateDistribution(在主分配上)将持续部署策略附加到主分配。
更新暂存分配
以下步骤演示如何使用持续部署策略更新暂存分配。
- Console
-
您可以更新主分配和暂存分配的某些配置。有关更多信息,请参阅 更新主分配和暂存分配。
更新暂存分配(控制台)
通过 https://console.amazonaws.cn/cloudfront/v4/home
打开 CloudFront 控制台 -
在导航窗格中,选择分配。
-
选择主分配。这是当前为生产流量提供服务的分配,您将从中创建暂存分配。
-
选择查看暂存分配。
-
使用控制台修改暂存分配的配置。有关您可以更新的设置的更多信息,请参阅更新主分配和暂存分配。
一旦暂存分配的配置部署到边缘站点,它就会对路由到暂存分配的传入流量生效。
- CLI
-
更新暂存分配(带输入文件的 CLI)
-
使用以下命令将暂存分配的配置保存到一个名为
staging-distribution.yaml
的文件中。将staging_distribution_ID
替换为暂存分配的 ID。aws cloudfront get-distribution-config --id
staging_distribution_ID
--output yaml > staging-distribution.yaml -
打开刚创建的名为
staging-distribution.yaml
的文件。编辑文件,进行以下更改:-
修改暂存分配的配置。有关您可以更新的设置的更多信息,请参阅更新主分配和暂存分配。
-
将
ETag
字段重命名为IfMatch
,但不更改字段的值。
完成后保存该文件。
-
-
使用以下命令更新暂存分配的配置。将
staging_distribution_ID
替换为暂存分配的 ID。aws cloudfront update-distribution --id
staging_distribution_ID
--cli-input-yaml file://staging-distribution.yaml
一旦暂存分配的配置部署到边缘站点,它就会对路由到暂存分配的传入流量生效。
-
- API
-
要更新暂存分配的配置,请使用 UpdateDistribution(在暂存分配上)修改暂存分配的配置。有关您可以更新的设置的更多信息,请参阅更新主分配和暂存分配。
更新持续部署策略
以下步骤演示如何更新持续部署策略。
- Console
-
您可以通过更新持续部署策略来更新分配的流量配置。
更新持续部署策略(控制台)
通过 https://console.amazonaws.cn/cloudfront/v4/home
打开 CloudFront 控制台 -
在导航窗格中,选择分配。
-
选择主分配。这是当前为生产流量提供服务的分发,您将从中创建暂存分发。
-
在持续部署部分中,选择编辑策略。
-
修改持续部署策略中的流量配置。在完成后,选择保存更改。
当主分配的配置以及更新的持续部署策略部署到边缘站点时,CloudFront 会开始根据更新的流量配置将流量发送到暂存分配。
- CLI
-
更新持续部署策略(带输入文件的 CLI)
-
使用以下命令将持续部署策略的配置保存到一个名为
continuous-deployment-policy.yaml
的文件中。将continuous_deployment_policy_ID
替换为持续部署策略的 ID。以下命令使用转义字符(\)和换行符来提高可读性,但您应在该命令中省略这些字符。aws cloudfront get-continuous-deployment-policy-config --id
continuous_deployment_policy_ID
\ --output yaml > continuous-deployment-policy.yaml -
打开刚创建的名为
continuous-deployment-policy.yaml
的文件。编辑文件,进行以下更改:-
根据需要修改持续部署策略的配置。例如,您可以从使用基于标头的流量配置更改为使用基于权重的流量配置,也可以更改基于权重的配置的流量百分比(权重)。有关更多信息,请参阅将请求路由到暂存分配 和基于权重的配置的会话粘性。
-
将
ETag
字段重命名为IfMatch
,但不更改字段的值。
完成后保存该文件。
-
-
使用以下命令更新持续部署策略。将
continuous_deployment_policy_ID
替换为持续部署策略的 ID。以下命令使用转义字符(\)和换行符来提高可读性,但您应在该命令中省略这些字符。aws cloudfront update-continuous-deployment-policy --id
continuous_deployment_policy_ID
\ --cli-input-yaml file://continuous-deployment-policy.yaml
当主分配的配置以及更新的持续部署策略部署到边缘站点时,CloudFront 会开始根据更新的流量配置将流量发送到暂存分配。
-
- API
-
要更新持续部署策略,请使用 UpdateContinuousDeploymentPolicy
提升暂存分配的配置
以下步骤演示如何提升暂存分配的配置。
- Console
-
在提升暂存分配时,CloudFront 会将配置从暂存分配复制到主分配。CloudFront 还将禁用持续部署策略,并将所有流量路由到主分配。
提升配置后,可以在下次要测试配置更改时重用相同的暂存分配。
提升暂存分配的配置(控制台)
通过 https://console.amazonaws.cn/cloudfront/v4/home
打开 CloudFront 控制台 -
在导航窗格中,选择分配。
-
选择主分配。这是当前为生产流量提供服务的分发,您将从中创建暂存分发。
-
在持续部署部分中,选择提升。
-
键入
confirm
,然后选择提升。
- CLI
-
在提升暂存分配时,CloudFront 会将配置从暂存分配复制到主分配。CloudFront 还将禁用持续部署策略,并将所有流量路由到主分配。
提升配置后,可以在下次要测试配置更改时重用相同的暂存分配。
提升暂存分配的配置(CLI)
-
使用 aws cloudfront update-distribution-with-staging-config 命令将暂存分配的配置提升为主分配。以下示例命令使用转义字符(\)和换行符来提高可读性,但您应在该命令中省略这些字符。在以下示例命令中:
-
将
primary_distribution_ID
替换为主分配的 ID。 -
将
staging_distribution_ID
替换为暂存分配的 ID。 -
将
primary_distribution_ETag
和staging_distribution_ETag
分别替换为主分配和暂存分配的ETag
值。确保主分配的值是第一个,如示例所示。
aws cloudfront update-distribution-with-staging-config --id
primary_distribution_ID
\ --staging-distribution-idstaging_distribution_ID
\ --if-match 'primary_distribution_ETag
,staging_distribution_ETag
' -
-
- API
-
要将暂存分配的配置提升为主分配,请使用 UpdateDistributionWithStagingConfig。