AWS Proton 元件 - AWS Proton

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

AWS Proton 元件

組件是一種AWS Proton資源。他們增加了服務模板的靈活性。元件為平台團隊提供擴充核心基礎架構模式的機制,並定義保護措施,讓開發人員能夠管理其應用程式基礎架構的各個層面。

InAWS Proton系統管理員會定義跨開發團隊和應用程式使用的標準基礎結構。但是,開發團隊可能需要為其特定使用案例包含其他資源,例如 Amazon Simple Queue Service (Amazon SQS) 佇列或 Amazon DynamoDB 表。這些應用程式特定資源可能會經常變更,特別是在早期應用程式開發期間 在管理員編寫的範本中維護這些頻繁變更可能很難管理和擴展 — 管理員需要維護更多的範本,而不需要真正的系統管理員附加價值。另一種方法是讓應用程式開發人員為其應用程式編寫範本,也不理想,因為它會消除系統管理員標準化主要架構元件的能力,例如AWS Fargate任務。這時候就要用到元件。

使用元件,開發人員可以將補充資源新增至其應用程式,超出管理員在環境和服務範本中定義的範圍之外。然後,開發人員將組件附加到服務實例。AWS Proton佈建元件所定義的基礎結構資源,就像它為環境和服務執行個體佈建資源一樣。

組件可以讀取服務實例輸入並提供輸出到服務實例,以獲得完全集成的體驗。例如,如果元件新增 Amazon Simple Storage Service (Amazon S3) 貯體供服務執行個體使用,則元件範本可以將環境和服務執行個體名稱納入考量以命名儲存貯體。時機AWS Proton呈現服務模板以提供服務實例,服務實例可以引用存儲桶並使用它。

該組件AWS Proton目前支持直接定義的元件。您將定義元件基礎結構基礎結構的基礎結構即程式碼 (IaC) 檔案傳遞給AWS ProtonAPI 或主控台。這與環境或服務不同,您可以在模板包中定義 IaC 並將包註冊為模板資源,然後使用模板資源來創建環境或服務。

注意

直接定義的元件可讓開發人員定義額外的基礎架構並進行佈建。AWS Proton使用相同的規定在同一環境中運行的所有直接定義的組件AWS Identity and Access Management(IAM) 角色。

管理員可以通過兩種方式控制開發人員可以使用組件執行的操作:

  • 支援的元件來源— 管理員可以根據屬性,允許將元件附加到服務實例AWS Proton服務範本版本。根據預設,開發人員無法將元件附加到服務執行個體。

    如需此屬性的詳細資訊,請參閱supportedComponentSources的參數CreateServiceTemplateVersionAPI 動作AWS ProtonAPI 參考

    注意

    當您使用範本同步時,AWS Proton當您將變更提交至存放庫中的服務範本組合時,會隱含地建立服務範本版本。在這種情況下,您不需要在建立服務範本版本期間指定支援的元件來源,而是在與每個服務範本主要版本相關聯的檔案中指定此屬性。如需詳細資訊,請參閱 同步服務範本

  • 元件角色— 管理員可以將元件角色指派給環境。AWS Proton當它佈建由環境中直接定義的元件定義的基礎結構時,會承擔此角色。因此,元件角色會限制開發人員可以使用環境中直接定義的元件新增的基礎結構。在沒有組件角色的情況下,開發人員無法在環境中創建直接定義的組件。

    如需有關指派元件角色的詳細資訊,請參閱componentRoleArn的參數CreateEnvironmentAPI 動作AWS ProtonAPI 參考

    注意

    元件角色僅用於AWS-管理佈建環境。它們並未使用自我管理佈建環境。

組件與其他組件如何比較AWS Proton資源?

在許多方面,組件類似於其他AWS Proton的費用。他們的基礎架構定義在Iac 範本檔案,以任一方式撰寫AWS CloudFormationYAML 或地形 HCL 格式。AWS Proton可以佈建元件基礎結構AWS-管理佈建或者自我管理佈建

但是,組件與其他組件不同AWS Proton資源在幾個方面:

  • 分離狀態— 元件設計為連接到服務執行個體並擴充其基礎結構,但也可以位於超脫狀態,其中它們未連接到任何服務實例。如需元件狀態的詳細資訊,請參閱元件狀態

  • 無結構描述-組件沒有類似的關聯模式範本套件有些許差異。組件輸入由服務定義。當元件連接至服務執行個體時,元件可能會消耗輸入。

  • 沒有客戶管理的元件–AWS Proton始終為您佈建組件基礎結構。沒有使用自有資源元件的版本。如需客戶管理環境的詳細資訊,請參閱建立環境

  • 無範本資源— 直接定義的元件沒有類似於環境和服務範本的關聯範本資源。您可以直接提供給元件的 IaC 範本檔案。同樣地,您可以直接提供定義範本語言和轉譯引擎的資訊清單,以佈建元件的基礎結構。您撰寫範本檔案和資訊清單的方式類似於撰寫範本套件。但是,使用直接定義的組件,沒有要求將 IaC 文件存儲為捆綁在特定位置,並且不需要在中創建模板資源AWS Proton出 IaC 文件。

中的元件AWS Proton安慰

使用AWS Proton用於建立、更新、檢視和使用的主控台AWS Proton元件。

下列主控台頁面與元件有關。我們包括直接鏈接到頂級控制台頁面。

  • 元件— 查看您的組件列表AWS帳戶。您可以建立新元件,以及更新或刪除現有元件。在清單中選擇元件名稱,以檢視其詳細資訊頁面。

    類似的列表也存在於環境詳細資訊服務執行個體細節(證已建立!這些清單只會顯示與正在檢視之資源相關聯的元件。當您從下列其中一個清單建立元件時,AWS Proton預先選取關聯的環境建立元件(憑證已建立!) 頁面上的名稱有些許差異。

  • 元件詳細資訊— 若要檢視元件詳細資訊頁面,請在元件清單。

    在詳細資訊頁面上,檢視元件詳細資訊和狀態,以及更新或刪除元件。檢視和管理已佈建的輸出清單 (例如,已佈建的資源 ARN)AWS CloudFormation堆棧和分配的標籤。

  • 建立元件— 建立元件。輸入元件名稱和說明、選擇關聯的資源、指定元件來源 IaC 檔案,然後指定標籤。

  • 更新元件— 若要更新元件,請選取元件列表,然後,在動作功能表中,選擇更新元件。或是,在元件詳細資訊頁面,選擇更新

    您可以更新大部分元件的詳細資料。您無法更新元件名稱。您也可以選擇是否要在成功更新之後重新部署元件。

  • 設定環境— 當您建立或更新環境時,您可以指定元件角色。此角色控制在環境中執行直接定義元件的能力,並提供佈建元件的權限。

  • 建立新的服務範本版本— 當您建立服務範本版本時,您可以指定支援的元件來源範本版本。這可控制根據此範本版本將元件附加至服務的服務執行個體的能力。

中的元件AWS ProtonAPI 和AWS CLI

使用AWS Proton應用程式介面或AWS CLI以建立、更新、檢視和使用AWS Proton元件。

以下 API 動作直接管理AWS Proton元件資源。

其他 API 動作AWS Proton資源具有與組件相關的一些功能。

  • CreateEnvironmentUpdateEnvironment— 使用componentRoleArn以指定 IAM 服務角色的 Amazon Resource Name (ARN)AWS Proton在此環境中佈建直接定義的元件時使用。它決定了一個直接定義的組件可以佈建的基礎結構的範圍。

  • CreateServiceTemplateVersion— 使用supportedComponentSources,以指定支援的元件來源。具有支援來源的元件可以根據此服務範本版本附加至服務執行個體。

元件常見問答集

什麼是一個組件的生命週期?

組件可以在附著或者超脫狀態。它們被設計為連接到服務實例,並在大多數情況下增強其基礎架構。分離的組件處於過渡狀態,可讓您以受控且安全的方式刪除組件或將其附加到另一個服務實例。如需詳細資訊,請參閱 元件狀態

為什麼我無法刪除貼附的元件?

解決方案:若要刪除附加的元件,請更新元件以將其與服務執行個體中斷連結,驗證服務執行個體的穩定性,然後刪除該元件。

為什麼這是必需的? 附加元件會提供應用程式執行其執行階段功能所需的額外基礎結構。服務執行個體可能正在使用元件輸出來偵測並使用此基礎結構的資源。刪除元件,藉此移除其基礎結構資源,可能會對連接的服務執行個體造成干擾。

作為一項額外的安全措施,AWS Proton要求您更新元件並將其從其服務執行個體中分離,然後才能刪除它。然後,您可以驗證您的服務執行個體,以確保其繼續部署和正常運作。如果您偵測到問題,您可以快速將元件重新連接至服務執行個體,然後解決問題。當您確信您的服務實例對組件沒有任何依賴時,可以安全地刪除該組件。

為什麼我不能直接更改組件的附加服務實例?

解決方案:若要變更附件,請更新元件以將其與服務執行個體分離,驗證元件和服務執行個體的穩定性,然後將元件附加至新的服務執行個體。

為什麼這是必需的? 組件被設計為連接到服務實例。您的元件可能會使用服務執行個體輸入來進行基礎結構資源命名和組態。變更連接的服務執行個體可能會對元件造成干擾 (除了服務執行個體可能中斷之外,如前面的常見問題集所述),為什麼我無法刪除貼附的元件?。例如,它可能會導致重新命名,甚至可能取代元件的 IaC 範本中定義的資源。

作為一項額外的安全措施,AWS Proton要求您更新元件並將其從其服務執行個體中分離,然後才能將其連接到另一個服務執行個體。然後,您可以先驗證元件和服務執行個體的穩定性,然後再將元件附加到新的服務執行個體。