本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 bash 脚本更改 Amazon EC2 实例类型 AWS CLI
此 Amazon bash 脚本示例使用 AWS Command Line Interface (AWS CLI) EC2 更改了亚马逊EC2实例的实例类型。如果实例正在运行,它会停止实例,更改实例类型,然后根据请求重启实例。Shell 脚本是专用于在命令行界面中运行的程序。
注意
有关其他命令示例,请参阅参考指南
开始之前
您需要先满足以下条件,才能运行下文中的任何示例代码。
安装和配置 AWS CLI。有关更多信息,请参阅安装或更新到最新版本的 AWS CLI 和的身份验证和访问凭证 AWS CLI。
-
您使用的配置文件必须具有允许示例执行 AWS 操作的权限。
-
账户中正在运行的 Amazon EC2 实例,您有权停止和修改该实例。如果您运行测试脚本,它会为您启动一个实例,测试更改类型,然后终止该实例。
-
AWS 最佳做法是授予此代码最低权限,或者仅授予执行任务所需的权限。有关更多信息,请参阅《Identity and Access Man agem AWS ent (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
,请重启实例并确认实例正在运行
查看
change_ec2_instance_type.sh
on 的代码GitHub。 -
test_change_ec2_instance_type.sh
-
脚本文件
test_change_ec2_instance_type.sh
会测试change_ec2_instance_type
函数的各种代码路径。如果测试脚本中的所有步骤都正确完成,测试脚本将会删除它创建的所有资源。您可以使用以下参数运行该测试脚本:
-
-v-(开关)每项测试都显示一个pass/failure status as they run. By default, the tests runs silently and the output includes only the final overall pass/failure状态。
-
-i -(开关)脚本会在每个测试后暂停,以便您能查看每个步骤的中间结果。使您能够使用 Amazon EC2 控制台检查实例的当前状态。在提示符下按ENTER下后,脚本会继续执行下一步。
查看
test_change_ec2_instance_type.sh
on 的代码GitHub。 -
awsdocs_general.sh
-
脚本文件
awsdocs_general.sh
中包含了在 AWS CLI的高级示例中使用的通用函数。查看
awsdocs_general.sh
on 的代码GitHub。
参考信息
AWS CLI 参考:
其他参考资料:
-
要查看和贡献 AWS CLI 代码示例,请参阅上的 “AWS 代码示例存储库
” GitHub。 AWS SDK