本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将你的 SaaS 合同与 pay-as-you-go产品集成 AWS Marketplace
将您的产品与集成 AWS Marketplace 仅一步之遥在中创建 SaaS 产品 AWS Marketplace。要将您的软件即服务 (SaaS) 合同产品与集成 AWS Marketplace,您必须编写代码并证明它可以成功响应多种客户场景。以下各节描述了这些场景,解释了如何应对这些场景,并概述了测试集成的情况。
注意
在开始之前,请确保您已为 AWS Marketplace中的软件即服务 (SaaS) 产品选择正确的定价模式。有关更多信息,请参阅 规划你的 SaaS 产品。
场景:您的服务验证新客户
当客户订阅您的产品时,他们会被重定向到您的注册URL,这是一个使用临时x-amzn-marketplace-token
令牌的HTTPPOST请求。通过下列方式来响应此请求:
-
将令牌兑换
CustomerIdentifier
CustomerAWSAccountId
、,然后ProductCode
调用中的ResolveCustomer
API操作 AWS Marketplace Metering Service。 -
通过调用 AWS Marketplace Entitlement Service中的
GetEntitlements
操作来验证客户可以访问的订阅和数量(如适用)。 -
在系统中保留
CustomerIdentifier
、CustomerAWSAccountId
和ProductCode
,以备将来调用。存储客户是否拥有有效的订阅,以及您需要的有关该客户的任何信息。 -
作为对请求的响应,您必须展示用户的首次使用体验(如果适用于您的服务)。
场景:您的服务处理客户请求
当客户向您的服务提出请求时,您必须通过适当的操作或消息来响应以下情形:
-
他们在系统中没有客户 ID。这表明他们尚未订阅。您应该给他们发送消息,描述如何订阅。
-
他们有客户 ID,
GetEntitlements
API操作会返回相应的权限。在这种情况下,您应该满足请求。 -
他们确实有客户 ID,但该
GetEntitlements
API操作未返回任何权利,或者返回的数量不足以满足请求。在这种情况下,您必须确定如何处理访问权限和管理他们的体验。
场景:计量用量
当客户开始使用您的服务时,您必须每小时发送一次计量记录。有关如何计量的详细信息,请参阅为 SaaS 订阅的使用情况配置计量。
我们建议您使用 AWS CloudTrail 监控活动,以确保账单信息已发送至 AWS。在发送计量记录时,请记住以下几点:
-
将按小时去除重复的计量请求。
-
每小时发送的记录是累积的。
-
即使过去一小时内没有记录,我们也强烈建议实施最佳实操,即每小时发送一次计量记录(用量为 0)。
场景:监控用户权利的变化
设置亚马逊简单队列服务 (AmazonSQS) 队列,并订阅您产品的亚马逊主题 SNS ——有两个SNS主题,一个用于权利变更,另一个用于订阅变更。您的主题信息包含在您创建商品时从 AWS Marketplace 卖家运营团队收到的电子邮件中。有关更多信息,请参阅 在中创建 SaaS 产品 AWS Marketplace。订阅您的SNS主题后,您将收到有关客户订阅变更的通知,包括为特定客户提供或撤消访问权限。
注意
订阅变更的 Amazon 资源名称 (ARN) SNS 主题如下所示arn:aws:sns:us-east-1:
。权利变更ARN的SNS主题如下所示<account
id>
:aws-mp-subscription-notification-<product
code>
arn:aws:sns:us-east-1:
。<account
id>
:aws-mp-entitlement-notification-<product
code>
您必须响应的通知如下:
-
entitlement-updated
(在权利SNS主题中)— 客户权利已更改,您必须致电GetEntitlements
API操作人员才能查看新状态。更新您的客户商店,如果适用(例如,客户的合同已失效),请执行关闭客户资源的实操,遵守您的保留策略。 -
subscribe-success
(在订阅SNS主题中)— 客户已订阅,您可以成功地根据他们的客户 ID 进行计量。 -
unsubscribe-pending
(在订阅SNS主题中)-客户正在取消订阅。您应该发送所有最后的计量记录。 -
unsubscribe-success
(在订阅SNS主题中)-客户已取消订阅。将不再接受客户的计量记录。执行您关闭客户资源的实操,遵守您的保留策略。 -
subscribe-fail
(在订阅SNS主题中)-客户订阅失败。您不应根据他们的客户 ID 进行计量或代表客户启用资源。
注意
有关更多信息,请参阅 使用检查权利 AWS Marketplace Entitlement Service。
测试您的 SaaS 合同产品集成
将合同与 pay-as-you-go产品整合后 AWS Marketplace,必须进行深入测试以确保集成成功。以下过程概述了验证产品集成的步骤。
注意
使用您自己的账户订阅您的产品并测试集成是否成功。可以暂时降低价格,以便您能够测试购买流程,而不会在这些账户中产生较高的费用。有关暂时降低价格或允许其他测试账户访问您的产品的更多信息,请联系 AWS Marketplace 卖家运营
产品推出后,该服务必须继续对新客户的这些情形做出响应。
-
使用允许的账户通过获取产品合同来测试客户体验。
-
账户获得合约后,请确保将该账户重定向到注册URL,并且重定向是包含临时令牌的POST请求。确保您的应用程序保留客户 ID 以备将来调用之用,并正确处理客户拥有的权利。这测试了场景:您的服务验证新客户中的一部分。
-
在上一步中验证测试账户后,将该账户注册到应用程序中。例如,您可以让测试客户填写表单来创建新的用户。或者,向这些客户提供其他后续步骤以获取对 SaaS 应用程序的访问权限。这测试了场景:您的服务验证新客户中的一部分。
-
如果
GetEntitlements
API操作未返回任何权利,无论是在入职期间还是在正在进行的验证通行证中,则您的应用程序必须正确管理无权用户的访问权限和体验。这测试了场景:您的服务处理客户请求。 -
测试客户入职后,使用中的
BatchMeterUsage
API操作提出请求,将计量记录发送到以 AWS 用于计费。 AWS Marketplace Metering Service这测试了场景:计量用量。 -
测试订阅变更。验证您的应用程序是否正确处理取消订阅、成功订阅和订阅失败的情况。这测试了场景:监控用户权利的变化。
-
完成所有集成要求并测试解决方案后,请通知 AWS Marketplace 卖家运营团队。然后,他们将通过验证您是否已成功调用该
GetEntitlements
API操作并充分吸引新客户来测试解决方案。他们还将验证您是否已成功发送该BatchMeterUsage
API操作的计量记录。
集成和测试完成后,您可以进行最终审核并将您的产品公之于众 AWS Marketplace。有关更多信息,请参阅 在中创建 SaaS 产品 AWS Marketplace。