AWS Marketplace

Using AWS Marketplace SaaS Quick Start to simplify your SaaS integration

AWS Marketplace now enables sellers, independent software vendors (ISVs), and consulting partners (CPs) to complete the AWS Marketplace SaaS product API integration in as little as 10 minutes. This new ability is a reliable and lightweight alternative to the traditional engineering-intensive custom integrations performed by big engineering shops or outsourced to third-party integrators for tens of thousands of dollars.

Our Quick Start solution deploys a minimal collection of services that fulfill the core capabilities required to integrate a vendor’s SaaS solution with its corresponding listing on AWS Marketplace.

In this blog post, I will show you how to use our Quick Start solution to programmatically update everything you need to perform a successful SaaS integration with the following core capabilities:

  • Accepting new customer registrations
  • Granting and revoking customer access
  • Updating customer entitlements
  • Reporting metered usage for both contract and subscription-based products.

Prerequisites

To use this solution, you must meet the following prerequisites.

Solution: using AWS Marketplace SaaS Quick Start to simplify your SaaS integration

Step 1: Launching via Quick Start

AWS Quick Starts provides you with a link that automatically loads the deployment template into CloudFormation. Choose this link for AWS Marketplace SaaS Quick Start.

Step 2: Setting up the stack

Step 1 takes you to the AWS CloudFormation console. The template source field should be pre-filled. To proceed, choose Next.

The Serverless SaaS solution must be deployed within us-east-1. It does not work in other Regions currently.
Ensure your Region is set to N. Virginia (us-east-1) if it isn’t already. Please consult Choosing a Region to learn how to change your Region.

2.1 Specify stack details

On the next screen, provide the following inputs.

    • Stack name: Choose a unique stack name for the deployment. I entered saas-serverless-integration-stack.
    •  Integration configuration: Use the dropdown to select between contracts_with_subscription,” contracts, and subscriptions. This selection should match the pricing model of your limited listing.
    •  Create registration page: If you want to deploy the buyer registration page as part of this solution, keep this parameter set to the default true. If you have your own registration page you’d like to implement, set this parameter to false.
    •  WebsiteS3BucketName: Provide the S3 bucket that will hold the static HTML registration page files. This name must meet the bucket name rules described in the Amazon S3 User Guide.
    •  ProductCode: Enter the product code provided from AWS Marketplace at the time of limited listing publication.
    •  SubscriptionSNSTopic: If your product is a SaaS subscription or Saas contract with subscription, use the entitlement SNS topic provided from AWS Marketplace at the time of limited listing publication.
    • EntitlementSNSTopic: If your product is a SaaS contract, use the entitlement SNS topic provided from AWS Marketplace at the time of limited listing publication.
    • NewSubscribersTableName: Use the unique name of the DynamoDB table used to store buyer subscription information.
    • AWSMarketplaceMeteringRecordsTableName: This field is only required for SaaS subscription or Saas contract with subscription pricing models. Use the unique name of the DynamoDB table used to report buyer usage.
    • MarketplaceTechAdminEmail: Provide the email address that will receive SNS notifications for new customer registrations, entitlement changes, and subscription events.
    • Artifact S3 Bucket: Do not change the default bucket name.

Once you makes these inputs, choose Next.

2.2 Configure stack option

You have the option to tag and configure your stack. We recommend leaving everything as default. Choose Next.

2.3 Review

Accept the CloudFormation terms and choose Create stack.

2.4 Stack creation

Stack creation typically takes 10 minutes. Once the stack has successfully deployed all of the integration resources, the status of your stack will change to CREATE_COMPLETE.

Step 3: Configure the solution

Before you handle customer transactions, configure the following.

3.1 Confirm SNS subscription

The MarketplaceTechAdmin email address you provided above will receive an email notification to confirm subscription to the Support SNS topic. This SNS topic will send out information on new subscribers and subscription/entitlement updates. Confirm your subscription to the SNS topic.

3.2 Set up your registration page

After your stack has launched successfully, set up your registration page and connect it with the API Gateway created by the stack. Your registration page will be hosted in the website S3 bucket that was created by the stack earlier.

    1. Download the website files to your local computer.
    2. Unzip the file and open the web folder to access the files inside.
    3.  Retrieve the API ID of the API Gateway deployed by the stack.
    4. Open the file named scripts.js and update the baseUrl property in line 1 with the API ID you just retrieved from the API Gateway console. Save the changes to the file.

This example shows my changes to the file from steps 3.2.1-4:

    • Before: const baseUrl = ‘https://API-ID.execute-api.us-east-1.amazonaws.com/Prod/’;
    •  After: const baseUrl = ‘https://qy7ryx6nkg.execute-api.us-east-1.amazonaws.com/Prod/’;

5. Open the website S3 bucket created by the stack in your S3 console, and upload the five files in the web folder to the S3 bucket.

Your integration is now ready for use.

3.3 Create a qualified redirect from AWS Marketplace
Since CloudFront distribution is used to ensure low latency for the registration page, the SaaS fulfillment URL is the CloudFront CName (domain name) of the distribution created by the stack. To retrieve the domain name, do the following:

    1. Go to the CloudFront console. In the left sidebar under ID, select the ID that was generated after running the stack. Copy the Distribution domain name. You will paste it to the SaaS URL field on step 3.4.
    2. If you try to access the Distribution domain name directly, you will see a Registration Token Missing error. This is because you are attempting to access it without a qualified redirect from AWS Marketplace.

3.4 Update the SaaS URL on your limited SaaS listing

Access the open request you have for your limited listing on the AWS Marketplace Management Portal by navigating to the AWS Marketplace portal [1], select ‘SaaS’ from the ‘Products’ dropdown, select your SaaS product , update SaaS URL and then click on next until there is an option to submit. This will submit the request back to AWS Marketplace to update your SaaS URL.

[1] https://aws.amazon.com/marketplace/management/homepage/

Congratulations! Our AWS Marketplace Seller Operations team updates the SaaS URL on your limited SaaS listing, and your integration is complete.

Conclusion and next steps

In this blog post, I showed you how to use the Marketplace Quick Start solution to perform a simplified integration for your SaaS offering. For more information on how to get started, visit the AWS Marketplace getting started guide. For information on the SaaS listing process, visit the Getting started with SaaS products guide. I also recommend you view the Best practices guide to successfully list your SaaS contract solution in AWS Marketplace.

About the authors

Christopher 'JC' JacksonChristopher ‘JC’ Jackson is an Enterprise Support Manager focused on growing technical leaders for AWS Marketplace and he holds the key to the universe; now he just needs to find the lock.

.

.

.

Leno Piperi is a Partner Solution Architect who specializes in supporting public sector customers on AWS Marketplace. His interests include cloud governance and serverless computing on AWS. When he’s not in the office delighting customers, you’ll find him skiing or camping in the Cascades.

.

.

Sumeet GujaranSumeet Gujaran is a Technical Account Manager focusing on seller operations for AWS Marketplace and is passionate about blockchain, fintech and serverless computing. Outside of work he enjoys re-watching Office, trying parkour, cooking, and playing football (soccer).

.

.

.

Pawan KumarPawan Kumar is a Technical Account Manager focusing on seller operations for AWS Marketplace and is passionate about serverless computing and solving new problems. Outside of work he enjoys playing and watching cricket.