

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

# 将 `ModifyInstanceAttribute` 与 CLI 配合使用
<a name="example_ec2_ModifyInstanceAttribute_section"></a>

以下代码示例演示如何使用 `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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user-data-api-cli)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[ModifyInstanceAttribute](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-attribute.html)*中的。

------
#### [ PowerShell ]

**适用于 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：此示例启用了对指定实例的 source/destination 检查。对于要执行 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 参考 (V* 4) [ModifyInstanceAttribute](https://docs.aws.amazon.com/powershell/v4/reference)中的。

**适用于 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：此示例启用了对指定实例的 source/destination 检查。对于要执行 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 参考 (V* 5) [ModifyInstanceAttribute](https://docs.aws.amazon.com/powershell/v5/reference)中的。

------

有关 S AWS DK 开发者指南和代码示例的完整列表，请参阅[使用 AWS SDK 创建 Amazon EC2 资源](sdk-general-information-section.md)。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。