「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码( 二 )


本文插图

「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
本文插图

Kubernetes的简要介绍
Kubernetes是一款允许在集群中管理docker映像的软件 。 这包括部署、扩展、管理和监视 。 基本部署单元是Pod 。 Pod可以包含多个docker映像或容器 。 我们将在本文中开发的聊天机器人仅支持具有单个图像的pod 。 可以通过kubectl命令和其他方式控制Kubernetes 。
我们的服务器将使用以下Kubernetes命令:
kubectl get pods --selector=app={app} --namespace={namespace} :在名称空间中检索应用程序的pod 。
kubectl logs {pod} --namespace={namespace}:获取容器中容器的日志(如果容器中只有一个图像) 。
kubectl describe pod {pod} --namespace={namespace} :描述有关Pod的详细信息 。
「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
本文插图

Slack
如果你没有Slack帐户 , 则可以通过https://slack.com 获得自己的工作区 。
在本文中 , 我们将创建一个所谓的经典App , 以便能够使用实时消息(RTM)API 。
你可以在此处创建经典应用:https://api.slack.com/apps?new_classic_app=1 。 确保不要只是创建一个新的Slack App , 因为它不支持实时消息 。
「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
本文插图

该App将需要以下范围 , bot和chat:write:bot 。 如果找不到这些范围 , 则可能是在最后一步中创建了一个非经典应用 。
「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
本文插图

我们将为该应用添加说明和图标 。 对于作者的机器人 , 他正在使用Wikimedia的图像 。
「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
本文插图

最后一步是将app安装到工作区并记下机器人令牌 , 单击“将应用程序安装到团队” 。 我们将允许该APP访问我们的工作区 , 并记下“ Bot User OAuth Access Token” 。
「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
本文插图

ChatOps服务器
可以在https://gitlab.com/alexk/chatops-kubernetes上找到服务器的代码 。 它需要python 3 , 例如可以在macO上使用brew install python3安装 。
然后下载并安装需求:
git clone git@gitlab.com:alexk/chatops-kubernetes.git
cd chatops-kubernetes/
pip3 install -r requirements.txt
然后将Slack令牌设置为与之一起使用:
export SLACK_API_TOKEN=
并使用以下命令启动聊天机器人服务器:
python3 chatbot.py

「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
本文插图

实现服务器
如设置部分所述 , 我们将使用Slack中的实时消息传递功能 。 要使用此功能 , 我们必须创建一个经典App 。
「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
本文插图

使用WebSocket的经典Slack App实时消息传递模型
在当前的Slack应用程序模型中 , Slack针对每个聊天消息或命令将HTTP Post消息发送到chatbot服务器 。
「Slack」如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
本文插图

使用HTTP POSTS的现代Slack应用模型


推荐阅读