

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

# 管理佈建產品
<a name="provisioned-products"></a>

AWS Service Catalog 提供用於管理佈建產品的介面。您可以根據存取層級為目錄檢視、更新以及終止所有佈建產品。請參考下列章節的範例程序。

**Topics**
+ [以管理員身分管理佈建產品](provisioned-products-admin.md)
+ [變更佈建產品擁有者](change-pp-owner.md)
+ [更新已佈建產品的範本](pp-templates.md)
+ [教學：識別使用者資源分配](provisioned-products-tutorial.md)
+ [管理 Terraform 開放原始碼產品狀態錯誤](provisioned-products-lifecycle.md)
+ [管理 Terraform 開放原始碼產品狀態檔案](getstarted-terraform-engine-state.md)

# 以管理員身分管理佈建產品
<a name="provisioned-products-admin"></a>

 若要管理帳戶的所有佈建產品，您必須擁有 `AWSServiceCatalogAdminFullAccess`或同等的 IAM 許可，才能存取佈建產品寫入操作。如需詳細資訊，請參閱[中的 Identity and Access Management AWS Service Catalog](controlling_access.md)。

**提示**  
 對於靜態佈建產品鏈結，您必須在佈建產品之前，參考產品成品範本中的佈建產品輸出。如需詳細資訊，包括範例，請參閱下列內容：  
 *AWS CloudFormation 《 使用者指南*》中的 [AWS::ServiceCatalog::CloudFormationProvisionedProduct](https://amazonaws.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#aws-resource-servicecatalog-cloudformationprovisionedproduct--examples)。
 《 *AWS Service Catalog 開發人員指南*》中的 [DescribeProvisioningParameters (ProvisioningArtifactOutputKeys)](https://amazonaws.com/servicecatalog/latest/dg/API_DescribeProvisioningParameters.html#API_DescribeProvisioningParameters_ResponseElements)。

**檢視並管理所有佈建產品**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 AWS Service Catalog 主控台。

   如果您已登入 AWS Service Catalog 主控台，請選擇 **Service Catalog**，然後選擇**最終使用者**。

1. 如有必要，請向下捲動至**佈建產品**區段。

1. 在**佈建產品**區段中，選擇**檢視：**清單，然後選取您要查看的存取層級：**使用者**、**角色**或**帳戶**。此動作會顯示目錄中所有佈建的產品。

1. 選擇佈建產品，以檢視、更新或終止。如需更多有關此檢視中提供的資訊，請參閱 [Viewing Provisioned Product Information](https://docs.aws.amazon.com/servicecatalog/latest/userguide/enduser-viewstack.html) (檢視佈建產品資訊)。

# 變更佈建產品擁有者
<a name="change-pp-owner"></a>

 您可以隨時變更佈建產品的擁有者。您必須知道要設為新擁有者之使用者或角色的 ARN。

 根據預設，此功能可供使用 `AWSServiceCatalogAdminFullAccess`受管政策的管理員使用。您可以透過授予最終使用者在 AWS Identity and Access Management (IAM) 中的`servicecatalog:UpdateProvisionedProductProperties`許可，為最終使用者啟用此功能。

**變更佈建產品的擁有者**

1.  在 AWS Service Catalog 主控台中，選擇**佈建產品清單**。

1. 找到您要更新的佈建產品，然後選擇其旁邊的三個點，然後選擇**變更佈建產品擁有者。 **您也可以在佈建產品的詳細資訊頁面上的動作****選單中找到**變更擁有者**選項。

1.  在對話方塊中，請輸入要設為新擁有者之使用者或角色的 ARN。ARN 以 `arn:` 為開頭，並包括以冒號或斜線分隔的其他資訊，例如 `arn:aws:iam::123456789012:user/NewOwner`。

1.  選擇**提交**。更新擁有者後，您將會看到成功訊息。

## 另請參閱
<a name="change-pp-owner-see-also"></a>
+  [UpdateProvisionedProductProperties](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_UpdateProvisionedProductProperties.html) 

# 更新已佈建產品的範本
<a name="pp-templates"></a>

您可以將佈建產品的目前範本變更為不同的範本。例如，如果您在 Service Catalog 中有 EC2 產品，您可以更新該 EC2 產品以保留相同的佈建產品 ID，但將範本變更為 S3 儲存貯體。

**注意**  
佈建的 Terraform 開放原始碼或 Terraform 雲端產品不支援更新範本。如果您想要為現有的 Terraform 產品使用不同的範本，您必須刪除產品，然後使用所需的範本建立新的產品。

**更新佈建產品的範本**

1. 在左側導覽功能表中，選擇**佈建產品**。

1. 在**佈建產品**中，選擇佈建產品，然後選取**動作**、**更新**。

   請注意，您也可以在**佈建產品詳細資訊**頁面中選取**動作**、**更新**。

1. （選用） 在**產品詳細資訊**中，選擇**變更產品**。

   在**變更產品**中，請注意此警告：

   *變更產品會將此佈建產品更新為不同的產品範本。這可能會終止資源並建立新的資源。*

   您可以將佈建的產品更新為相同產品中的不同版本。

1. （選用） 在**產品**中，選擇您要使用不同範本更新的產品。然後選擇**變更**。

   在**產品詳細資訊**中，請注意此警告：

   *【產品名稱】 將從 【目前範本名稱】 更新為 【新範本名稱】。不過，您佈建產品的名稱 【佈建產品名稱】 不會變更。*

   您可以將佈建的產品更新為相同產品中的不同版本。

1. 在**產品版本**中，選擇您想要的產品版本。

1. 在**參數**中，選擇適當的參數。

1. 選擇**更新**。

   在**佈建產品詳細資訊**中，您可以查看更新的詳細資訊。佈建的產品名稱不會變更，但佈建的產品現在有不同的範本。

# 教學：識別使用者資源分配
<a name="provisioned-products-tutorial"></a>

您可以使用 AWS Service Catalog 主控台來識別佈建產品的使用者，以及與產品相關聯的資源。本教學可協助將此範例翻譯為您自己特定的佈建產品。

若要管理帳戶所有的佈建產品，您需 `AWSServiceCatalogAdminFullAccess` 或佈建產品寫入操作的相同存取。如需詳細資訊，請參閱《 管理員指南》中的 [ Identity and Access Management](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/controlling_access.html)。 *AWS Service Catalog *

**為了識別佈建產品及相關資源的使用者**

1. 開啟 https：//[https://console.aws.amazon.com/servicecatalog](https://console.aws.amazon.com/servicecatalog)。

1. 在左側導覽功能表中，選擇**佈建產品**。

1. 在**存取篩選條件**下拉式功能表中，選擇**帳戶**。  
![\[Provisioned products interface with search bar, access filter dropdown, and table columns.\]](http://docs.aws.amazon.com/zh_tw/servicecatalog/latest/adminguide/images/access-filter-dropdown.png)

1. 在**帳戶**檢視中，選擇並開啟佈建產品以顯示其詳細資訊。  
![\[Provisioned products table showing one S3 bucket product with its creation date and status.\]](http://docs.aws.amazon.com/zh_tw/servicecatalog/latest/adminguide/images/account-view.png)

   您可以查看佈建產品的詳細資訊。

     
![\[Provisioned product details page showing status, ID, name, creation date, and other information.\]](http://docs.aws.amazon.com/zh_tw/servicecatalog/latest/adminguide/images/details-pp.png)

1. 向下捲動以展開**事件**區段。請注意 `Provisioned product ID`和 `CloudformationStackARN`值。  
![\[Events section showing UPDATE_PROVISIONED_PRODUCT with CloudFormationStackARN details.\]](http://docs.aws.amazon.com/zh_tw/servicecatalog/latest/adminguide/images/events-container.png)

1. 使用佈建的產品 ID 來識別與此啟動對應的 AWS CloudTrail 記錄，並識別請求的使用者 （通常是您在聯合期間輸入電子郵件地址）。在此範例中為「steve」。

   ```
   {
     "eventVersion":"1.03","userIdentity":
     {
       "type":"AssumedRole",
       "principalId":"[id]:steve",
       "arn":"arn:aws:sts::[account number]:assumed-role/SC-usertest/steve",
       "accountId":[account number],
       "accessKeyId":[access key],
       "sessionContext":
       {
         "attributes":
         {
           "mfaAuthenticated":[boolean],
           "creationDate":[timestamp]
         },
         "sessionIssuer":
         {
           "type":"Role",
           "principalId":"AROAJEXAMPLELH3QXY",
           "arn":"arn:aws:iam::[account number]:role/[name]",
           "accountId":[account number],
           "userName":[username]
         }
       }
     },
     "eventTime":"2016-08-17T19:20:58Z","eventSource":"servicecatalog.amazonaws.com",
     "eventName":"ProvisionProduct",
     "awsRegion":"us-west-2",
     "sourceIPAddress":[ip address],
     "userAgent":"Coral/Netty",
     "requestParameters":
     {
       "provisioningArtifactId":[id],
       "productId":[id],
       "provisioningParameters":[Shows all the parameters that the end user entered],
       "provisionToken":[token],
       "pathId":[id],
       "provisionedProductName":[name],
       "tags":[],
       "notificationArns":[]
     },
     "responseElements":
     {
       "recordDetail":
       {
         "provisioningArtifactId":[id],
         "status":"IN_PROGRESS",
         "recordId":[id],
         "createdTime":"Aug 17, 2016 7:20:58 PM",
         "recordTags":[],
         "recordType":"PROVISION_PRODUCT",
         "provisionedProductType":"CFN_STACK",
         "pathId":[id],
         "productId":[id],
         "provisionedProductName":"testSCproduct",
         "recordErrors":[],
         "provisionedProductId":[id]
       }
     },
     "requestID":[id],
     "eventID":[id],
     "eventType":"AwsApiCall",
     "recipientAccountId":[account number]
   }
   ```

1. 使用 `CloudformationStackARN`值來識別 CloudFormation 事件，以尋找所建立資源的相關資訊。您也可以使用 CloudFormation API 來取得此資訊。如需詳細資訊，請參閱 [AWS CloudFormation API 參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/)。

您可以使用 AWS Service Catalog API 或 執行步驟 1 到 4 AWS CLI。如需詳細資訊，請參閱[AWS Service Catalog 開發人員指南和](https://docs.aws.amazon.com/servicecatalog/latest/dg/what-is-service-catalog.html)[AWS Service Catalog 命令列參考。 ](https://docs.aws.amazon.com/cli/latest/reference/servicecatalog/)

# 管理 Terraform 開放原始碼產品狀態錯誤
<a name="provisioned-products-lifecycle"></a>

Terraform 開放原始碼`ProvisionProduct`失敗會路由至 `TAINTED` 狀態，允許每個佈建產品繼續至 `UpdateProvisionedProduct`。發生這種情況時：
+ `UpdateProvisionedProduct` **不會**嘗試更新或更正標籤，或建立或修改資源群組。
+ `UpdateProvisionedProduct` 在決定是否應該將佈建產品設定為 `AVAILABLE`或 時， **不會**考慮先前佈建操作的失敗`TAINTED`。

AWS Service Catalog 只會在 期間套用標籤`ProvisionProduct`。任何因`ProvisionProduct`操作失敗而導致的失敗標記**都不會**自動解決。

## 狀態錯誤範例
<a name="provisioned-products-lifecycle-errors"></a>

**範例 1： AWS Service Catalog 未在 期間建立資源群組** `ProvisionProduct`

在下列案例中，即使沒有支援的資源群組，而且沒有將任何標籤套用至資源，您仍有處於 `AVAILABLE` 狀態的佈建產品。

1. 您的動作會啟動 `ProvisionProduct`。

1. Terraform 佈建引擎會以`ProvisionProduct`工作流程失敗回應 ，且不提供 `ResourceIdentifier`。

1. `ProvisionProduct` 工作流程不會建立資源群組，然後將佈建的產品狀態設定為 `ERROR`。

1. 然後，您可以啟動 `UpdateProvisionedproduct`操作。

1. Terraform 佈建引擎回應指出「成功」。

1. 因此，`UpdateprovisionedProduct`工作流程會將佈建的產品狀態設定為 `AVAILABLE`，但**不會**建立資源群組，或嘗試套用任何標籤。

**範例 2： AWS Service Catalog 在 期間建立新資源** `UpdateProvisionedProduct`

在下列案例中，即使新資源**未**套用任何標籤，您仍有處於 `AVAILABLE` 狀態的佈建產品。

1. 您的動作會啟動 `ProvisionProduct`。

1. Terraform 佈建引擎回應指出「成功」並提供 `ResourceIdentifier`。

1. `ProvisionProduct` 工作流程會建立資源群組，並將標籤套用至所有已識別的資源。

1. 您會在建立新資源的新成品`UpdateProvisionedProduct`上啟動 。

1. Terraform 佈建引擎回應指出「成功」。

1. `UpdateProvisionedProduct` 工作流程會將佈建的產品狀態設定為 ，`AVAILABLE`但**不會**嘗試將任何其他標籤套用至新資源。

### 狀態錯誤解決方案
<a name="provisioned-products-lifecycle-solutions"></a>

AWS Service Catalog 確保為所有`TAINTED`從 設定為 的佈建產品建立資源群組`ProvisionProduct`。如果 Terraform 佈建引擎未傳回 `ResourceIdentifier`，或如果 AWS Service Catalog 無法建立資源群組，則佈建產品會設為 `ERROR` 狀態，強制您終止。

# 管理 Terraform 開放原始碼產品狀態檔案
<a name="getstarted-terraform-engine-state"></a>

每個 Terraform 開放原始碼佈建產品都有**單一狀態檔案**。佈建的產品與其狀態檔案之間有 1：1 的關係。檔案存放在名為 的 Amazon S3 儲存貯體中`sc-terraform-engine-state-${AWS::AccountId}-${AWS::Region}`。狀態檔案會儲存在 `AccountID`或 `ProvisionedProductID` 物件金鑰下。

狀態檔案存取僅限於 `GetStateFile` AWS Lambda 和 Amazon EC2 啟動範本。 AWS Service Catalog 管理員**無法**直接存取 Amazon S3 中的狀態檔案。管理員必須使用 Amazon EC2 存取檔案。根據預設， AWS Service Catalog 管理員可以查看狀態檔案的清單，但無法讀取或寫入檔案內容。只有 Terraform 佈建引擎可以讀取或寫入檔案內容。