为参考企业,即示例企业创建软件即服务 (SaaS) 门户。此示例企业支持感兴趣的客户创建账户,并注册 Web 版软件订阅。

• 使用 Amazon Simple Storage Service (Amazon S3) 启用托管示例企业的网站。
• 使用 Amazon SES 设置和验证电子邮件地址身份。创建新账户后,系统会向您在 Amazon Simple Email Service (SES) 中指定的地址发送验证电子邮件。
• 使用 Amazon AppStream 2.0,将流式传输应用程序设置为对注册软件订阅的用户开放。
• 使用 AWS Identity and Access Management (IAM) 创建策略和角色。
• 将 IAM 策略附加到您创建的 IAM 角色。需要该策略才能运行您将要创建的函数。
• 使用 Amazon Cognito 新建一个用户池并添加应用程序客户端。Amazon Cognito 为您的 AppStream 流式传输应用程序提供用户管理和身份验证功能。
• 使用 AWS Lambda 创建一个函数。该函数用于在用户通过 Cognito 完成身份验证后,为流式传输用户生成流式传输 URL。
• 使用 Amazon API Gateway 创建 RESTful API。该资源和方法用于在流式传输用户和 Lambda 函数之间交换请求。
 

应用程序使用 Amazon S3、Amazon SESAmazon CognitoAmazon API GatewayAWS LambdaAmazon AppStream 2.0,如下图所示。

本项目包含六个模块。您必须完成一个模块,才能进入下一个模块。

  1. 托管静态网站
  2. 管理用户
  3. 构建无服务器后端
  4. 部署 RESTful API
  5. 测试您的设置
  6. 清理您的项目资源

AWS 使用经验:我们建议您熟悉 AppStream 2.0 和其他 AWS 服务。如果您不熟悉 AppStream 2.0,请参阅 AppStream 2.0 入门指南。本指南介绍了如何:

  • 安装和配置两个应用程序。 
  • 使用 AppStream 2.0 控制台执行基础的管理任务。
  • 使用提供的 AWS CloudFormation 模板在 Amazon virtual Private Cloud (Amazon VPC) 中预置虚拟网络。
     

所需时间:2.5 小时

完成成本:本项目中使用的某些服务符合 AWS 免费套餐的条件。要确定符合条件的服务,请参阅 AWS 免费套餐。如果您超出免费套餐的使用限制,那么本项目所需的总费用将因您的需求和配置而异,例如,您使用的 AppStream 2.0 实例类型和机群类型。为降低成本,建议您在完成项目后终止与项目关联的资源。如果您选择不终止资源,我们建议在不使用队列和映像生成器时停用它们。
 
先决条件:要完成本教程,您需要:

AWS CloudFormation 模板:您可以在选择的区域中启动其中一个 AWS CloudFormation 模板,来自动构建本研讨会不可缺少的资源。

区域 CloudFormation 模板
美国西部(俄勒冈) 启动堆栈 >
美国东部(弗吉尼亚北部)  启动堆栈 >
亚太地区(孟买)
启动堆栈 >
亚太地区(东京) 启动堆栈 >
亚太地区(悉尼) 启动堆栈 >
亚太地区(新加坡) 启动堆栈 >
亚太地区(首尔)  启动堆栈 >
欧洲(爱尔兰) 启动堆栈 >
欧洲(法兰克福) 启动堆栈 >
CloudFormation 说明

以下步骤介绍了如何使用 AWS CloudFormation 中的模板,实现本项目中模块 1 至 模块 4 所述的绝大多数任务的自动化。如需获取这些任务的完整列表,请参阅项目概览页面中的“将会完成的任务”部分。

注意

虽然 CloudFormation 可以自动化本项目中的绝大多数任务,但仍然需要现有的 AppStream 2.0 映像、机群和堆栈。CloudFormation 模板并不创建这些资源。此外,您必须使用 Amazon Simple Email Service (SES) 设置和验证电子邮件地址身份。有关更多信息,请参阅模块 2 中的“第 1 步:在 Amazon SES 中添加并验证新电子邮件地址 ID”。管理用户

1.确保您已经登录 AWS Management 控制台

2.在区域选择列表中,打开您希望与在其中为本项目构建环境的 AWS 区域关联的 Launch Stack(启动堆栈)链接。

3.在 Quick create stack(快速创建堆栈)页面上会显示以下信息:

  • 模板 URL:模板的 URL
  • 堆栈描述:一段对于 CloudFormation 堆栈的描述。
  • 堆栈名称:CloudFormation 堆栈的名称。默认名称是 as2-stack-002。保留默认名称或者选择将名称更改为对您而言有意义的名称(例如,examplecorp-cfn-stack-saas)。

4.在 Parameters(参数)下,执行以下操作:

  • 对于 AppStream2FleetName,键入 AppStream 2.0 机群要使用的名称。
  • 对于 AppStream2StackName,键入 AppStream 2.0 堆栈要使用的名称。
  • 对于 S3BucketName,为您的 Amazon S3 存储桶键入全局唯一的名称(例如,examplecorp-s3bucket-saas-<yourfirstname-yourlastname>)。该 S3 存储桶用于托管您的网站。

5.在 Capabilities(功能)下,系统会通知您模板中包含拥有最小所需权限的 Identity and Access Management (IAM)。具体而言,需要 [AWS::IAM::Role] 功能。选中复选框,确认 CloudFormation 可能创建具有自定义名称的 IAM 角色。

6.选择 Create stack(创建堆栈)。

7.创建流程完成后,AWS CloudFormation 控制台会显示 CREATE_COMPLETE 状态。

8.选中堆栈后,选择 Outputs(输出)选项卡。

9.在 Outputs(输出)表格的 Key(密钥)列下方,记录下 CloudFormation 模板创建的资源的值:

  • BucketName – S3 存储桶的名称。此处使用您在第 4 步中为 S3 存储桶指定的名称。
  • ExampleCorpApiGWInvokeUrl -- API Gateway 调用 URL。URL 采用以下格式:https://<code>.execute-api.<region>.amazonaws.com/dev
  • Cognito 用户池 ID -- Cognito 用户池的 ID。
  • 客户端 ID -- 应用程序客户端的 ID。ID 采用以下格式:<region>_<code>。
  • 网站 URL -- S3 存储桶的 Amazon S3 网站端点。URL 采用以下格式:https://<S3bucketname>.s3-website-<region>.amazonaws.com.

10.将示例企业网站资产内容的 zip 文件 (workshop_02_SaaS.<GUID>.zip) 下载到本地电脑。

11.将下载的文件内容解压到本地电脑上。

12.导航到希望将 zip 文件内容解压到的本地电脑上的位置,然后在文本编辑器中打开以下文件:assets/js/config.js

13.在文件中,搜索以下变量并为其设定值:

  • userPoolId – Cognito 用户池的 ID。
  • userPoolClientId -- 应用程序客户端 ID 的值。
  • 区域 -- 您创建了 CloudFormation 堆栈的所在 AWS 区域的代码。如需获取地区代码的完整列表,请参阅 AppStream 2.0 区域和端点表格中的区域列。
  • Invokeurl -- API Gateway 调用的 URL 的值。

14.保存更改并关闭文件。

15.通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

16.在存储桶名称列表中,选择您在第 4 步为 S3 存储桶指定的名称。

17.导航到您将 zip 文件内容提到本地电脑上的位置。打开 workshop_02_SaaS.<GUID> 文件夹。此文件夹包含以下文件夹和文件:

  • 资产
  • 镜像
  • index.html
  • LICENSE.TXT
  • NOTICE.TXT
  • register.html
  • signin.html
  • THIRD-PARTY.TXT
  • verify.html

18.选择 workshop_02_SaaS.<GUID> 目录下的所有文件和文件夹。不要选择文件夹本身。

19.在 Amazon S3 控制台窗口的概览选项卡,选择上传

20.将您的选择拖放到上传对话框。

21.选择上传

22.等待上传完成,并验证概览选项卡上的列表中是否显示了正确的文件和文件夹。

23.在控制台左上角的菜单中,选择 Services(服务)。

24.在搜索框中,键入 cloudformation,然后从搜索结果中选择 CloudFormation

25.在 Stacks(堆栈)列表中的 Stack name(堆栈名称)下,选择 CloudFormation 的堆栈的名称。

26.在 Outputs(输出)选项卡的 Value(值)下方,选择对应 WebsiteURL 密钥的 URL。系统会显示示例企业网站的主页。

27.在网址栏中,在 URL 后面输入 /signin.html。此时会显示示例企业的门户登录页面。

28.执行 模块 5 中第 2 步中开始的步骤,继续测试。测试您的设置