設定自動更新 - Microsoft Windows 的 Amazon Kinesis Kinesis 代理程式

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

設定自動更新

使用appsettings.json組態檔案,以啟用適用於微軟視窗的 Amazon Kinesis 代理程式自動更新,以及適用於視窗的 Kinesis 代理程式的組態檔案。若要控制更新行為,請在組態檔案 SourcesSinks 以及 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檔案mycompanyAmazon 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 鍵/值對的值,以推動不同套件版本檔案的自動選取。如需變數替換的詳細資訊,請參閱設定目的地變數替換

AccessKey

指定要使用哪個存取金鑰來驗證 Amazon S3 中的套件版本檔案存取權。這個鍵/值對是選用的。我們不建議您使用此鍵/值對。如需其他建議的身份驗證方法,請參閱設定身份驗證

SecretKey

指定要使用哪個秘密金鑰來驗證 Amazon S3 中的套件版本檔案存取權。這個鍵/值對是選用的。我們不建議您使用此鍵/值對。如需其他建議的身份驗證方法,請參閱設定身份驗證

Region

指定要使用哪個區域端點從 Amazon S3 存取套件版本檔案。這個鍵/值對是選用的。

ProfileName

指定要使用哪個安全性描述檔來驗證 Amazon S3 中的套件版本檔案存取權。如需詳細資訊,請參閱 設定身份驗證。這個鍵/值對是選用的。

RoleARN

指定要擔任哪個角色來驗證跨帳戶案例中 Amazon S3 套件版本檔案存取權。如需詳細資訊,請參閱 設定身份驗證。這個鍵/值對是選用的。

如果未指定任何 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檔案mycompanyAmazon S3 儲存貯體。

注意

的值SourceAmazon S3 中鍵/值對會區分大小寫。

變數替換會影響 Source 鍵/值對的值,以推動不同組態檔案的自動選取。如需變數替換的詳細資訊,請參閱設定目的地變數替換

Destination

指定組態檔案要存放在本機電腦的位置。這可以是相對路徑、絕對路徑,或是包含環境變數參考的路徑,例如 %PROGRAMDATA%。如果是相對路徑,即會相對於 Windows 版 Kinesis 代理程式安裝的位置。一般而言,值應該是 .\appsettings.json。這個鍵/值對是必要的。

AccessKey

指定要使用哪個存取金鑰來驗證 Amazon S3 中的組態檔案存取權。這個鍵/值對是選用的。我們不建議您使用此鍵/值對。如需其他建議的身份驗證方法,請參閱設定身份驗證

SecretKey

指定要使用哪個秘密金鑰來驗證 Amazon S3 中的組態檔案存取權。這個鍵/值對是選用的。我們不建議您使用此鍵/值對。如需其他建議的身份驗證方法,請參閱設定身份驗證

Region

指定要使用哪個區域端點從 Amazon S3 存取組態檔案。這個鍵/值對是選用的。

ProfileName

指定要使用哪個安全描述檔來驗證 Amazon S3 中的組態檔案存取權。如需詳細資訊,請參閱 設定身份驗證。這個鍵/值對是選用的。

RoleARN

指定要擔任哪個角色來驗證跨帳戶案例中的 Amazon S3 中的組態檔案存取權。如需詳細資訊,請參閱 設定身份驗證。這個鍵/值對是選用的。

如果未指定任何 ConfigUpdate 外掛程式,則不會檢查任何組態檔案來判斷是否需要組態檔案更新。

下列為示範使用 PackageUpdateConfigUpdate 外掛程式的範例 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" } ] }