

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

# 在沒有 AWS AppConfig 代理程式的情況下擷取組態資料
<a name="about-data-plane"></a>

從 擷取組態資料的建議方法是 AWS AppConfig 使用 Amazon 開發的受管 AWS AppConfig 代理程式。使用 代理程式，您可以在本機快取組態資料，並以非同步方式輪詢 AWS AppConfig 資料平面服務以進行更新。此快取/輪詢程序可確保您的組態資料隨時可供應用程式使用，同時將延遲和成本降至最低。如果您不想使用代理程式，可以直接從 AWS AppConfig 資料平面服務呼叫公有 APIs。

資料平面服務使用兩個 API 動作：[StartConfigurationSession](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html) 和 [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html)。資料平面服務也會使用與 AWS AppConfig 控制平面[不同的端點](https://docs.aws.amazon.com/general/latest/gr/appconfig.html#appconfigdata_data_plane)。

**注意**  
資料平面服務會使用 `GetConfiguration` API 動作取代先前擷取組態資料的程序。`GetConfiguration` API 已棄用。

**運作方式**  
以下是使用資料平面服務直接呼叫 AWS AppConfig APIs 的程序運作方式。

您的應用程式會先使用 [StartConfigurationSession](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html) API 操作建立組態工作階段，以擷取組態資料。然後，您工作階段的用戶端會定期呼叫 [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html)，以檢查和擷取可用的最新資料。

呼叫 時`StartConfigurationSession`，您的程式碼會傳送下列資訊：
+ 工作階段追蹤之 AWS AppConfig 應用程式、環境和組態描述檔的識別符 (ID 或名稱）。
+ （選用） 工作階段用戶端在呼叫 之間必須等待的最短時間`GetLatestConfiguration`。

作為回應， AWS AppConfig 會提供 `InitialConfigurationToken` 給工作階段的用戶端，並在第一次`GetLatestConfiguration`呼叫該工作階段時使用。

**重要**  
在您第一次呼叫 時，此字符只能使用一次`GetLatestConfiguration`。每次後續呼叫 時，*您必須在*`GetLatestConfiguration`回應 (`NextPollConfigurationToken`) 中使用新的字符`GetLatestConfiguration`。為了支援長輪詢使用案例，字符的有效期最長為 24 小時。如果`GetLatestConfiguration`呼叫使用過期的字符，系統會傳回 `BadRequestException`。

呼叫 時`GetLatestConfiguration`，您的用戶端程式碼會傳送其擁有且收到的最近`ConfigurationToken`值，以回應：
+ `NextPollConfigurationToken`：下次呼叫 時要使用`ConfigurationToken`的值`GetLatestConfiguration`。
+ `NextPollIntervalInSeconds`：用戶端在下一次呼叫 之前應等待的持續時間`GetLatestConfiguration`。
+ 組態：用於工作階段的最新資料。如果用戶端已有最新版本的組態，這可能是空的。

**重要**  
記下以下重要資訊。  
[StartConfigurationSession](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html) API 每個應用程式、環境、組態描述檔和用戶端只能呼叫一次，以使用 服務建立工作階段。這通常在您的應用程式啟動時或在第一次擷取組態之前立即完成。
如果您的組態是使用 部署`KmsKeyIdentifier`，則接收組態的請求必須包含呼叫 的許可`kms:Decrypt`。如需詳細資訊，請參閱 *AWS Key Management Service API 參考*中的[解密](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)。
先前用於擷取組態資料的 API 操作 `GetConfiguration`已棄用。`GetConfiguration` API 操作不支援加密組態。

## （範例） 透過呼叫 AWS AppConfig APIs 擷取組態
<a name="appconfig-retrieving-the-configuration-example"></a>

下列 AWS CLI 範例示範如何使用 AWS AppConfig 資料`StartConfigurationSession`和 `GetLatestConfiguration` API 操作擷取組態資料。第一個命令會啟動組態工作階段。此呼叫包含 AWS AppConfig 應用程式、環境和組態描述檔的 IDs （或名稱）。API 會傳回`InitialConfigurationToken`用來擷取組態資料的 。

```
aws appconfigdata start-configuration-session \
    --application-identifier application_name_or_ID \
    --environment-identifier environment_name_or_ID \
    --configuration-profile-identifier configuration_profile_name_or_ID
```

系統會以下列格式回應相關資訊。

```
{
   "InitialConfigurationToken": initial configuration token
}
```

啟動工作階段後，請使用 [InitialConfigurationToken](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html#API_appconfigdata_StartConfigurationSession_ResponseSyntax) 呼叫 [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html) 來擷取您的組態資料。組態資料會儲存至 `mydata.json` 檔案。

```
aws appconfigdata get-latest-configuration \
    --configuration-token initial configuration token mydata.json
```

第一次呼叫 `GetLatestConfiguration`會使用從 `ConfigurationToken`取得的 `StartConfigurationSession`。會傳回下列資訊。

```
{
    "NextPollConfigurationToken" : next configuration token,
    "ContentType" : content type of configuration,
    "NextPollIntervalInSeconds" : 60
}
```

後續對 的呼叫`GetLatestConfiguration`*必須*`NextPollConfigurationToken`從先前的回應提供。

```
aws appconfigdata get-latest-configuration \
    --configuration-token next configuration token mydata.json
```

**重要**  
請注意 `GetLatestConfiguration` API 操作的下列重要詳細資訊：  
`GetLatestConfiguration` 回應包含顯示組態資料的`Configuration`區段。只有在系統找到新的或更新的組態資料時，才會顯示 `Configuration`區段。如果系統找不到新的或更新的組態資料，則`Configuration`資料為空白。
您會在 的每個回應`ConfigurationToken`中收到新的 `GetLatestConfiguration`。
建議您根據預算、組態部署的預期頻率，以及組態的目標數目，調整 `GetLatestConfiguration` API 呼叫的輪詢頻率。