

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

# 設定自動更新
<a name="update-configuration-options"></a>

使用`appsettings.json`組態檔案，以啟用適用於微軟視窗的 Amazon Kinesis 代理程式自動更新，以及適用於視窗的 Kinesis 代理程式的組態檔案。若要控制更新行為，請在組態檔案 `Sources`、`Sinks` 以及 `Pipes` 相同層級中指定 `Plugins` 鍵/值對。

`Plugins` 鍵/值對可指定其他要使用的一般功能；這些功能不特別歸在來源、目的地及管道類別中。例如，有個外掛程式可用來更新 Windows 版 Kinesis 代理程式，而且有個外掛程式可用來更新`appsettings.json`組態檔案。外掛程式會以 JSON 物件表示，且一律具備 `Type` 鍵/值對。`Type` 決定可針對外掛程式指定其他哪些鍵/值對。目前支援下列外掛程式類型：

`PackageUpdate`  
指定 Windows 版 Kinesis 組態檔案，應該定期檢查套件版本組態檔案。如果套件版本檔案指出應該安裝不同版本的 Windows 版本的 Kinesis 代理程式，則 Windows 版本的 Kinesis 代理程式會下載該版本並加以安裝。`PackageUpdate` 外掛程式鍵/值對包含：    
`Type`  
此值必須是字串 `PackageUpdate`，且是必要的。  
`Interval`  
指定檢查套件版本檔案的頻率以尋找任何變更 (以分鐘為單位、字串表示)。這個鍵/值對是選用的。如果未指定，預設值為 60 分鐘。如果值小於 1，就不會進行任何更新檢查。  
`PackageVersion`  
指定套件版本 JSON 檔案的位置。檔案可位於檔案共享 (`file://`)、網站 (`http://`) 或 Amazon S3 (`s3://`。例如，值為`s3://mycompany/config/agent-package-version.json`表示適用於 Windows 的 Kinesis 代理程式應該檢查`config/agent-package-version.json`檔案`mycompany`Amazon S3 儲存貯體。您應該根據該檔案的內容來執行更新。  
的值`PackageVersion`中鍵/值對對對 Amazon S3 會區分大小寫。
下列為套件版本檔案的內容範例：  

```
{
    "Name": "AWSKinesisTap",
    "Version": "1.0.0.106",
    "PackageUrl": "https://s3-us-west-2.amazonaws.com/kinesis-agent-windows/downloads/AWSKinesisTap.{Version}.nupkg"
}
```
所以此`Version`中鍵/值對會指定應該安裝哪個版本的 Windows 版本的 Kinesis 代理程式 (如果尚未安裝)。`PackageUrl` 中的 `{Version}` 變數參考可解析您為 `Version` 鍵/值對指定的值。在此範例中，會將變數解析為字串 `1.0.0.106`。提供此變數解析時，您即可在版本套件版本檔案的單一位置中存放所需的特定版本。您可以使用多個套件版本檔案，來控制採用新版本的 Windows 版 Kinesis Agent 進度，在大型部署之前先驗證新版本。若要復原 Windows 專用 Kinesis 代理程式的部署，請將一或多個套件版本檔案變更為指定您環境中已知可用的 Windows 舊版 Kinesis 代理程式。  
變數替換會影響 `PackageVersion` 鍵/值對的值，以推動不同套件版本檔案的自動選取。如需變數替換的詳細資訊，請參閱[設定目的地變數替換](sink-object-declarations.md#configuring-kinesis-agent-windows-sink-variable-substitution)。  
`AccessKey`  
指定要使用哪個存取金鑰來驗證 Amazon S3 中的套件版本檔案存取權。這個鍵/值對是選用的。我們不建議您使用此鍵/值對。如需其他建議的身份驗證方法，請參閱[設定身份驗證](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication)。  
`SecretKey`  
指定要使用哪個秘密金鑰來驗證 Amazon S3 中的套件版本檔案存取權。這個鍵/值對是選用的。我們不建議您使用此鍵/值對。如需其他建議的身份驗證方法，請參閱[設定身份驗證](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication)。  
`Region`  
指定要使用哪個區域端點從 Amazon S3 存取套件版本檔案。這個鍵/值對是選用的。  
`ProfileName`  
指定要使用哪個安全性描述檔來驗證 Amazon S3 中的套件版本檔案存取權。如需詳細資訊，請參閱 [設定身份驗證](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication)。這個鍵/值對是選用的。  
`RoleARN`  
指定要擔任哪個角色來驗證跨帳戶案例中 Amazon S3 套件版本檔案存取權。如需詳細資訊，請參閱 [設定身份驗證](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication)。這個鍵/值對是選用的。
如果未指定任何 `PackageUpdate` 外掛程式，則不會檢查任何套件版本檔案來判斷是否需要更新。

`ConfigUpdate`  
指定 Windows 版 Kinesis 代理程式應定期檢查是否有更新的`appsettings.json`組態檔案存放在檔案共享、網站或 Amazon S3 中。如果存在更新的組態檔案，即會下載並安裝 Kinesis 組態檔案。`ConfigUpdate`鍵/值對包含下列項目：    
`Type`  
此值必須是字串 `ConfigUpdate`，且是必要的。  
`Interval`  
指定檢查新組態檔案的頻率 (以分鐘為單位、字串表示)。這個鍵/值對是選用的；如果未指定，預設值為 5 分鐘。如果值小於 1，則不會檢查組態檔案更新。  
`Source`  
指定要在何處尋找更新的組態檔案。檔案可位於檔案共享 (`file://`)、網站 (`http://`) 或 Amazon S3 (`s3://`。例如，值為`s3://mycompany/config/appsettings.json`表示 Windows 版 Kinesis 代理程式應該檢查`config/appsettings.json`檔案`mycompany`Amazon S3 儲存貯體。  
的值`Source`Amazon S3 中鍵/值對會區分大小寫。
變數替換會影響 `Source` 鍵/值對的值，以推動不同組態檔案的自動選取。如需變數替換的詳細資訊，請參閱[設定目的地變數替換](sink-object-declarations.md#configuring-kinesis-agent-windows-sink-variable-substitution)。  
`Destination`  
指定組態檔案要存放在本機電腦的位置。這可以是相對路徑、絕對路徑，或是包含環境變數參考的路徑，例如 `%PROGRAMDATA%`。如果是相對路徑，即會相對於 Windows 版 Kinesis 代理程式安裝的位置。一般而言，值應該是 `.\appsettings.json`。這個鍵/值對是必要的。  
`AccessKey`  
指定要使用哪個存取金鑰來驗證 Amazon S3 中的組態檔案存取權。這個鍵/值對是選用的。我們不建議您使用此鍵/值對。如需其他建議的身份驗證方法，請參閱[設定身份驗證](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication)。  
`SecretKey`  
指定要使用哪個秘密金鑰來驗證 Amazon S3 中的組態檔案存取權。這個鍵/值對是選用的。我們不建議您使用此鍵/值對。如需其他建議的身份驗證方法，請參閱[設定身份驗證](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication)。  
`Region`  
指定要使用哪個區域端點從 Amazon S3 存取組態檔案。這個鍵/值對是選用的。  
`ProfileName`  
指定要使用哪個安全描述檔來驗證 Amazon S3 中的組態檔案存取權。如需詳細資訊，請參閱 [設定身份驗證](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication)。這個鍵/值對是選用的。  
`RoleARN`  
指定要擔任哪個角色來驗證跨帳戶案例中的 Amazon S3 中的組態檔案存取權。如需詳細資訊，請參閱 [設定身份驗證](sink-object-declarations.md#configuring-kinesis-agent-windows-authentication)。這個鍵/值對是選用的。
如果未指定任何 `ConfigUpdate` 外掛程式，則不會檢查任何組態檔案來判斷是否需要組態檔案更新。

下列為示範使用 `PackageUpdate` 和 `ConfigUpdate` 外掛程式的範例 `appsettings.json` 組態檔案。在此範例中，有個套件版本檔案位於`mycompany`名為的 Amazon S3 儲存貯體`config/agent-package-version.json`。系統大約每隔 2 小時會檢查此檔案是否有任何變更。如果套件版本檔案中指定不同版本的 Windows Kinesis Agent，即會從套件版本檔案指定的位置來安裝指定的代理程式版本。

除此之外，還有一個`appsettings.json`組態檔案儲存在`mycompany`名為的 Amazon S3 儲存貯體`config/appsettings.json`。系統大約每隔 30 分鐘會比較該檔案與目前的組態檔案。如果不同，即會從 Amazon S3 下載更新的組態檔案，並將其安裝到`appsettings.json`組態檔案。

```
{
  "Sources": [
    {
      "Id": "ApplicationLogSource",
      "SourceType": "DirectorySource",
      "Directory": "C:\\LogSource\\",
      "FileNameFilter": "*.log",
      "RecordParser": "SingleLine"
    }
  ],
  "Sinks": [
    {
       "Id": "ApplicationLogKinesisFirehoseSink",
       "SinkType": "KinesisFirehose",
       "StreamName": "ApplicationLogFirehoseDeliveryStream",
       "Region": "us-east-1"
    }  
    ],
  "Pipes": [
    {
      "Id": "ApplicationLogSourceToApplicationLogKinesisFirehoseSink",
      "SourceRef": "ApplicationLogSource",
      "SinkRef": "ApplicationLogKinesisFirehoseSink"
    }
  ],
  "Plugins": [
    {
      "Type": "PackageUpdate"
      "Interval": "120",
      "PackageVersion": "s3://mycompany/config/agent-package-version.json"
    },
    {
      "Type": "ConfigUpdate",
      "Interval": "30", 
      "Source": "s3://mycompany/config/appsettings.json",
      "Destination": ".\appSettings.json"      
    }
  ]
}
```