对 AWS 合作伙伴中心 API 参考进行了重组。有关支持的 API 操作的更多信息,请参阅 AWS 合作伙伴中心 API 参考。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置和身份验证
使用 AWS 合作伙伴中心 API 进行设置和身份验证涉及三个步骤。以下是该过程的概述:
-
将您的 AWS Marketplace 卖家账户关联到合作伙伴中心。
-
使用 IAM 设置权限。
-
使用签名版本 4 (SigV4) 对您的 API 调用进行身份验证。
链接你的 AWS 账户 前往合作伙伴中心
将您关联 AWS 账户 到合作伙伴中心是使用 API 的先决条件。有关更多信息,请参阅将 AWS 合作伙伴平台账户与 AWS Marketplace 卖家账户关联起来。您必须使用具有联盟领导权限或云管理员权限的账户登录 Partner Central,导航至该Account Linking部分并按照提示进行操作。
设置 IAM
要使用 AWS 合作伙伴中心 API,您需要一个 AWS Identity and Access Management (IAM) 角色或 IAM 用户才能开始拨打电话。有关更多信息,请参阅何时使用 IAM?。为此,请按照 AWS 账户 指南中的创建 IAM 角色和创建 IAM 用户的步骤进行操作。您必须 Role/User 在您的合作伙伴 Central-linked AWS Marketplace 卖家账户中创建此 IAM。 role/user 创建 IAM 不会产生任何费用。
-
创建 IAM Role/User
登录 AWS 管理控制台,导航到 IAM 服务,然后按照步骤创建 IAM 角色或 IAM 用户。
-
分配策略:
根据需要附加托管策略或创建自定义策略。要修改或扩展权限,请对 IAM 角色应用其他策略,而不是将中的内容
AWSPartnerCentralOpportunityManagement与其他权限复制和合并。避免重复托管策略,因为这样做会阻止你在新功能发布时自动获得访问权限,而且你将来必须手动更新策略。有关访问策略的更多详细信息,请参阅访问控制文档。
管理 AWS Marketplace 优惠
要管理 AWS Marketplace 优惠并将其与机会关联起来,合作伙伴必须授予 IAM 角色访问目录 API 的权限。确保 role/user 具有权限,例如aws-marketplace:ListEntities和aws-marketplace:SearchAgreements。
对 API 调用进行身份验证
AWS 合作伙伴中心 API 使用签名版本 4 (SigV4) 进行身份验证。以下是实现它的方法:
使用 AWS SDK
AWS SDK 会自动处理请求签名。提供您的 AWS 证书,剩下的就交给 SDK 了。
-
对于 Java,请参阅为 Java AWS 开发工具包提供临时证书。
-
对于 Python (Boto3),请参阅凭证。
-
对于 JavaScript (Node.js),请参阅中的设置凭据 Node.js。
-
对于 .NET,请参阅凭据和配置文件解析。
-
有关其他编程语言和更多示例,请参阅构建工具 AWS
。
在不使用的情况下进行身份验证 AWS SDK
如果 S AWS DK 不适用于您选择的编程语言,则身份验证包括手动创建规范请求、对请求进行签名和处理会话令牌。 AWS 为使用 SigV4 签名提供了全面的指导。但是,请注意,建议使用 AWS SDK,因为手动签名请求会增加复杂性并且需要仔细管理安全令牌。
每个 AWSJSON1_0 协议的请求都必须使用 HTTP “POST” 方法使用以下标头发送到根网址 (/)。
必需的标头
AWSJSON1_0 协议的每个 API 请求都必须使用以下标头使用 HTTP “POST” 方法发送到根网址 (/)。
| 标题 | 必需 | 说明 |
|---|---|---|
| Content-Type | true | 此标头的静态值为application/x-amz-json-1.0。 |
| Content-Length | true | 由 RFC 9110 #section -8.6 定义的标准 Content-Length 标头。 |
| X-Amz-Target | 对于请求来说是正确的 | 例如,服务操作CreatePartner的值PartnerCentralAccount为PartnerCentralAccount.CreatePartner。 |
使用自定义用户代理对您的电话进行签名
在向 P AWS artner Central 提出 API 请求时,我们建议添加X-Amzn-User-Agent标头,以帮助 AWS 识别客户应用程序的来源、监控使用情况和审核性能。 AWS 使用此标头来区分进行调用的客户端应用程序的类型,并收集有关不同客户端实现成功率的见解。
自定义用户代理标头
标题名称:X-Amzn-User-Agent
目的:区分发出 API 请求的客户端类型,对交互来源进行分类。
Format: {Integrator}|{Product}
示例值:AWS|AWS Partner CRM Connector
在每个请求中包含此标头可以 AWS 分析请求模式、跟踪集成并改善不同客户端系统的 API 体验。
在 SDK 中使用自定义标头
要将标X-Amzn-User-Agent头包含在 SDK 调用中,您可以在进行 API 调用之前修改客户端请求行为。以下是使用适用于 Python 的 AWS 软件开发工具包 (Boto3) 的销售 API 示例:
# Requires the AWS SDK for Python (Boto3) import boto3 # Define service and endpoint details service_name = "partnercentral-selling" endpoint_url = "https://partnercentral-selling.us-east-1.api.aws" # Create a boto3 client for Partner Central partner_central_client = boto3.client( service_name=service_name, region_name='us-east-1', endpoint_url=endpoint_url ) # Function to add the custom User-Agent header def add_version_header(params, **kwargs): params["headers"]['X-Amzn-User-Agent'] = 'AWS|AWS Partner CRM Connector' # Register the event to modify the request before the call is made partner_central_client.meta.events.register( f'before-call.{service_name}.*', add_version_header ) # Now, whenever an API call is made using this client, the custom User-Agent header will be included
此示例演示如何在 Boto3 SDK 中注册事件以自动将X-Amzn-User-Agent标头附加到每个 API 请求。通过修改其各自的请求拦截机制,可以将同样的方法应用于其他 AWS SDK。
注意
标X-Amzn-User-Agent题格式已简化。我们建议使用新格式。为了向后兼容,仍然支持以前的格式 (CompanyName|ProductName|CRMName|ProductVersion)。现有集成将继续运行,无需修改。