将 ModifyInstanceAttribute 与 CLI 配合使用 - Amazon Elastic Compute Cloud

ModifyInstanceAttribute 与 CLI 配合使用

以下代码示例演示如何使用 ModifyInstanceAttribute

CLI
AWS CLI

示例 1:修改实例类型

以下 modify-instance-attribute 示例修改指定实例的实例类型。该实例必须处于 stopped 状态。

aws ec2 modify-instance-attribute \ --instance-id i-1234567890abcdef0 \ --instance-type "{\"Value\": \"m1.small\"}"

此命令不生成任何输出。

示例 2:在实例上启用增强联网

以下 modify-instance-attribute 示例为指定实例启用增强联网。该实例必须处于 stopped 状态。

aws ec2 modify-instance-attribute \ --instance-id i-1234567890abcdef0 \ --sriov-net-support simple

此命令不生成任何输出。

示例 3:修改 sourceDestCheck 属性

以下 modify-instance-attribute 示例将指定实例的 sourceDestCheck 属性设置为 true。该实例必须在 VPC 中。

aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --source-dest-check "{\"Value\": true}"

此命令不生成任何输出。

示例 4:修改根卷的 deleteOnTermination 属性

以下 modify-instance-attribute 示例将指定的 Amazon EBS 支持的实例的根卷的 deleteOnTermination 属性设置为 false。默认情况下,根卷的此属性为 true

命令:

aws ec2 modify-instance-attribute \ --instance-id i-1234567890abcdef0 \ --block-device-mappings "[{\"DeviceName\": \"/dev/sda1\",\"Ebs\":{\"DeleteOnTermination\":false}}]"

此命令不生成任何输出。

示例 5:修改附加到实例的用户数据

以下 modify-instance-attribute 示例将文件 UserData.txt 的内容添加为指定实例的 UserData。

原始文件 UserData.txt 的内容:

#!/bin/bash yum update -y service httpd start chkconfig httpd on

该文件的内容必须采用 base64 编码。第一个命令将文本文件转换为 base64 并将其另存为新文件。

此命令的 Linux/macOS 版本:

base64 UserData.txt > UserData.base64.txt

此命令不生成任何输出。

此命令的 Windows 版本:

certutil -encode UserData.txt tmp.b64 && findstr /v /c:- tmp.b64 > UserData.base64.txt

输出:

Input Length = 67 Output Length = 152 CertUtil: -encode command completed successfully.

现在,您可以在以下 CLI 命令中引用该文件:

aws ec2 modify-instance-attribute \ --instance-id=i-09b5a14dbca622e76 \ --attribute userData --value file://UserData.base64.txt

此命令不生成任何输出。

有关更多信息,请参阅《EC2 用户指南》中的用户数据和 AWS CLI

PowerShell
Tools for PowerShell V4

示例 1:此示例修改指定实例的实例类型。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -InstanceType m3.medium

示例 2:此示例通过将“simple”指定为单根 I/O 虚拟化(SR-IOV)网络支持参数 -SriovNetSupport 的值,为指定的实例启用增强联网。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -SriovNetSupport "simple"

示例 3:此示例修改指定实例的安全组。该实例必须在 VPC 中。您必须指定每个安全组的 ID,而不是名称。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -Group @( "sg-12345678", "sg-45678901" )

示例 4:此示例为指定的实例启用 EBS I/O 优化。此功能并非适用于所有实例类型。使用 EBS 优化实例时,可能需要支付额外的使用费用。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -EbsOptimized $true

示例 5:此示例对指定的实例启用源/目标检查。对于要执行 NAT 的 NAT 实例,该值必须为“false”。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -SourceDestCheck $true

示例 6:此示例对指定的实例禁用终止。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -DisableApiTermination $true

示例 7:此示例更改指定的实例,使其在从实例启动关闭时终止。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -InstanceInitiatedShutdownBehavior terminate
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V4)》中的 ModifyInstanceAttribute

Tools for PowerShell V5

示例 1:此示例修改指定实例的实例类型。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -InstanceType m3.medium

示例 2:此示例通过将“simple”指定为单根 I/O 虚拟化(SR-IOV)网络支持参数 -SriovNetSupport 的值,为指定的实例启用增强联网。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -SriovNetSupport "simple"

示例 3:此示例修改指定实例的安全组。该实例必须在 VPC 中。您必须指定每个安全组的 ID,而不是名称。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -Group @( "sg-12345678", "sg-45678901" )

示例 4:此示例为指定的实例启用 EBS I/O 优化。此功能并非适用于所有实例类型。使用 EBS 优化实例时,可能需要支付额外的使用费用。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -EbsOptimized $true

示例 5:此示例对指定的实例启用源/目标检查。对于要执行 NAT 的 NAT 实例,该值必须为“false”。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -SourceDestCheck $true

示例 6:此示例对指定的实例禁用终止。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -DisableApiTermination $true

示例 7:此示例更改指定的实例,使其在从实例启动关闭时终止。

Edit-EC2InstanceAttribute -InstanceId i-12345678 -InstanceInitiatedShutdownBehavior terminate
  • 有关 API 详细信息,请参阅《AWS Tools for PowerShell Cmdlet 参考(V5)》中的 ModifyInstanceAttribute

有关 AWS SDK 开发人员指南和代码示例的完整列表,请参阅 使用 AWS SDK 创建 Amazon EC2 资源。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。