使用佈建變更類型 CTs) - AMS 進階應用程式開發人員指南

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

使用佈建變更類型 CTs)

AMS 負責您的受管基礎設施,若要進行變更,您必須提交具有正確 CT 分類 (類別、子類別、項目和操作) 的 RFC。本節說明如何尋找 CTs、判斷任何 是否適合您的需求,以及在沒有 CT 的情況下請求新的 CT。

查看現有的 CT 是否符合您的需求

確定要使用 AMS 部署的內容後,下一步是研究現有的 CTs和 CloudFormation 範本,以查看解決方案是否已存在。

建立 RFC 時,您必須指定 CT。您可以使用 AWS 管理主控台 或 AMS API/CLI。接下來將說明使用兩者的範例。

您可以使用 主控台或 API/CLI 來尋找變更類型 ID (CT) 或版本。有兩種方法:搜尋或選擇分類。對於這兩種選擇類型,您可以選擇最常使用最近使用按字母順序排序搜尋。

YouTube 影片如何使用 AWS Managed Services CLI 建立 RFC,以及在哪裡可以找到 CT 結構描述?

在 AMS 主控台的 RFCs -> 建立 RFC 頁面上:

  • 選取依變更類型瀏覽 (預設值) 時:

    • 使用快速建立區域從 AMS 最熱門CTs 中選取。按一下標籤,隨即開啟執行 RFC 頁面,並自動為您填入主旨選項。視需要完成其餘選項,然後按一下執行以提交 RFC。

    • 或者,向下捲動至所有變更類型區域,並開始在選項方塊中輸入 CT 名稱,您不需要具有確切或完整的變更類型名稱。您也可以輸入相關字詞,依變更類型 ID、分類或執行模式 (自動或手動) 搜尋 CT。

      選取預設檢視後,相符的 CT 卡會在您輸入時顯示,選取卡片並按一下建立 RFC。選取資料表檢視後,選擇相關的 CT,然後按一下建立 RFC。這兩種方法都會開啟執行 RFC 頁面。

  • 或者,若要探索變更類型選擇,請按一下頁面頂端的依類別選擇,以開啟一系列的下拉式選項方塊。

  • 選擇類別子類別項目操作。該變更類型的資訊方塊會顯示頁面底部的面板。

  • 當您準備好時,請按 Enter,並顯示相符的變更類型清單。

  • 從清單中選擇變更類型。該變更類型的資訊方塊會出現在頁面底部。

  • 在您擁有正確的變更類型之後,請選擇建立 RFC

注意

必須安裝 AMS CLI,這些命令才能運作。若要安裝 AMS API 或 CLI,請前往 AMS 主控台開發人員資源頁面。如需 AMS CM API 或 AMS SKMS API 的參考資料,請參閱《 使用者指南》中的 AMS 資訊資源一節。您可能需要新增身分驗證--profile選項,例如 aws amsskms ams-cli-command --profile SAML。您可能還需要新增 --region選項,因為所有 AMS 命令都用盡 us-east-1;例如 aws amscm ams-cli-command --region=us-east-1

注意

AMS API/CLI (amscm 和 amsskms) 端點位於 AWS N. Virginia 區域 us-east-1。根據身分驗證的設定方式,以及您的帳戶和資源所在的 AWS 區域,您可能需要在發出命令--region us-east-1時新增 。如果這是您的身分驗證方法--profile saml,您可能還需要新增 。

若要使用 AMS CM API 搜尋變更類型 (請參閱 ListChangeTypeClassificationSummaries) 或 CLI:

您可以使用篩選條件或查詢來搜尋。ListChangeTypeClassificationSummaries 操作具有 CategoryItemSubcategory和 的篩選條件選項Operation,但值必須完全符合現有的值。若要在使用 CLI 時獲得更靈活的結果,您可以使用 --query選項。

使用 AMS CM API/CLI 變更類型篩選
屬性 有效值 有效/預設條件 備註

ChangeTypeId

代表 ChangeTypeId 的任何字串 (例如:ct-abc123xyz7890)

等於

如需變更類型 IDs,請參閱變更類型參考

如需變更類型 IDs,請參閱尋找變更類型或 CSIO。

類別

任何自由格式文字

包含

不支援每個個別欄位中的規則運算式。不區分大小寫的搜尋

Subcategory

項目

作業

  1. 以下是列出變更類型分類的一些範例:

    下列命令會列出所有變更類型類別。

    aws amscm list-change-type-categories

    下列命令會列出屬於指定類別的子類別。

    aws amscm list-change-type-subcategories --category CATEGORY

    下列命令會列出屬於指定類別和子類別的項目。

    aws amscm list-change-type-items --category CATEGORY --subcategory SUBCATEGORY
  2. 以下是使用 CLI 查詢搜尋變更類型的一些範例:

    下列命令會搜尋項目名稱中包含 "S3" 的 CT 分類摘要,並以資料表形式建立類別、子類別、項目、操作和變更類型 ID 的輸出。

    aws amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries [?contains(Item, 'S3')].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table
    +---------------------------------------------------------------+ | ListChangeTypeClassificationSummaries | +----------+-------------------------+--+------+----------------+ |Deployment|Advanced Stack Components|S3|Create|ct-1a68ck03fn98r| +----------+-------------------------+--+------+----------------+
  3. 然後,您可以使用變更類型 ID 來取得 CT 結構描述並檢查參數。下列命令會將結構描述輸出至名為 CreateS3Params.schema.json.

    aws amscm get-change-type-version --change-type-id "ct-1a68ck03fn98r" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateS3Params.schema.json

    如需有關使用 CLI 查詢的資訊,請參閱如何使用 --query Option 篩選輸出和查詢語言參考 JMESPath Specification

  4. 在您擁有變更類型 ID 之後,建議您驗證變更類型的版本,以確保它是最新版本。使用此命令來尋找指定變更類型的版本:

    aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CHANGE_TYPE_ID

    若要尋找AutomationStatus特定變更類型的 ,請執行此命令:

    aws amscm --profile saml get-change-type-version --change-type-id CHANGE_TYPE_ID --query "ChangeTypeVersion.{AutomationStatus:AutomationStatus.Name}"

    若要尋找ExpectedExecutionDurationInMinutes特定變更類型的 ,請執行此命令:

    aws amscm --profile saml get-change-type-version --change-type-id ct-14027q0sjyt1h --query "ChangeTypeVersion.{ExpectedDuration:ExpectedExecutionDurationInMinutes}"

一旦找到您認為適當的 CT,請查看與其相關聯的執行參數 JSON 結構描述,以了解它是否解決您的使用案例。

使用此命令將 CT 結構描述輸出至以 CT 命名的 JSON 檔案;此範例會輸出建立 S3 儲存結構描述:

aws amscm get-change-type-version --change-type-id "ct-1a68ck03fn98r" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateBucketParams.json

讓我們仔細看看此結構描述提供的內容。

S3 儲存貯體建立結構描述
{ "$schema": "http://json-schema.org/draft-04/schema#", "name": "Create S3 Storage "description": "Use to create an Amazon Simple Storage Service stack.", "type": "object", "properties": { "Description": { "description": "The description of the stack.", "type": "string", "minLength": 1, "maxLength": 500 }, "VpcId": { "description": "ID of the VPC to create the S3 Bucket in, in the form vpc-a1b2c3d4e5f67890e.", "type": "string", "pattern": "^vpc-[a-z0-9]{17}$" }, "StackTemplateId": { "description": "Required value: stm-s2b72beb000000000.", "type": "string", "enum": ["stm-s2b72beb000000000"] }, "Name":{ "description": "The name of the stack to create.", "type": "string", "minLength": 1, "maxLength": 255 }, "Tags": { "description": "Up to seven tags (key/value pairs) for the stack.", "type": "array", "items": { "type": "object", "properties": { "Key": { "type": "string", "minLength": 1, "maxLength": 127 }, "Value": { "type": "string", "minLength": 1, "maxLength": 255 } }, "additionalProperties": false, "required": [ "Key", "Value" ] }, "minItems": 1, "maxItems": 7 }, "TimeoutInMinutes": { "description": "The amount of time, in minutes, to allow for creation of the stack.", "type": "number", "minimum": 0, "maximum": 60 }, "Parameters": { "description": "Specifications for the stack.", "type": "object", "properties": { "AccessControl": { "description": "The canned (predefined) access control list (ACL) to assign to the bucket.", "type": "string", "enum": [ "Private", "PublicRead", "AuthenticatedRead", "BucketOwnerRead" ] }, "BucketName": { "description": "A name for the bucket. The bucket name must contain only lowercase letters, numbers, periods (.), and hyphens (-).", "type": "string", "pattern": "^[a-z0-9]([-.a-z0-9]+)[a-z0-9]$", "minLength": 3, "maxLength": 63 } }, "additionalProperties": false, "required": [ "AccessControl", "BucketName" ] } }, "additionalProperties": false, "required": [ "Description", "VpcId", "StackTemplateId", "Name", "TimeoutInMinutes", "Parameters" ] }

結構描述從 CT ("description") 開始,它會告訴您結構描述的用途。在此情況下, 會建立 S3 儲存堆疊。

接下來,您有可指定的必要和選用屬性。會提供預設屬性值。所需的屬性會列在結構描述的結尾。

在 StackTemplateId 區域中,您會看到此 CT 和結構描述有一個特定的堆疊範本,其 ID 是必要的屬性值。

結構描述可讓您為建立的堆疊加上標籤,以供內部簿記之用。此外,備份等某些選項需要 Key:backup 和 Value:true 的標籤。如需深入資訊,請參閱標記您的 Amazon EC2 資源

CT JSON 結構描述的參數區段是您提供執行參數的位置。

對於此結構描述,只有 ACL 和 BucketName 是必要的執行參數。

請求新的 CT

檢查結構描述後,您可以決定它無法提供足夠的參數來建立您想要的部署。如果是這種情況,請檢查現有的 CloudFormation 範本,尋找更接近您想要的範本。一旦您知道所需的其他參數,請提交管理 | 其他 | 其他 | 建立 CT。

注意

所有其他 | 其他建立和更新 CTs會收到 AMS 操作員的注意,他們將與您聯絡以討論新的 CT。

若要提交新 CT 的請求,請透過一般存取 AMS 主控台,AWS 管理主控台然後遵循下列步驟。

  1. 在左側導覽中,按一下 RFCs

    RFCs儀表板頁面隨即開啟。

  2. 按一下 Create (建立)

    建立變更請求頁面隨即開啟。

  3. 類別下拉式清單中選取管理,並為子類別項目選取其他。針對操作,選擇建立。RFC 需要經過核准才能實作。

  4. 輸入您想要 CT 的原因資訊,例如:根據現有的建立 S3 儲存體 CT,請求允許自訂 ACLs 的修改後建立 S3 儲存體 CT。這應該會產生新的 CT:部署 | 進階堆疊元件 | S3 儲存 | 建立 S3 自訂 ACL。這個新的 CT 可能是公有的。

  5. 請按 Submit (提交)。

    RFC 儀表板上會顯示您的 RFC。

測試新的 CT

一旦 AWS Managed Services 建立了該新的 CT,您就可以透過提交 RFC 進行測試。如果您使用 AMS 將新的 CT 預先核准,您可以直接遵循標準 RFC 提交,並留意結果 (如需提交 RFCs的詳細資訊,請參閱建立和提交 RFC)。如果新的 CT 未預先核准 (您希望確保在未明確核准的情況下永遠不會執行),則每次您想要執行時,都需要與 AMS 討論其實作。