本文档仅适用于 AWS CLI 版本 1。有关 AWS CLI 版本 2 的相关文档,请参阅版本 2 用户指南。
在 AWS CLI 中使用 bash 脚本更改 Amazon EC2 实例类型
Amazon EC2 的这一 bash 脚本示例使用 AWS Command Line Interface (AWS CLI) 更改 Amazon EC2 实例的实例类型。如果实例正在运行,它会停止实例,更改实例类型,然后根据请求重启实例。Shell 脚本是专用于在命令行界面中运行的程序。
注意
有关其他命令示例,请参阅 AWS CLI 参考指南。
开始之前
您需要先满足以下条件,才能运行下文中的任何示例代码。
安装和配置 AWS CLI。有关更多信息,请参阅安装、更新和卸载 AWS CLI 和AWS CLI 身份验证和访问凭证。
-
您使用的配置文件必须具有允许示例代码执行 AWS 操作的权限。
-
在账户中有正在运行的 Amazon EC2 实例,并且您有权停止和修改该实例。如果您运行测试脚本,它会为您启动一个实例,测试更改类型,然后终止该实例。
-
作为 AWS 的最佳实践,请授予此代码最低的权限,或者仅授予它执行任务所需的权限。有关更多信息,请参阅 AWS Identity and Access Management (IAM) 用户指南中的授予最低权限。
-
此代码尚未在所有 AWS 区域中进行测试。有些 AWS 服务仅在特定区域中提供。有关更多信息,请参阅《AWS 一般参考指南》中的服务端点和配额。
-
运行此代码可能会导致您的 AWS 账户产生相关费用。您有责任确保在使用完由此脚本创建的任何资源后删除这些资源。
关于此示例
此示例是作为 shell 脚本文件 change_ec2_instance_type.sh
中的一个函数编写的,您可以通过其他脚本或命令行 source
该函数。每个脚本文件都包含了介绍每个函数的注释。一旦该函数进入内存,您就可以通过命令行调用它。例如,以下命令会将指定实例的类型更改为 t2.nano
:
$
source ./change_ec2_instance_type.sh
$
./change_ec2_instance_type -i *instance-id* -t new-type
有关完整示例和可下载的脚本文件,请参阅 GitHub 上的 AWS 代码示例存储库 中的更改 Amazon EC2 实例类型
参数
-i -(字符串)指定要修改的实例 ID。
-t -(字符串)指定要切换到的 Amazon EC2 实例类型。
-r -(开关)默认情况下,此参数未设置。如果设置了 -r
,则在类型切换后将会重启实例。
-f -(开关)默认情况下,脚本在进行切换之前会提示用户确认关闭实例。如果设置了 -f
,则函数在关闭实例以进行类型切换之前不会提示用户
-v -(开关)默认情况下,脚本会以静默方式运行,仅在出现错误时才显示输出。如果设置了 -v
,则函数会在整个运行过程中显示状态。
文件
change_ec2_instance_type.sh
-
该主脚本文件包含执行以下任务的
change_ec2_instance_type()
函数:-
验证指定的 Amazon EC2 实例是否存在。
-
除非选择了
-f
,否则函数会在停止实例之前向用户发出警告。 -
更改实例类型
-
如果您设置了
-r
,请重启实例并确认实例正在运行
在 GitHub 上查看
change_ec2_instance_type.sh
的代码。 -
test_change_ec2_instance_type.sh
-
脚本文件
test_change_ec2_instance_type.sh
会测试change_ec2_instance_type
函数的各种代码路径。如果测试脚本中的所有步骤都正确完成,测试脚本将会删除它创建的所有资源。您可以使用以下参数运行该测试脚本:
-
-v -(开关)每个测试在运行时都会显示通过/失败状态。默认情况下,测试以静默方式运行,输出仅包含最终的总体通过/失败状态。
-
-i -(开关)脚本会在每个测试后暂停,以便您能查看每个步骤的中间结果。让您能够使用 Amazon EC2 控制台检查实例的当前状态。您在系统提示符处按 Enter 后,脚本才会继续执行下一步。
在 GitHub 上查看
test_change_ec2_instance_type.sh
的代码。 -
awsdocs_general.sh
-
脚本文件
awsdocs_general.sh
中包含了在 AWS CLI 的高级示例中使用的通用函数。在 GitHub 上查看
awsdocs_general.sh
的代码。
参考信息
《AWS CLI 参考:》
其他参考资料:
-
要查看和贡献 AWS 开发工具包和 AWS CLI 代码示例,请参阅 GitHub 上的 AWS 代码示例存储库
。