

 AWS 合作夥伴中心 API 參考已重組。如需支援的 API 操作的詳細資訊，請參閱 [AWS 合作夥伴中心 API 參考](https://docs.aws.amazon.com/partner-central/latest/APIReference/Welcome.html)。

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

# 在沙盒中測試AWS Partner Central Benefits API
<a name="testing-sandbox-benefits"></a>

## 如何使用沙盒
<a name="use-sandbox"></a>

若要使用沙盒，請完成下列步驟：

1. 建立 IAM 角色：

   在與您的AWS Partner Central 帳戶AWS 帳戶連結的 中建立 IAM 角色。

1. 指派政策：

   將下列政策指派給 IAM 角色。如需更多資訊，請參閱《[新增和移除 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)》。

   ```
   {
     "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Sid": "BenefitsManagement",
               "Effect": "Allow",
               "Action": [
                   "partnercentral:ListBenefits",
                   "partnercentral:GetBenefit",
                   "partnercentral:CreateBenefitApplication",
                   "partnercentral:AmendBenefitApplication",
                   "partnercentral:UpdateBenefitApplication",
                   "partnercentral:SubmitBenefitApplication",
                   "partnercentral:GetBenefitApplication",
                   "partnercentral:CancelBenefitApplication",
                   "partnercentral:RecallBenefitApplication",
                   "partnercentral:ListBenefitApplications",
                   "partnercentral:AssociateBenefitApplicationResource",
                   "partnercentral:DisasssociateBenefitApplicationResource",
                   "partnercentral:ListBenefitAllocations",
                   "partnercentral:GetBenefitAllocation",
                   "partnercentral:TagResource",
                   "partnercentral:UntagResource",
                   "partnercentral:ListTagsForResource"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "partnercentral:Catalog": [
                           "Sandbox"
                       ]
                   }
               }
           },
           {
               "Sid": "AWSPartnerOpportunityAccess",
               "Effect": "Allow",
               "Action": [
                   "partnercentral:GetAwsOpportunitySummary",
                   "partnercentral:GetOpportunity",
                   "partnercentral:ListOpportunities"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "partnercentral:Catalog": [
                           "Sandbox"
                       ]
                   }
               }
           },
           {
               "Sid": "ListingAWSMarketplaceEntities",
               "Effect": "Allow",
               "Action": [
                   "aws-marketplace:ListEntities"
               ],
               "Resource": "*"
           },
           {
               "Sid": "AWSMarketplaceOffersAccess",
               "Effect": "Allow",
               "Action": [
                   "aws-marketplace:DescribeEntity"
               ],
   
               "Resource": [
                   "arn:aws:aws-marketplace:::AWSMarketplace/Offer/*"
               ]
           },
           {
               "Sid": "S3PutObjectAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": ["arn:aws:s3:::aws-partner-central-marketplace-ephemeral-writeonly-files/*"]
           },
           {
               "Sid": "TaggingAccess",
               "Effect": "Allow",
               "Action": [
                   "partnercentral:TagResource",
                   "partnercentral:UntagResource",
                   "partnercentral:ListTagsForResource"
               ],
               "Resource": [
                   "arn:aws:partnercentral:us-east-1:*:catalog/Sandbox/benefit-application/*",
                   "arn:aws:partnercentral:us-east-1:*:catalog/Sandbox/benefit-allocation/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "partnercentral:Catalog": [
                           "Sandbox"
                       ]
                   }
               }
           }
       ]
   }
   ```

1. 使用 IAM 角色登入資料：

   在您的解決方案中使用此 IAM 角色的登入資料 （私密金鑰和存取金鑰） 來執行 API 動作。

## 測試AWS動作
<a name="testing-aws-actions"></a>

在測試階段，通常需要模擬AWS動作。此模擬可讓合作夥伴徹底測試其與AWS服務整合的完整end-to-end流程。每個請求都包含目錄參數，可決定資料環境。

### 模擬利益應用程式的建立
<a name="simulating-benefit-application"></a>

若要模擬利益應用程式的建立，請在 `CreateBenefitApplication`動作的承載中，將 包含在承載`"catalog": "Sandbox"`中。

例如：

```
{
  "Catalog": "Sandbox", 
  "ClientToken": "String", 
  "BenefitIdentifier": "String", 
  "FulfillmentTypes": ["String"],
  "BenefitApplicationDetails": JsonDocument,
  "Name": "String",
  "Description": "String",
  "Tags": [
    { 
      "Key": "string",
      "Value": "string"
    }
  ],
  "PartnerContacts": [ 
    { 
      "BusinessTitle": "string",
      "Email": "string",
      "FirstName": "string",
      "LastName": "string",
      "Phone": "string"
    }
  ],
  "FileDetails": [
    {
      "FileURI": "String", 
      "BusinessUseCase": "String"
    }
  ],
  "AssociatedResources": [
    {
      "ResourceType": "BENEFIT_ALLOCATION | OPPORTUNITY",
      "ResourceArn": "ARN"
    }
  ] 
}
```

## 其他測試備註
<a name="additional-testing-notes"></a>

1. 若要測試其他動作，請在承載`"catalog": "Sandbox"`中設定 。

1. 沙盒目錄和 AWS 目錄中的效益 IDs 不同。使用 進行 `GetBenefit` API 呼叫`"catalog": "Sandbox"`，以在沙盒中取得利益識別符。

1. 沙盒目錄和 AWS 目錄中的效益分配不同。

1. 若要移至生產環境，請將目錄值從 `Sandbox`變更為 `AWS`。

## 在沙盒環境中測試事件
<a name="testing-events"></a>

合作夥伴可以取用沙盒環境的事件，以協助測試事件型實作。AWS 帳戶使用規則在相同的 中設定 EventBridge，透過在事件詳細資訊`catalog: Sandbox`中指定 來接聽沙盒事件。如需詳細資訊，請參閱[AWS Partner Central Benefits API 的通知](benefits-api-events.md)。

範例事件規則：

```
{
  "source": ["aws.partnercentral-benefits"],
  "detail": {
    "catalog": ["Sandbox"]
  }
}
```

指定`catalog`為 的事件規則`Sandbox`只會比對來自沙盒的事件，這些事件是由您在沙盒環境中執行的動作所產生。