本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Service Catalog 服務動作
注意
AWS Service Catalog不支援地形開放原始碼或地形雲端產品的服務動作。
AWS Service Catalog 可讓您減少管理維護和最終使用者訓練,同時遵守合規和安全措施。身為管理員的您可借助服務動作讓最終使用者執行操作式任務、排除問題、執行核准的命令,或在 AWS Service Catalog 中請求許可。您可以使用 AWS Systems Manager 文件 定義服務動作。這些AWS Systems Manager文件可讓您存取實作AWS最佳實務的預先定義動作,例如 Amazon EC2 停止和重新開機,您也可以定義自訂動作。
在本教學中,您可以為最終使用者提供重新啟動 Amazon EC2 執行個體的功能。您新增必要的許可、定義服務動作、為服務動作與產品建立關聯,以及透過佈建的產品,利用動作來測試最終使用者體驗。
必要條件
此教學課程假設您具有完整的 AWS 管理員權限,您已熟悉 AWS Service Catalog,而且您已有一組基本產品、產品組合及使用者。如果您不熟悉 AWS Service Catalog,請先完成設定和開始任務,再使用此教學課程。
主題
步驟 1:設定最終使用者許可
使用者必須具備檢視及執行特定服務動作的必要權限。在此範例中,最終使用者需要許可才能存取AWS Service Catalog服務動作功能和執行 Amazon EC2 重新啟動。
更新權限
-
開啟 AWS Identity and Access Management (IAM) 主控台,網址為 https://console.aws.amazon.com/iam/
。 -
從功能表中找出使用者群組。
-
選擇最終使用者將用來存取AWS Service Catalog資源的群組。在這個範例中,我們選擇最終使用者群組。在您自己的實作中,選擇相關的最終使用者所使用的群組。
-
在群組的詳細資訊頁面的 Permissions (許可) 標籤上,可以建立新政策,或編輯現有的政策。在這個範例中,我們透過選取為群組的 AWS Service Catalog 佈建和終止許可而建立的自訂政策,將許可權加入到現有政策。
-
在 Policy (政策) 頁面上,選擇 Edit Policy (編輯政策) 以新增必要的許可。您可以使用視覺化編輯器或 JSON 編輯器來編輯政策。在這個範例中,我們使用 JSON 編輯器來新增權限。對於此教學課程,將下列政策加入到許可中:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1536341175150", "Action": [ "servicecatalog:ListServiceActionsForProvisioningArtifact", "servicecatalog:ExecuteprovisionedProductServiceAction", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution", "cloudformation:ListStackResources", "ec2:DescribeInstanceStatus", "ec2:StartInstances", "ec2:StopInstances" ], "Effect": "Allow", "Resource": "*" } ] }
-
在編輯政策後,審核及核准政策的變更。最終使用者群組中的使用者現在具有在中執行 Amazon EC2 重新啟動動作的必要許可AWS Service Catalog。
步驟 2:建立服務動作
接下來,建立服務動作以重新啟動 Amazon EC2 執行個體。
-
開啟主AWS Service Catalog控台,網址為 https://console.aws.amazon.com/sc/
。 -
從功能表中選擇 Service actions (服務動作)。
-
在 [服務動作] 頁面上,選擇 [建立動作]。
-
在 Create action (建立動作) 頁面中,選擇 AWS Systems Manager 文件來定義服務動作。Amazon EC2 執行個體重新啟動動作由AWS Systems Manager文件定義,因此我們將預設選項保留在 Amazon 文件下拉式功能表上。
-
搜尋並選擇-重新啟動 C2 執AWS行個體動作。
-
提供符合您環境和團隊動作的名稱和描述。最終使用者將會看到此描述,因此選擇可協助他們了解動作的選項。
-
在「參數和目標組態」下,選擇將成為動作目標的 SSM 文件參數 (例如,執行個體 ID),然後選擇參數的目標。選擇 Add parameter (新增參數) 以新增其他參數。
-
在 Permissions (許可) 下,選擇角色。我們為此範例使用預設的許可。此頁面可設定及定義其他許可組態。
-
檢閱組態之後,可選擇 Create action (建立動作)。
-
到了下一頁,當建立好動作並準備好開始使用時,出現確認訊息。
步驟 3:將服務動作與產品版本建立關聯
在您定義動作後,您必須為產品與該動作建立關聯。
-
在 [服務動作] 頁面上,選擇 AWS-重新啟動 C2 執行個體,然後選擇 [關聯動作]。
-
在 Associate action (關聯動作) 頁面,選擇您希望您的最終使用者採取服務動作的產品。在這個範例中,我們選擇 Linux Desktop (Linux 桌面)。
-
選擇產品版本。請注意,您可以使用最上面的核取方塊來選取所有的版本。
-
選擇 Associate action (建立關聯)。
-
在下一頁出現確認訊息。
現在您已經在 AWS Service Catalog 建立服務動作。此教學課程的下一步是以最終使用者身分使用服務動作。
步驟 4:測試最終使用者體驗
最終使用者可以在佈建的產品上執行服務動作。基於此教學課程的目的,最終使用者必須至少有一項佈建的產品。已佈建產品應該從您在之前步驟與服務動作關聯之產品版本啟動。
以最終使用者身分存取服務動作
-
以最終使用者身分登入 AWS Service Catalog主控台。
-
在導覽窗格的 AWS Service Catalog 儀表板上,選擇 Provisioned products list (佈建產品清單)。此清單會顯示為最終使用者帳戶佈建的產品。
-
在 Provisioned products list (佈建產品清單) 頁面上,選擇已佈建的執行個體。
-
在 [佈建的產品詳細資訊] 頁面上,選擇右上角的 [動作],然後選擇 AWS-Restar teC2 執行個體動作。
-
確認您要執行自訂動作。您收到確認表示動作已傳送。
步驟 5:管理服務動作 AWS CloudFormation
您可以建立服務動作及其與AWS CloudFormation資源的關聯。如需詳細資訊,請參閱《AWS CloudFormation 使用者指南》 中的下列主題:
注意
如果您管理與AWS CloudFormation資源的服務動作關聯,請勿透過或新增或移除服務動作AWS Management Console。AWS Command Line Interface當您執行堆疊更新時,會取代在以外對服務動作所做的AWS CloudFormation任何變更。
步驟 6:疑難排解
如果您的服務動作執行失敗,您可以在「已佈建的產品」頁面上服務動作執行事件的「輸出」區段中找到錯誤訊息。您可以在下方看到常見錯誤訊息的說明。
注意
錯誤消息的確切文本可能會改變,因此您應該避免在任何類型的自動化過程中使用這些文本。
內部錯誤
AWS Service Catalog 發生內部錯誤。請稍後再試。如果問題持續發生,請聯絡客戶支援。
調用 StartAutomationExecution 操作時ThrottlingException發生錯誤()
後端服務 (例如 SSM) 限制了服務動作執行。
假設角色時拒絕存取
AWS Service Catalog 無法承擔服務動作定義中指定的角色。請確定服務主體或區域主體,例如服務卡塔洛 .US 東部 -1.amazonaws.com,允許列在角色的信任原則中。
呼叫 StartAutomationExecution 作業時發生錯誤 (AccessDeniedException):使用者未授權在資源StartAutomationExecution 上執行:ssm:。
在服務動作定義中指定的角色沒有叫用 ssm: StartAutomationExecution 的權限。請確定角色具有適當的 SSM 權限。
TargetType
在已佈建產品中找不到任何具有類型的資源
佈建的產品不包含符合 SSM 文件中指定之目標類型的任何資源,例如:: EC2:AWS: 執行個體。請檢查佈建的產品是否有這些資源,或確認文件是否正確。
具有該名稱的文件不存在
服務動作定義中指定的文件不存在。
無法描述 SSM 自動化文件
AWS Service Catalog嘗試描述指定的文件時,發生來自 SSM 的未知例外狀況。
無法擷取角色的認證
假設指定的角色時 AWS Service Catalog 遇到未知的錯誤。
參數的值 "InvalidValue
" 在 {ValidValue1} 中找不到,{ValidValue2}
傳遞給 SSM 的參數值不在文件的允許值清單中。確認提供的參數有效,然後再試一次。
參數類型錯誤。提供的值不ParameterName
是有效的字串。
傳遞給 SSM 的參數值不適用於文件上的類型。
未在服務動作定義中定義參數
參數傳遞給未在服務動作定義中定義的 AWS Service Catalog。您只能使用在服務動作定義中定義的參數。
步驟在執行/取消動作時失敗。錯誤訊息。
請參閱自動化服務疑難排解指南以取得更多診斷詳情。
SSM 自動化文件中的步驟失敗。請參閱訊息中的錯誤,以進一步疑難排解。
不允許使用下列參數值,因為它們不在佈建的產品中:InvalidResourceId
使用者要求對不在佈建產品中的資源執行動作。
TargetType 未針對 SSM 自動化文件定義
服務動作需要有 TargetType 定義的 SSM 自動化文件。檢查您的 SSM 自動化文件。