把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

利用 Slack 和 AWS AppStream2.0 集成进行 AppStream2.0 Fleet 队列管理

  • 2020-11-04
  • 本文字数:2915 字

    阅读完需:约 10 分钟

利用 Slack 和 AWS AppStream2.0 集成进行 AppStream2.0 Fleet 队列管理

AWS AppStream 2.0 是一项完全托管的非持久性应用程序和桌面服务。您可以在 AppStream 2.0 上集中管理桌面应用程序,并将它们安全地交付到任何计算机上。 AppStream 2.0 具有内置功能,可以扩展到全球任何数量的用户,而无需购买,供应和操作硬件或基础架构。Slack 是一个专有的商业通信平台,提供许多 IRC 样式的功能,包括按主题,私人团体和直接消息组织的持久聊天室。


该博客着重介绍了一种方法,该方法可用于使用协作工具 Slack 直接地触发 AppStream2.0 按需扩展规模,而无需使用 API 或登录 AWS 控制台。这使管理员和用户的工作更加轻松的管理 AppStream2.0。


让我们开始建立这个解决方案吧

技术细节

开始之前,需要满足以下先决条件:


  • 配置了

  • 服务的 AWS 账户

  • 备用帐户

逐步设置

第一步 – 为 AWS Lambda 函数创建 AWS IAM 执行角色


首先是创建 IAM 执行角色, 为 Lambda 函数提供执行 AppStream2.0 机群大小增加所需的权限。


下面介绍创建 IAM 角色的步骤。


  • 登录到 AWS 控制台。在控制台中选择 IAM 服务。

  • 在左侧面板中选择“Policies”,然后单击“Create Policy”。

  • 在以下策略中,将显示的 AWS_ACCOUNT_ID 和 FLEET_NAME 替换为您的 AWS 账户 ID 号和 0 队列的名称。关于如何创建 Appstream2.0 队列,请参阅我们的文档


{    "Version": "2012-10-17",    "Statement": [        {            "Sid": "VisualEditor0",            "Effect": "Allow",            "Action": [                "appstream:DescribeStacks",                "appstream:UpdateFleet",                "appstream:ListAssociatedFleets",                "appstream:DescribeSessions",                "appstream:DescribeUserStackAssociations",                "appstream:DescribeFleets",                "appstream:ListAssociatedStacks"            ],            "Resource": [                "arn:aws:appstream:*:AWS_ACCOUNT_ID:fleet/FLEET_NAME"                "arn:aws:appstream:*:*:stack/*"            ]        },        {            "Sid": "VisualEditor1",            "Effect": "Allow",            "Action": [                "appstream:GetImageBuilders",                "appstream:DescribeDirectoryConfigs",                "appstream:DescribeUsers",                "appstream:DescribeUsageReportSubscriptions",                "appstream:ListTagsForResource"            ],            "Resource": "*"        }    ]}
复制代码


  • 在下一页中,选择“ JSON”选项卡。将更新的 IAM 策略(在步骤 3 中)复制并粘贴到 JSON 窗口中。

  • 单击“Review Policy”。

  • 在下一页中,为此新创建的策略提供名称 “AppStreamFleetIncreasePolicy”。

  • 选择“创建策略”。成功创建策略后,下一步是创建 IAM 执行角色并将此策略附加到角色。

  • 在 IAM 控制台下,在左侧面板中选择“角色”。

  • 选择“Create Role”。

  • 在下一页中,选择“ Lambda”服务作为用例。

  • 单击“Next: Permissions”。

  • 选择策略“ AppStreamFleetIncreasePolicy”,然后单击“Next: Tags”。

  • 单击“Next: Review” 。

  • 提供名称“ AppStreamFleetIncreaseRole”和说明。

  • 选择“Create role”。


第二步 – 创建 Lambda 函数以触发 AppStream2.0 队列大小增加


  • 打开 AWS Lambda 控制台。

  • 在 Lambda 控制台下。选择“创建功能”以创建一个新功能,以触发 AppStream2.0 队列规模增加。

  • 提供函数的名称和运行时。选择您在上一步中创建的 IAM 执行角色。



  • 选择“Create Function”。

  • 双击函数名称以打开您刚刚创建的函数。

  • 在以下脚本中更新以下参数:


ParameterDescriptionValue set in this example
NameThe name of your AppStream2.0 fleetExampleFleet
DesiredInstances*The number of AppStream2.0 instances you wish to increase to.50*


*在此示例中,我们将值设置为 50。但是,默认的最大队列规模配额为 10。要请求增加配额,请联系 AWS 支持团队。


  • 复制代码并将其粘贴到功能代码编辑器中。


'use strict'; /**This AppStream2 Lambda function increases the size of the fleet to 50 instances.**/ const AWS = require('aws-sdk');const appstream = new AWS.AppStream();const fleetParams = {  Name: 'ExampleFleet', /* change this value */  ComputeCapacity: {    DesiredInstances: 50 /* change this value */   }}; exports.handler = (event, context, callback) => {    console.log('Received event:', JSON.stringify(event, null, 2));             fleetParams.ComputeCapacity.DesiredInstances         appstream.updateFleet(fleetParams, (error, data) => {            if (error) {                console.log(error, error.stack);                return callback(error);            }            console.log(data);            return callback(null, data);        });   };
复制代码


  • 单击“Save”以保存 Lambda 函数。


第三步 – 创建一个 Slack 频道


  • 在 Slack 控制台下,创建一个新频道,将此新频道命名为“appstream”。

  • 右键单击“appstream”频道,然后选择“Copy Link”。保存链接以供以后使用。



第四步 – 为 Slack 频道设置 Chatbot


  • 登录到AWS Chatbot控制台。

  • 从控制台的下拉列表中选择“ Slack”作为聊天客户端。



  • 点击配置。

  • 页面被重定向到 Slack 频道页面。点击“Allow”以登录到 Slack。



  • 页面重定向回到 AWS 控制台后,单击”Configure New Channel”。



  • 在 Slack 频道配置页面下,提供配置名称“ AppstreamIncrease50”。选择“Private”频道类型并提供频道 ID –这是您在上一步中复制的频道 ID。



  • AWS Chatbot 需要具有 IAM 角色才能运行命令并触发 AWS Lambda 函数。提供 Chatbot 的角色名称,然后选择以下策略模板:


Notification permissions


Read-only command permissions


Lamda-invoke command permissions


AWS Support command permissions



  • 检查设置,然后单击“Configure”。


最后一步 – 邀请 AWS Chatbot 进入您的 Slack 频道。


  • 打开您的 Slack 频道,然后输入“ / invite @aws”以邀请 AWS Chatbot 进入该频道。

  • 要执行增加队列的大小,请键入以下命令以增加队列的大小:“@ aws lambda invoke –function-name FleetIncrease50 –region ap-northeast-1”请注意,此命令将队列规模增加到 50。请根据需要调整数量。

  • 返回的消息应类似于以下内容:



  • 在 AWS AppStream2.0 控制台下,确认所需队列量已增加:



下列图显示了队列成功增加到 50:


结论

通过此博客,我们向您展示了一种使用协作工具来管理 AWS AppStream2.0 队列的简便方法。您可以进一步利用 Slack 提取相关 AWS AppStream2.0 的 AWS CloudWatch 数据,以监视 AWS AppStream2.0 队列的状态并从 Slack 频道管理队列。


作者介绍


徐欣蕾


Amazon Web Services 公司专业服务团队 WorkSpaces 顾问。


Vaibhav Singh


Amazon Web Services 公司专业服务团队顾问。


Ash Seshadri


Amazon Web Services 公司专业服务团队 AppStream2.0 和 WorkSpaces 顾问。


本文转载自亚马逊 AWS 官方博客。


原文链接


利用 Slack 和 AWS AppStream2.0 集成进行 AppStream2.0 Fleet 队列管理


2020-11-04 10:052071

评论

发布
暂无评论
发现更多内容

YashanDB健康检查与性能诊断实用指南

数据库砖家

YashanDB分布式架构解析,打造高可用数据库系统

数据库砖家

YashanDB定期维护与升级指南,保持系统稳定

数据库砖家

YashanDB FAQ:常见问题与答疑

数据库砖家

《HarmonyOSNext Web组件双向通信开发指南:JavaScript互调+动态注册+跨端数据流转实战》

Turing_010

YashanDB如何提升企业对数据的实时监控能力

数据库砖家

YashanDB如何帮助企业达到合规性要求

数据库砖家

YashanDB多租户架构优势详解,优化资源分配

数据库砖家

YashanDB多租户环境部署方案,满足多业务需求

数据库砖家

稀疏矩阵存储模型比较与在Python中的实现方法探讨

申公豹

算法

淘宝商品详情 API 的安全加固与生态融合创新

Noah

YashanDB如何帮助企业实现数据智能化管理

数据库砖家

YashanDB分布式事务实现原理及应用技巧

数据库砖家

YashanDB对未来数据技术发展的影响与展望

数据库砖家

YashanDB定期维护与升级指南,保持系统稳定

数据库砖家

YashanDB分布式锁实现及应用场景详解

数据库砖家

 YashanDB分布式事务管理,确保业务数据完整一致YashanDB分布式事务管理,确保业务数据完整一致

数据库砖家

YashanDB多租户架构实现方案解析

数据库砖家

YashanDB多活架构设计,提升系统抗灾能力

数据库砖家

YashanDB对API访问的支持如何影响开发效率?

数据库砖家

《HarmonyOSNext全链路通知开发指南:从基础通知到智能跳转的超详细实战》

Turing_010

利用 Slack 和 AWS AppStream2.0 集成进行 AppStream2.0 Fleet 队列管理_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章