Skip to content

Commit

Permalink
Merge branch 'doc-edits' into gh-pages
Browse files Browse the repository at this point in the history
  • Loading branch information
vsnyc committed Sep 4, 2024
2 parents db2881f + bae0c5d commit 1960f2e
Show file tree
Hide file tree
Showing 14 changed files with 205 additions and 88 deletions.
1 change: 1 addition & 0 deletions .metadata
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
language_type: cloudformation
2 changes: 1 addition & 1 deletion CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @gargana
* @gargana @aws-ia/aws-ia
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/Onbording-CF.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/architecture_diagram.png
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions docs/partner_editable/_settings.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
:partner-product-short-name: AWS Marketplace Serverless SaaS Integration
// If there's no partner, comment partner-company-name.
//:partner-company-name: Example Company Name, Ltd.
:doc-month: January
:doc-year: 2022
:doc-month: September
:doc-year: 2024
// Uncomment the following "contributor" attributes as appropriate. If the partner agrees to include names, enter contributor names for every line we use. If partner doesn't want to include names, delete all placeholder names and keep only "{partner-company-name}" and "AWS Quick Start team."
//:partner-contributors: Shuai Ye, Michael McConnell, and John Smith, {partner-company-name}
//:other-contributors: Akua Mansa, Trek10
Expand Down
54 changes: 53 additions & 1 deletion docs/partner_editable/additional_info.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ As shown in <<architecture2>>,the {partner-product-short-name} on AWS environmen

[#architecture2]
.Workflow of {partner-product-short-name} on AWS environment
image::../images/cloudformation-aws-marketplace-saas-workflow-of-events.png[Workflow]
image::../images/AWS-Marketplace-SaaS-Integration.drawio.png[Workflow]

=== Register new customers

Expand All @@ -18,7 +18,11 @@ On your software’s registration page, you can collect whatever information is

The registration page identifies and accepts the *x-amzn-marketplace-token* token from the AWS Marketplace form data. The token includes the customer’s identifier for billing. The page then passes the token value to the AWS Marketplace Metering Service and AWS Marketplace Entitlement Service APIs to resolve for the unique customer identifier and corresponding product code.

<<<<<<< HEAD
The Quick Start creates a static HTML registration page hosted on Amazon S3. The page takes user inputs that are defined in the HTML form and submits them to the customer endpoint on AWS Marketplace. The page is delivered via a CloudFront distribution, which can be configured to use domain/CNAME. The POST request coming from AWS Marketplace is intercepted by the Lambda@Edge *src/lambda-edge/edge-redirect.js* function, which transforms the POST request to a GET request and passes the *x-amzn-marketplace-token* in the query string. The handler for the customer endpoint on AWS Marketplace is defined in the *src/register-new-subscriber.js* function, which calls the *resolveCustomer* endpoint and validates the token. If the token is valid, the customer record is created in the *AWSMarketplaceSubscribers* DynamoDB table, and the new customer data is stored.
=======
The Quick Start creates a static HTML registration page hosted on Amazon S3. The page takes user inputs that are defined in the HTML form and submits them to the customer endpoint on AWS Marketplace. The page is delivered via a CloudFront distribution, which can be configured to use domain/CNAME. The POST request coming from AWS Marketplace is intercepted by the Lambda *src/redirect.js* function, which transforms the POST request to a GET request and passes the *x-amzn-marketplace-token* in the query string. The handler for the customer endpoint on AWS Marketplace is defined in the *src/register-new-subscriber.js* function, which calls the *resolveCustomer* endpoint and validates the token. If the token is valid, the customer record is created in the *AWSMarketplaceSubscribers* DynamoDB table, and the new customer data is stored.
>>>>>>> doc-edits
=== Grant access to new subscribers
Expand Down Expand Up @@ -48,6 +52,7 @@ New records in the *AWSMarketplaceMeteringRecords* table should be stored in the
....
{
<<<<<<< HEAD
"create_timestamp": 113123,
"customerIdentifier": "ifAPi5AcF3",
"dimension_usage": [
Expand All @@ -61,6 +66,41 @@ New records in the *AWSMarketplaceMeteringRecords* table should be stored in the
}
],
"metering_pending": "true"
=======
"create_timestamp": {
"N": "113123"
},
"customerIdentifier": {
"S": "ifAPi5AcF3"
},
"dimension_usage": {
"L": [
{
"M": {
"dimension": {
"S": "users"
},
"value": {
"N": "3"
}
}
},
{
"M": {
"dimension": {
"S": "admin_users"
},
"value": {
"N": "1"
}
}
}
]
},
"metering_pending": {
"S": "true"
}
>>>>>>> doc-edits
}
....
Expand All @@ -86,6 +126,7 @@ After the record is submitted to the AWS Marketplace API, the record updates, an
== Post-deployment steps
// If post-deployment steps are required, add them here. If not, remove the heading
<<<<<<< HEAD
=== 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.
Expand All @@ -109,6 +150,17 @@ Go to the https://console.aws.amazon.com/cloudfront/home?region=us-east-1[CloudF
* SaaS fulfillment URL format: https://_<domain name>_
* Example URL: https://d142rocbcrghws.cloudfront.net
=======
=== Update the SaaS Fulfillment URL
Update the fulfillment URL for your SaaS listing.
. Navigate to your SaaS listing in the https://aws.amazon.com/marketplace/management/products/saas[AWS Marketeplace Management Portal^].
. In the *Fulfillment options* tab, choose *edit*.
. Update this field with the *AWSMarketplaceFulfillmentURL* value found in the stack outputs.
Your integration is now ready for use.
>>>>>>> doc-edits
=== Confirm the Amazon SNS subscription
Expand Down
4 changes: 2 additions & 2 deletions docs/partner_editable/architecture.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ AWS Cloud.

[#architecture1]
.Quick Start architecture for {partner-product-short-name} on AWS
image::../images/cloudformation-aws-marketplace-saas-architecture-diagram.png[Architecture]
image::../images/saas-integration-solution-overview.png[Architecture]

As shown in <<architecture1>>, the Quick Start sets up the following environment:

* AWS Marketplace for managing customer subscriptions and passing tokens with customer billing identifiers and product codes to AWS Marketplace Metering Service and Entitlement Service APIs.
* CloudFront Lambda@Edge for intercepting, transforming, and passing customer tokens.
* AWS Lambda for intercepting, transforming, and passing customer tokens.
* Amazon CloudFront for providing the configurable registration page URL for the SaaS product integration.
* Amazon S3 for storing the static HTML pages that accept and submit registration input to the AWS Marketplace customer endpoints.
* Amazon API Gateway for receiving tokens from form data on the registration page and generating the new endpoint base URL after the AWS CloudFormation stack is deployed.
Expand Down
4 changes: 1 addition & 3 deletions docs/partner_editable/overview_target_and_usage.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,4 @@
// Identify your target audience and explain how/why they would use this Quick Start.
//Avoid borrowing text from third-party websites (copying text from AWS service documentation is fine). Also, avoid marketing-speak, focusing instead on the technical aspect.

This guide provides instructions for deploying {partner-product-short-name} on the AWS Cloud.

This Quick Start is for registered AWS Marketplace sellers who want a lightweight serverless solution for completing the required integration on new software as a service (SaaS) listings.
WARNING: For the latest instructions for deploying {partner-product-short-name} on the AWS Cloud, please reference the https://catalog.workshops.aws/mpseller/en-US/saas/integration-with-quickstart[Integrate your SaaS (with AWS Quick Start example) lab] in the https://catalog.workshops.aws/mpseller/en-US[AWS Marketplace seller workshop].
2 changes: 0 additions & 2 deletions docs/partner_editable/pre-reqs.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
==== Prepare for the deployment

Ensure that you have the product code for your SaaS listing. This code is assigned to your SaaS listing when you create it. You can find the product code in your https://aws.amazon.com/marketplace/management/products/saas[SaaS product catalog^] within the https://aws.amazon.com/marketplace/management/homepage?pageType=awsmpmp%3Acustomer[AWS Marketplace Management Portal^].

Ensure that you have the relevant SNS topic Amazon Resource Name (ARNs) for your pricing model. For contract pricing, you must have the entitlements SNS topic. For subscription pricing, you must have the subscription SNS topic. For both contract and subscriptions pricing, you must have both the entitlements and subscription SNS topic ARNs.
28 changes: 28 additions & 0 deletions docs/partner_editable/regions.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
This Quick Start supports the following Region:

* us-east-2, US East (Ohio)
* us-east-1, US East (N. Virginia)
* us-west-1, US West (N. California)
* us-west-2, US West (Oregon)
* af-south-1, Africa (Cape Town)
* ap-east-1, Asia Pacific (Hong Kong)
* ap-south-2, Asia Pacific (Hyderabad)
* ap-southeast-3, Asia Pacific (Jakarta)
* ap-southeast-4, Asia Pacific (Melbourne)
* ap-south-1, Asia Pacific (Mumbai)
* ap-northeast-3, Asia Pacific (Osaka)
* ap-northeast-2, Asia Pacific (Seoul)
* ap-southeast-1, Asia Pacific (Singapore)
* ap-southeast-2, Asia Pacific (Sydney)
* ap-northeast-1, Asia Pacific (Tokyo)
* ca-central-1, Canada (Central)
* ca-west-1, Canada West (Calgary)
* eu-central-1, Europe (Frankfurt)
* eu-west-1, Europe (Ireland)
* eu-west-2, Europe (London)
* eu-south-1, Europe (Milan)
* eu-west-3, Europe (Paris)
* eu-south-2, Europe (Spain)
* eu-north-1, Europe (Stockholm)
* eu-central-2, Europe (Zurich)
* il-central-1, Israel (Tel Aviv)
* me-south-1, Middle East (Bahrain)
* me-central-1, Middle East (UAE)
* sa-east-1, South America (São Paulo)
//Full list: https://docs.aws.amazon.com/general/latest/gr/rande.html
2 changes: 1 addition & 1 deletion docs/partner_editable/service_limits.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
|Resource |This deployment uses

// Space needed to maintain table headers
|S3 Buckets |2
|S3 Buckets |1
|SNS Topics |2
|DynamoDB Tables |2
|Lambda Functions |7
Expand Down
Loading

0 comments on commit 1960f2e

Please sign in to comment.