本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新环境
如果 AWS Proton 环境与环境帐户连接相关联,请不要更新或添加用于更新或连接到环境帐户连接的protonServiceRoleArn
参数。
只有在满足以下两个条件时,您才能更新为新的环境账户连接:
如果环境与环境账户连接不 关联,则不要 更新或包含 environmentAccountConnectionId
参数。
您可以更新 environmentAccountConnectionId
或 protonServiceRoleArn
参数和值。您无法同时更新两者。
如果您的环境使用自托管式预置,请不要 更新 provisioning-repository
参数并省略 environmentAccountConnectionId
和 protonServiceRoleArn
参数。
可以使用 4 种模式更新环境,如以下列表中所述。使用时 AWS CLI,该deployment-type
字段定义模式。在使用控制台时,这些模式映射到操作下拉列表中的编辑、更新、更新次要和更新主要操作。
-
NONE
在该模式下,不会 进行部署。仅更新请求的元数据参数。
-
CURRENT_VERSION
在该模式下,将使用您提供的新规范部署和更新环境。仅更新请求的参数。在使用该 deployment-type
时,不要 包含次要或主要版本参数。
-
MINOR_VERSION
在该模式下,默认使用当前使用的主要版本的已发布推荐(最新)次要版本部署和更新环境。您也可以指定当前使用的主要版本的不同次要版本。
-
MAJOR_VERSION
在该模式下,默认使用当前模板的已发布推荐(最新)主要版本和次要版本部署和更新环境。您也可以指定高于正在使用的主要版本的不同主要版本和次要版本(可选)。
更新 AWS 托管配置环境
仅使用 AWS CloudFormation预置的环境支持标准预置。
使用控制台或 AWS CLI 更新您的环境。
- AWS Management Console
-
使用控制台更新一个环境,如以下步骤中所示。
-
选择以下 2 个步骤之一。
-
在环境列表中。
-
在 AWS Proton 控制台中,选择环境。
-
在环境列表中,选择要更新的环境左侧的单选按钮。
-
在控制台环境详细信息页面中。
-
在 AWS Proton 控制台中,选择环境。
-
在环境列表中,选择要更新的环境名称。
-
选择接下来的 4 个步骤之一以更新您的环境。
-
进行不需要部署环境的编辑。
-
例如,更改描述。
选择编辑。
-
填写表单并选择下一步。
-
检查您的编辑内容并选择更新。
-
仅更新元数据输入。
-
选择操作,然后选择更新。
-
填写表单并选择编辑。
-
填写表单并选择下一步,直至到达审核页面。
-
检查您的更新内容并选择更新。
-
将其环境模板更新为新的次要版本。
-
选择操作,然后选择更新次要。
-
填写表单并选择下一步。
-
填写表单并选择下一步,直至到达审核页面。
-
检查您的更新内容并选择更新。
-
将其环境模板更新为新的主要版本。
-
选择操作,然后选择更新主要。
-
填写表单并选择下一步。
-
填写表单并选择下一步,直至到达审核页面。
-
检查您的更新内容并选择更新。
- AWS CLI
-
使用 AWS Proton AWS CLI 将环境更新到新的次要版本。
运行以下命令以更新您的环境:
$
aws proton update-environment \
--name "MySimpleEnv
" \
--deployment-type "MINOR_VERSION
" \
--template-major-version "1
" \
--template-minor-version "1
" \
--proton-service-role-arn arn:aws:iam::123456789012
:role/service-role/ProtonServiceRole
\
--spec "file:///spec.yaml
"
响应:
{
"environment": {
"arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv",
"createdAt": "2021-04-02T17:29:55.472000+00:00",
"deploymentStatus": "IN_PROGRESS",
"lastDeploymentAttemptedAt": "2021-04-02T17:48:26.307000+00:00",
"lastDeploymentSucceededAt": "2021-04-02T17:29:55.472000+00:00",
"name": "MySimpleEnv",
"protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole",
"templateMajorVersion": "1",
"templateMinorVersion": "0",
"templateName": "simple-env"
}
}
运行以下命令以获取并确认状态:
$
aws proton get-environment \
--name "MySimpleEnv
"
响应:
{
"environment": {
"arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv",
"createdAt": "2021-04-02T17:29:55.472000+00:00",
"deploymentStatus": "SUCCEEDED",
"environmentName": "MySimpleEnv",
"lastDeploymentAttemptedAt": "2021-04-02T17:48:26.307000+00:00",
"lastDeploymentSucceededAt": "2021-04-02T17:48:26.307000+00:00",
"protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole",
"spec": "proton: EnvironmentSpec\n\nspec:\n my_sample_input: hello\n my_other_sample_input: everybody\n",
"templateMajorVersion": "1",
"templateMinorVersion": "1",
"templateName": "simple-env"
}
}
更新自托管式预置环境
仅使用 Terraform 预置的环境支持自托管式预置。
使用控制台或 AWS CLI 更新您的环境。
- AWS Management Console
-
使用控制台更新一个环境,如以下步骤中所示。
-
选择以下 2 个步骤之一。
-
在环境列表中。
-
在 AWS Proton 控制台中,选择环境。
-
在环境列表中,选择要更新的环境模板左侧的单选按钮。
-
在控制台环境详细信息页面中。
-
在 AWS Proton 控制台中,选择环境。
-
在环境列表中,选择要更新的环境名称。
-
选择接下来的 4 个步骤之一以更新您的环境。
-
进行不需要部署环境的编辑。
-
例如,更改描述。
选择编辑。
-
填写表单并选择下一步。
-
检查您的编辑内容并选择更新。
-
仅更新元数据输入。
-
选择操作,然后选择更新。
-
填写表单并选择编辑。
-
填写表单并选择下一步,直至到达审核页面。
-
检查您的更新内容并选择更新。
-
将其环境模板更新为新的次要版本。
-
选择操作,然后选择更新次要。
-
填写表单并选择下一步。
-
填写表单并选择下一步,直至到达审核页面。
-
检查您的更新内容并选择更新。
-
将其环境模板更新为新的主要版本。
-
选择操作,然后选择更新主要。
-
填写表单并选择下一步。
-
填写表单并选择下一步,直至到达审核页面。
-
检查您的更新内容并选择更新。
- AWS CLI
-
使用 AWS CLI 将 Terraform 环境更新到具有自我管理配置的新次要版本。
-
运行以下命令以更新您的环境:
$
aws proton update-environment \
--name "pr-environment
" \
--deployment-type "MINOR_VERSION
" \
--template-major-version "1
" \
--template-minor-version "1
" \
--provisioning-repository "branch=main
,name=myrepos/env-repo
,provider=GITHUB
" \
--spec "file://env-spec-mod.yaml
"
响应:
{
"environment": {
"arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment",
"createdAt": "2021-11-18T21:09:15.745000+00:00",
"deploymentStatus": "IN_PROGRESS",
"lastDeploymentAttemptedAt": "2021-11-18T21:25:41.998000+00:00",
"lastDeploymentSucceededAt": "2021-11-18T21:09:15.745000+00:00",
"name": "pr-environment",
"provisioningRepository": {
"arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo",
"branch": "main",
"name": "myrepos/env-repo",
"provider": "GITHUB"
},
"templateMajorVersion": "1",
"templateMinorVersion": "0",
"templateName": "pr-env-template"
}
}
-
运行以下命令以获取并确认状态:
$
aws proton get-environment \
--name "pr-environment
"
响应:
{
"environment": {
"arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment",
"createdAt": "2021-11-18T21:09:15.745000+00:00",
"deploymentStatus": "SUCCEEDED",
"lastDeploymentAttemptedAt": "2021-11-18T21:25:41.998000+00:00",
"lastDeploymentSucceededAt": "2021-11-18T21:25:41.998000+00:00",
"name": "pr-environment",
"provisioningRepository": {
"arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo",
"branch": "main",
"name": "myrepos/env-repo",
"provider": "GITHUB"
},
"spec": "proton: EnvironmentSpec\nspec:\n ssm_parameter_value: \"test\"\n ssm_another_parameter_value: \"update\"\n",
"templateMajorVersion": "1",
"templateMinorVersion": "1",
"templateName": "pr-env-template"
}
}
-
查看发送的拉取请求 AWS Proton。
-
如果您批准请求,则会进行预置。
-
如果您拒绝请求,将取消创建环境。
-
如果拉取请求超时,则不会完成创建环境。
-
向提供配置状态 AWS Proton。
$
aws proton notify-resource-deployment-status-change \
--resource-arn "arn:aws:proton:region-id
:123456789012
:environment/pr-environment
" \
--status "SUCCEEDED
"
取消正在进行的环境部署
如果已启用,则可以尝试取消环境更新部署IN_PROGRESS
。deploymentStatus
AWS Proton 试图取消部署。不能 保证成功取消。
取消更新部署时, AWS Proton 会尝试取消部署,如以下步骤所示。
使用 AWS托管配置,执行以下 AWS Proton 操作:
使用自我管理配置, AWS Proton 可以执行以下操作:
有关如何取消环境部署的说明,请参阅AWS Proton API参考CancelEnvironmentDeployment中的。
您可以使用控制台或CLI取消正在进行的环境。
- AWS Management Console
-
使用控制台取消环境更新部署,如以下步骤中所示。
-
在 AWS Proton 控制台中,在导航窗格中选择环境。
-
在环境列表中,选择包含要取消的部署更新的环境名称。
-
如果您的更新部署状态为进行中,请在环境详细信息页面中选择操作,然后选择取消部署。
-
一个模态框提示您确认是否要取消。选择取消部署。
-
您的更新部署状态设置为正在取消,然后设置为已取消以完成取消。
- AWS CLI
-
使用取消 AWS Proton AWS CLI 将 IN_ PROGRESS 环境更新部署到新的次要版本 2。
在用于该示例的模板中包含一个等待条件,以便在更新部署成功之前开始取消。
运行以下命令以取消更新:
$
aws proton cancel-environment-deployment \
--environment-name "MySimpleEnv
"
响应:
{
"environment": {
"arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv",
"createdAt": "2021-04-02T17:29:55.472000+00:00",
"deploymentStatus": "CANCELLING",
"lastDeploymentAttemptedAt": "2021-04-02T18:15:10.243000+00:00",
"lastDeploymentSucceededAt": "2021-04-02T17:48:26.307000+00:00",
"name": "MySimpleEnv",
"protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole",
"spec": "proton: EnvironmentSpec\n\nspec:\n my_sample_input: hello\n my_other_sample_input: everybody\n",
"templateMajorVersion": "1",
"templateMinorVersion": "1",
"templateName": "simple-env"
}
}
运行以下命令以获取并确认状态:
$
aws proton get-environment \
--name "MySimpleEnv
"
响应:
{
"environment": {
"arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv",
"createdAt": "2021-04-02T17:29:55.472000+00:00",
"deploymentStatus": "CANCELLED",
"deploymentStatusMessage": "User initiated cancellation.",
"lastDeploymentAttemptedAt": "2021-04-02T18:15:10.243000+00:00",
"lastDeploymentSucceededAt": "2021-04-02T17:48:26.307000+00:00",
"name": "MySimpleEnv",
"protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole",
"spec": "proton: EnvironmentSpec\n\nspec:\n my_sample_input: hello\n my_other_sample_input: everybody\n",
"templateMajorVersion": "1",
"templateMinorVersion": "1",
"templateName": "simple-env"
}
}