使用 bash 脚本更改 Amazon EC2 实例类型 AWS CLI - AWS Command Line Interface

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 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 参考:

其他参考资料: