

 AWS 合作伙伴中心 API 参考已重新构建。有关支持的 API 操作的更多信息，请参阅 [AWS 合作伙伴中心 API 参考](https://docs.aws.amazon.com/partner-central/latest/APIReference/Welcome.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在沙箱中测试AWS合作伙伴中心权益 API
<a name="testing-sandbox-benefits"></a>

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

要使用沙箱，请完成以下步骤：

1. 创建一个 IAM 角色：

   在与您的AWS合作伙伴中心账户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 actions
<a name="testing-aws-actions"></a>

在测试阶段，通常需要模拟AWS动作。该模拟使合作伙伴能够全面测试其与AWS服务集成的完整端到端流程。每个请求都包含一个用于确定数据环境的目录参数。

### 模拟福利申请的创建
<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 目录中的权益 ID 不同。使用进行 `GetBenefit` API 调用`"catalog": "Sandbox"`以在沙盒中获取福利标识符。

1. 沙盒目录和 AWS 目录中的福利分配不同。

1. 要移至生产环境，请将目录值从更改`Sandbox`为`AWS`。

## 在沙盒环境中测试事件
<a name="testing-events"></a>

合作伙伴可以使用沙盒环境中的事件，以帮助测试基于事件的实现。通过 EventBridge 在事件详细信息中指定来设置监听沙盒事件`catalog: Sandbox`的规则。AWS 账户有关更多信息，请参阅 [的通知AWS合作伙伴中心权益 API](benefits-api-events.md)。

事件规则示例：

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

指定`catalog`为的事件规则`Sandbox`将仅匹配来自沙箱的事件，这些事件是由您在沙盒环境中执行的操作生成的。