首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用 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 队列,请参阅我们的文档
代码语言:javascript
复制
{
    "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”。
  • 双击函数名称以打开您刚刚创建的函数。
  • 在以下脚本中更新以下参数:

Parameter

Description

Value set in this example

Name

The name of your AppStream2.0 fleet

ExampleFleet

DesiredInstances*

The number of AppStream2.0 instances you wish to increase to.

50*

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

  • 复制代码并将其粘贴到功能代码编辑器中。
代码语言:javascript
复制
'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 队列管理

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/3WBqGQp2mg6GhAsRPTXK
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com