

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

# 使用 Systems Manager 來參數參考 AMI
<a name="using-systems-manager-parameter-to-find-AMI"></a>

當您在 Amazon EC2 主控台中使用 EC2 啟動執行個體精靈啟動執行個體時，您可以從清單中選擇 AMI，也可以選取指向 AMI ID 的 AWS Systems Manager 參數 （本節中說明）。 Amazon EC2 如果您使用自動化程式碼來啟動執行個體，則可以指定 Systems Manager 參數而非 AMI ID。

Systems Manager 參數是您可以在 Systems Manager 參數存放區中建立的客戶定義索引鍵/值組。參數存放區提供一個中央存放區，可將您的應用程式組態值外部化。如需詳細資訊，請參閱*「AWS Systems Manager 使用者指南」*中的 [AWS Systems Manager 參數存放區](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)。

當您建立指向 AMI ID 的參數時，請務必將資料類型指定為 `aws:ec2:image`。指定此資料類型可確保在建立或修改參數時，參數值會驗證為 AMI ID。如需詳細資訊，請參閱*「AWS Systems Manager 使用者指南」*中的 [Amazon Machine Image ID 的原生參數支援](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html)。

**Topics**
+ [使用案例](#systems-manager-parameter-use-case)
+ [許可](#systems-manager-permissions)
+ [限制](#AMI-systems-manager-parameter-limitations)
+ [使用 Systems Manager 參數啟動執行個體](#systems-manager-parameter-launch-instance)

## 使用案例
<a name="systems-manager-parameter-use-case"></a>

使用 Systems Manager 參數指向 AMI ID 時，能讓使用者在啟動執行個體時更輕鬆選取正確的 AMI。Systems Manager 參數還可以簡化自動化程式碼的維護。

**Easier for users (對使用者更簡單)**

如果您要求使用特定 AMI 啟動執行個體，且該 AMI 定期更新，我們建議您要求使用者選取 Systems Manager 參數來尋找 AMI。透過要求使用者選取 Systems Manager 參數，您可以確保使用最新的 AMI 來啟動執行個體。

例如，您可以在組織中每月建立新版本 AMI，其中包含最新的作業系統和應用程式修補程式。您也要求使用者使用最新版本的 AMI 來啟動執行個體。為了確保您的使用者使用最新版本，您可以建立指向正確 AMI ID 的 Systems Manager 參數 (例如 `golden-ami`)。每次建立新版 AMI 時，您都會更新參數中的 AMI ID 值，使其永遠指向最新的 AMI。您的使用者不需要知道 AMI 的定期更新，因為他們每次都會繼續選取相同的 Systems Manager 參數。使用 AMI 的 Systems Manager 參數可在啟動執行個體時更輕鬆地選取正確的 AMI。

**Simplify automation code maintenance (簡化自動化程式碼維護)**

如果您使用自動化程式碼來啟動執行個體，則可以指定 Systems Manager 參數而非 AMI ID。如果新版本的 AMI 已建立，您可以變更參數中的 AMI ID 值，使其指向最新的 AMI。每次建立新版本的 AMI 時，都不需要修改參考參數的自動化程式碼。如此可簡化自動化維護作業，並有助於降低部署成本。

**注意**  
當您變更 Systems Manager 參數指向的 AMI ID 時，執行中的執行個體不會受到影響。

## 許可
<a name="systems-manager-permissions"></a>

如果您在啟動執行個體精靈中使用指向 AMI ID 的 Systems Manager 參數，則必須新增下列許可至 IAM 政策：
+ `ssm:DescribeParameters` - 授予許可，以檢視及選取 Systems Manager 參數。
+ `ssm:GetParameters` - 授予許可，以擷取 Systems Manager 參數值。

您也可以限制對特定 Systems Manager 參數的存取。如需更多資訊與範例 IAM 政策，請參閱 [範例：使用 EC2 啟動執行個體精靈](iam-policies-ec2-console.md#ex-launch-wizard)。

## 限制
<a name="AMI-systems-manager-parameter-limitations"></a>

AMI 和 Systems Manager 參數是區域特定的。若要跨區域使用相同的 Systems Manager 參數名稱，請在每個區域中建立具有相同名稱的 Systems Manager 參數 (例如 `golden-ami`)。在每個區域中，將 Systems Manager 參數指向該區域中的 AMI。

參數名稱區分大小寫。參數名稱的反斜線只有在參數是階層的一部分時才需要，例如 `/amis/production/golden-ami`。如果參數不是階層架構的一部分，則可以省略反斜線。

## 使用 Systems Manager 參數啟動執行個體
<a name="systems-manager-parameter-launch-instance"></a>

啟動執行個體時，您可以指定指向 AMI ID 的 Systems Manager 參數，而非指定 AMI ID。

若要以程式設定方式指定參數，請使用下列語法，其中 `resolve:ssm` 是標準字首，`parameter-name` 是不重複的參數名稱。

```
resolve:ssm:{{parameter-name}}
```

Systems Manager 參數擁有版本支援。參數的每個反覆項目都會指定一個唯一的版本號碼。您可以參考參數的版本，如下所示，其中 `version` 是不重複的版本號碼。根據預設，在未指定任何版本時，會使用最新版本的參數。

```
resolve:ssm:{{parameter-name}}:{{version}}
```

若要使用 提供的公有參數啟動執行個體 AWS，請參閱 [使用 Systems Manager 公有參數來參考最新的 AMI](finding-an-ami-parameter-store.md)。

------
#### [ Console ]

**如需使用 Systems Manager 參數來尋找 AMI**

1. 在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 從導覽列選取要在其中啟動執行個體的區域。無論您的位置為何，皆可選取任何可用的區域。

1. 從主控台儀表板選擇 **Launch Instance** (啟動執行個體)。

1. 在 **Application and OS Images (Amazon Machine Image)** (應用程式和作業系統映像 (Amazon Machine Image)) 下，選擇 **Browse more AMIs** (瀏覽更多 AMI)。

1. 選擇搜尋列右側的箭頭按鈕，然後選擇 **Search by Systems Manager parameter** (依 Systems Manager 參數搜尋)。

1. 對於 **Systems Manager parameter** (Systems Manager 參數)，請選取一個參數。對應的 AMI ID 會出現在 **Currently resolves to** (目前解析為) 下方。

1. 選擇 **Search** (搜尋)。與 AMI ID 相符的 AMI 會顯示在清單中。

1. 從清單中選取 AMI，然後選取 **Select** (選取)。

如需有關使用啟動執行個體精靈啟動執行個體的詳細資訊，請參閱 [使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

------
#### [ AWS CLI ]

**如需使用 Systems Manager 參數來啟動執行個體**  
請使用 `--image-id` 選項並搭配 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令。此範例使用名稱為 **golden-ami** 的 Systems Manager 參數，這會指定 AMI ID。

```
--image-id resolve:ssm:/{{golden-ami}}
```

您可建立 Systems Manager 參數版本。下列範例會指定 **golden-ami** 參數的版本 2。

```
--image-id resolve:ssm:/{{golden-ami:2}}
```

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

**如需使用 Systems Manager 參數來啟動執行個體**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 搭配 `-ImageId` 參數。此範例使用名稱為 **golden-ami** 的 Systems Manager 參數，這會指定 AMI ID。

```
-ImageId "resolve:ssm:/golden-ami"
```

您可建立 Systems Manager 參數版本。下列範例會指定 **golden-ami** 參數的版本 2。

```
-ImageId "resolve:ssm:/golden-ami:2"
```

------