AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

利用 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:051566

评论

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

Spring Boot应用在kubernetes的sidecar设计与实战

程序员欣宸

Java Kubernetes Sidecar 7月月更

疫情封控65天,我的居家办公心得分享 | 社区征文

程序员海军

远程办公 远程开发 初夏征文

ajax

Jason199

ajax 7月月更

linux硬盘挂载教程

乌龟哥哥

7月月更

为什么说数据服务化是下一代数据中台的方向?

雨果

数据中台 数字化转型 DaaS数据即服务

电商系统微服务架构

极客土豆

「Docker 那些事儿」容器很难理解?带你从头到尾捋一遍

Albert Edison

7月月更

毕业总结

库尔斯

架构实战营

Web2.0的巨头纷纷布局VC,Tiger DAO VC或成抵达Web3捷径

股市老人

疫情当头,作为Leader如何进行代码版本和需求开发管控?| 社区征文

码界西柚

团队管理 远程办公 7月日更 远程开发 初夏征文

最全SQL与NoSQL优缺点对比

雨果

sql NoSQL 数据库

Python XML-RPC实现简单的远程调用过程

宇宙之一粟

Python 7月月更

秒杀系统设计

库尔斯

架构实战营

为什么网站打开速度慢?

源字节1号

网站开发

疫情当头,作为Leader如何进行团队的管理?| 社区征文

码界西柚

团队管理 远程办公 7月日更 初夏征文

scrcpy这款软件解决了和同事分享手机屏幕的问题| 社区征文

尼露

leetcode 650. 2 Keys Keyboard 只有两个键的键盘(中等)

okokabcd

LeetCode 动态规划 数据结构与算法

linux-riscv-5.17 纯净源码

贾献华

7月月更

性能测试如何创造业务价值

老张

性能测试 技术与业务

【算法刷题日记之本手篇】组队竞赛与删除公共字符

未见花闻

7月月更

服务可见可观测性

阿泽🧸

微服务 7月月更

Web2.0的巨头纷纷布局VC,Tiger DAO VC或成抵达Web3捷径

鳄鱼视界

Vuex(一)

小恺

7月月更

你开发数据API最快多长时间?我1分钟就足够了

雨果

API API开发

L3立法试水,为自动驾驶产业带来什么?

脑极体

DotNet圈里一个优秀的ORM——FreeSql

为自己带盐

7月月更 freesql dotnetcore

图解网络:什么是虚拟路由器冗余协议 VRRP?

wljslmz

网络技术 路由协议 7月月更 VRRP

煮饺子与docker、kubernetes之间的关系

字母哥哥

Docker 容器化 #Kubernetes#

大话云原生之负载均衡篇-小饭馆客流量变大了

字母哥哥

Docker 负载均衡 云原生

Web侧防御指南

穿过生命散发芬芳

7月月更 Web防护

线程的启动与优先级

zarmnosaj

7月月更

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