使用 bash 脚本更改 Amazon EC2 实例类型 - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文档仅适用于 Amazon CLI 版本 1。有关 Amazon CLI 版本 2 的相关文档,请参阅版本 2 用户指南

使用 bash 脚本更改 Amazon EC2 实例类型

Amazon EC2 的这一 bash 脚本示例使用 Amazon Command Line Interface (Amazon CLI) 更改 Amazon EC2 实例的实例类型。如果实例正在运行,它会停止实例,更改实例类型,然后根据请求重启实例。Shell 脚本是专用于在命令行界面中运行的程序。

注意

有关其他命令示例,请参阅 Amazon CLI 参考指南

开始之前

您需要先满足以下条件,才能运行下文中的任何示例代码。

  • 安装和配置 Amazon CLI。有关更多信息,请参阅 安装、更新和卸载 Amazon CLI身份验证和访问凭证

  • 您使用的配置文件必须具有允许示例代码执行 Amazon 操作的权限。

  • 在账户中有正在运行的 Amazon EC2 实例,并且您有权停止和修改该实例。如果您运行测试脚本,它会为您启动一个实例,测试更改类型,然后终止该实例。

  • 作为 Amazon 的最佳实践,请授予此代码最低的权限,或者仅授予它执行任务所需的权限。有关更多信息,请参阅 Amazon Identity and Access Management (IAM) 用户指南中的授予最低权限

  • 此代码尚未在所有 Amazon 区域中进行测试。有些 Amazon 服务仅在特定区域中提供。有关更多信息,请参阅 Amazon 一般参考指南中的服务终端节点和配额

  • 运行此代码可能会导致您的Amazon账户产生相关费用。您有责任确保在使用完由此脚本创建的任何资源后删除这些资源。

关于此示例

此示例是作为 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 上的 Amazon 代码示例存储库 中的更改 Amazon EC2 实例类型

Parameters

-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

脚本文件 change_ec2_instance_type_test.sh 会测试 change_ec2_instance_type 函数的各种代码路径。如果测试脚本中的所有步骤都正确完成,测试脚本将会删除它创建的所有资源。

您可以使用以下参数运行该测试脚本:

  • -v -(开关)每个测试在运行时都会显示通过/失败状态。默认情况下,测试以静默方式运行,输出仅包含最终的总体通过/失败状态。

  • -i -(开关)脚本会在每个测试后暂停,以便您能查看每个步骤的中间结果。让您能够使用 Amazon EC2 控制台检查实例的当前状态。您在系统提示符处按 Enter 后,脚本才会继续执行下一步。

GitHub 上查看 test_change_ec2_instance_type.sh 的代码。

awsdocs_general.sh

脚本文件 awsdocs_general.sh 中包含了在 Amazon CLI 的高级示例中使用的通用函数。

GitHub 上查看 awsdocs_general.sh 的代码。

参考信息

Amazon CLI 参考:

其他参考资料: