使用 AWS 自动创建 AppStream 2.0 资源 CloudFormation - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS 自动创建 AppStream 2.0 资源 CloudFormation

创建者:Ram Kandaswamy (AWS)

环境:生产

技术:最终用户计算; CloudNative;成本管理 DevOps;SaaS

工作负载:Microsoft

AWS 服务:亚马逊 AppStream 2.0;AWS CloudFormation

Summary

此模式提供了使用 AWS CloudFormation 模板在亚马逊网络服务 (AWS) 云中自动创建 Amazon AppStream 2.0 资源的代码示例和步骤。该模式向您展示如何使用 AWS CloudFormation 堆栈自动创建 AppStream 2.0 应用程序资源,包括映像生成器、映像、队列实例和堆栈。您可以使用桌面或应用程序交付模式,在兼容 HTML5 的浏览器上将 AppStream 2.0 应用程序流式传输给最终用户。

先决条件和限制

先决条件

限制

  • 创建与 AppStream 2.0 实例关联的 AWS Identity and Access Management (IAM) 角色后,您无法修改该实例。

  • 创建 AppStream 2.0 映像生成器实例后,您无法修改该实例的属性(例如子网或安全组)。

架构

下图向您展示了如何使用 AWS CloudFormation 模板自动创建 AppStream 2.0 资源。

图表显示了以下工作流:

自动创建 AppStream 2.0 资源的工作流程。
  1. 您可以根据此模式的 “其他信息” 部分中的 YAML 代码创建 AWS CloudFormation 模板。

  2. AWS CloudFormation 模板创建了一个 AWS CloudFormation 测试堆栈。

    1. (可选)您可以使用 AppStream 2.0 创建映像生成器实例。

    2. (可选)您可以使用自定义软件创建 Windows 映像。

  3. AWS CloudFormation 堆栈创建一个 AppStream 2.0 队列实例和堆栈。

  4. 您可以在兼容 HTML5 的浏览器上将 AppStream 2.0 资源部署给最终用户。

技术堆栈

  • 亚马逊 AppStream 2.0

  • AWS CloudFormation

工具

  • Amazon AppStream 2.0 是一项完全托管的应用程序流服务,可让您随时随地即时访问您的桌面应用程序。 AppStream 2.0 管理托管和运行应用程序所需的 AWS 资源,自动扩展,并按需向用户提供访问权限。

  • AWS CloudFormation 可帮助您建模和设置 AWS 资源,快速一致地配置这些资源,并在资源的整个生命周期中对其进行管理。您可以使用模板来描述资源及其依赖关系,然后将它们作为堆栈一起启动和配置,而不必单独管理资源。您可以跨多个 Amazon Web Services account 和 AWS 区域 管理和预置堆栈。

操作说明

任务描述所需技能

安装自定义软件和创建映像。

  1. 安装您计划部署给用户的 AppStream 2.0 应用程序。

  2. 使用 Photon 创建图像代理或 PowerShell 脚本为您的自定义软件创建新的 Windows 映像。 

注意:考虑使用 Windows AppLocker 功能进一步锁定图像。

AWS DevOps,云架构师
任务描述所需技能

更新 AWS CloudFormation 模板。

  1. 将此模式的其他信息部分中的代码保存为 YAML 文件。

  2. 使用环境中参数所需值更新 YAML 文件。

AWS 系统管理员、云管理员、云架构师、常规 AWS、AWS 系统管理员

使用模板创建 AWS CloudFormation 堆栈。

  1. 登录 AWS 管理控制台并打开 AWS CloudFormation 控制台

  2. 在导航窗格中,选择堆栈

  3. 选择创建堆栈,然后选择使用新资源(标准)

  4. 先决条件 — 准备模板部分,请选择模板已就绪

  5. 指定模板部分,选择上传模板 文件

  6. 选择 “选择文件”,然后选择更新后的 AWS CloudFormation 模板。

  7. 完成向导中的剩余步骤创建您的堆栈。

应用程序所有者、AWS 系统管理员、Windows 工程师

相关资源

参考

教程和视频

其他信息

以下代码是允许您自动创建 AppStream 2.0 资源的 AWS CloudFormation 模板示例。

AWSTemplateFormatVersion: 2010-09-09 Parameters: SubnetIds: Type: 'List<AWS::EC2::Subnet::Id>' testSecurityGroup: Type: 'AWS::EC2::SecurityGroup::Id' ImageName: Type: String Resources: AppStreamFleet: Type: 'AWS::AppStream::Fleet' Properties: ComputeCapacity: DesiredInstances: 5 InstanceType: stream.standard.medium Name: appstream-test-fleet DisconnectTimeoutInSeconds: 1200 FleetType: ON_DEMAND IdleDisconnectTimeoutInSeconds: 1200 ImageName: !Ref ImageName MaxUserDurationInSeconds: 345600 VpcConfig: SecurityGroupIds: - !Ref testSecurityGroup SubnetIds: !Ref SubnetIds AppStreamStack: Type: 'AWS::AppStream::Stack' Properties: Description: AppStream stack for test DisplayName: AppStream test Stack Name: appstream-test-stack StorageConnectors: - ConnectorType: HOMEFOLDERS UserSettings: - Action: CLIPBOARD_COPY_FROM_LOCAL_DEVICE Permission: ENABLED - Action: CLIPBOARD_COPY_TO_LOCAL_DEVICE Permission: ENABLED - Action: FILE_DOWNLOAD Permission: ENABLED - Action: PRINTING_TO_LOCAL_DEVICE Permission: ENABLED AppStreamFleetAssociation: Type: 'AWS::AppStream::StackFleetAssociation' Properties: FleetName: appstream-test-fleet StackName: appstream-test-stack DependsOn: - AppStreamFleet - AppStreamStack