

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配使用 `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)。 *EC2 *  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [ModifyInstanceAttribute](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-instance-attribute.html)。

------
#### [ 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，此值必須為 '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](https://docs.aws.amazon.com/powershell/v4/reference)。

**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，此值必須為 '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](https://docs.aws.amazon.com/powershell/v5/reference)。

------

如需 AWS SDK 開發人員指南和程式碼範例的完整清單，請參閱 [使用 SDK 建立 Amazon EC2 資源 AWS](sdk-general-information-section.md)。此主題也包含有關入門的資訊和舊版 SDK 的詳細資訊。