本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 3:設定環境以執行指令碼
使用下列命令將您的環境設定為執行指令碼。
pipenv install -r requirements.txt pipenv shell
注意
目前,指令碼只能在應用程式管理員中佈建單層應用程式。例如,如果您對同一堆疊中的兩個圖層執行指令碼兩次,指令碼會在「應用程式管理員」中建立兩個不同的應用程式。
設定環境之後,請檢閱指令碼參數。您可以執行命令來檢視移轉python3
stack_exporter.py --help
指令碼的可用選項。
參數 | 描述 | 必要 | Type | 預設值 |
---|---|---|---|---|
--layer-id |
匯出此 OpsWorks 圖層 ID 的 CloudFormation 範本。 | 是 | string | |
--region |
OpsWorks 堆疊的 AWS 區域。如果您的 OpsWorks 堆疊區域和 API 端點區域不同,請使用堆疊區域。此區域與 OpsWorks堆疊中其他資源部分 (例如 EC2 執行個體和子網路) 的區域相同。 | 否 | string | us-east-1 |
--provision-application |
依預設,指令碼會佈建 CloudFormation 範本所匯出的應用程式。將此參數傳遞至值為 FALSE 的指令碼,即可略過 CloudFormation範本的佈建。 | 否 | Boolean | TRUE |
--launch-template |
此參數定義是使用現有的啟動範本,還是建立新的啟動範本。您可以建立使用建議執行個體屬性的新啟動範本,或使用與線上執行個體相符的執行個體屬性。 有效值包含:
|
否 | string | RECOMMENDED |
--system-updates |
定義是否在執行個體啟動時執行核心和套件更新。 有效值包含:
|
否 | string | ALL_UPDATES |
--http-username |
Systems Manager SecureString 參數的名稱,此參數會將用來驗證的使用者名稱儲存至包含自訂食譜的 HTTP 封存檔。 |
否 | string | |
--http-password |
Systems Manager SecureString 參數的名稱,此參數會將用來驗證的密碼儲存至包含自訂食譜的 HTTP 封存檔。 |
否 | string | |
--repo-private-key |
Systems Manager SecureString 參數的名稱,此參數會將用來驗證的 SSH 金鑰儲存至包含自訂食譜的儲存庫。如果存放庫已開啟 GitHub,您必須產生新的 Ed25519 SSH 金鑰。如果您未產生新的Ed25519 安全殼層金鑰,則與 GitHub 存放庫的連線會失敗。 |
否 | string | |
--lb-type |
移轉現有負載平衡器時要建立的負載平衡器類型 (如果有的話)。 有效值包含:
|
否 | string | ALB |
--lb-access-logs-path |
用於存放負載平衡器存取日誌的現有 S3 儲存貯體和前置詞的路徑。S3 儲存貯體和負載平衡器必須位於相同區域。如果您未提供值且--lb-type 參數值設定為None ,則指令碼會建立新的 S3 儲存貯體和前置詞。請確定此前置字元有適當的儲存貯體政策。 |
否 | string | |
--enable-instance-protection |
如果設定為TRUE ,則指令碼會為您的自 Auto Scaling 群組建立自訂終止政策 (Lambda 函數)。具有protected_instance 標籤的 EC2 執行個體受到保護,不受擴充事件影響。為每個要保護不受擴充事件影響的 EC2 執行個體新增protected_instance 標籤。 |
否 | Boolean | FALSE |
--command-logs-bucket |
用於存放AWS ApplyChefRecipe 和MountEBSVolumes 日誌的現有 S3 儲存貯體的名稱。如果您未提供值,指令碼會建立新的 S3 儲存貯體。 |
否 | string | aws-opsworks-application-manager-logs- |
--custom-json-bucket |
用於存放自訂 JSON 的現有 S3 儲存貯體的名稱。如果您未提供值,指令碼會建立新的 S3 儲存貯體。 | 否 | string | aws-apply-chef-application-manager-transition-data- |
備註:
-
如果您使用私人 GitHub 存放庫,則必須為 SSH 建立新的
Ed25519
主機金鑰。這是因為 GitHub 更改了 SSH 中支持的密鑰,並刪除了未加密的 Git 協議。如需有關Ed25519
主機金鑰的詳細資訊,請參閱 < 改善 Git 通訊協定安全性> 的 GitHub部落格文章 GitHub。產生新的 Ed25519
主機金鑰後,請為安全殼層金鑰建立 Systems ManagerSecureString
參數,並使用SecureString
參數名稱做為--repo-private-key
參數的值。若要取得有關如何建立「Systems Manager」SecureString
參數的更多資訊,請 SecureString 參閱《AWS Systems Manager 使用指南》中的建立參數 (AWS CLI) 或建立 Systems Manager 參數 (主控台)。 -
--http-password
和--repo-private-key
參數參考「Systems Manager」SecureString
參數的名稱。--http-username
當您執行AWS-ApplyChefRecipes
文件時,移轉指令碼會使用這些參數。 -
此
--http-username
參數需要您同時指定--http-password
參數的值。 -
此
--http-password
參數需要您同時指定--http-username
參數的值。 -
請勿同時為
--http-password
和設定值--repo-private-key
。提供安全殼層金鑰的 Systems ManagerSecureString
參數名稱 (--repo-private-key
) 或儲存庫使用者名稱 (--http-username
) 和密碼 (--http-password
)。