AWS Proton 元件 - AWS Proton

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

AWS Proton 元件

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

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

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

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

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

注意

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

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

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

    如需有關此屬性的詳細資訊,請supportedComponentSources參閱 CreateServiceTemplateVersionAPI 參中 API 動作的AWS Proton參數。

    注意

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

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

    有關指派元件角色的詳細資訊,請componentRoleArn參閱 CreateEnvironmentAPI 參中 API 動作的AWS Proton參數。

    注意

    組件角色不在自我管理的佈建環境中使用。

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

在許多方面,組件類似於其他AWS Proton資源。它們的基礎結構是在 IaC 範本檔案中定義,以AWS CloudFormation YAML 或地形 HCL 格式撰寫。 AWS Proton可以使用AWS管理佈建或自我管理佈建來佈建元件基礎結構。

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

  • 分離狀態 — 元件的設計目的是連接到服務執行個體並擴充其基礎結構,但也可以處於分離狀態,在此狀態中它們不會連接到任何服務執行個體。如需元件狀態的詳細資訊,請參閱元件狀態

  • 沒有模式-組件沒有像模板包那樣的關聯模式。組件輸入由服務定義。當元件連接至服務執行個體時,元件可能會消耗輸入。

  • 沒有客戶管理的元件 —AWS Proton 永遠為您佈建元件基礎架構。沒有自帶的資源版本的組件。如需客戶管理環境的詳細資訊,請參閱建立環境

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

  • 無 CodeBuild基於佈建 — 您無法使用自己的自訂佈建指令碼 (稱為CodeBuild基礎佈建) 佈建直接定義的元件。如需詳細資訊,請參閱 CodeBuild佈建的運作方式

AWS Proton控制台中的組件

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

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

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

    環境詳細資料和服務執行個體詳細資料頁面上也有類似的清單。這些清單只會顯示與正在檢視之資源相關聯的元件。當您從這些清單之一建立元件時,請在「建立元件」頁面AWS Proton預先選取相關的環境。

  • 元件詳細資訊 — 若要檢視元件詳細資訊頁面,請在「元」清單中選擇元件名稱。

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

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

  • 更新元件 — 若要更新元,請在 [元件] 清單中選取元件,然後在 [動作] 功能表上選擇 [更新元件]。或者,在 [元件詳細資訊] 頁面上,選擇 [更新]。

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

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

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

AWS ProtonAPI 中的元件和AWS CLI

使用AWS Proton API 或建立、更新、檢視和使用AWS Proton元件。AWS CLI

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

其他AWS Proton資源的下列 API 動作具有與元件相關的某些功能。

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

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

元件

什麼是組件的生命週期?

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

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

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

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

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

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

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

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

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