3. 在 AWS 上部署我们的机器人
要遵循此操作,您需要拥有一个亚马逊帐户。如果您还没有,您可以立即注册。请注意,系统会要求您提供信用卡详细信息,但不用担心 - 亚马逊有慷慨的免费套餐,遵循本指南不会产生任何费用。
登录控制台:https://aws.amazon.com
我们将从头开始创建一个 lambda 函数。只需在服务列表中搜索 Lambda,然后单击“创建函数”即可。
为您的函数以及运行时和架构选择一个名称。我选择了 Python 3.9 和 x86_64。
创建 lambda 函数后,我们在 API 网关服务中创建一个 HTTP API。
Amazon API Gateway 是我们在 AWS Lambda、Amazon EC2 或其他可公开寻址的 Web 服务上运行的代码的可公开访问的终端节点。它使我们能够为移动和 Web 应用程序提供安全且可扩展的后端,而这正是我们所需要的!
创建它时,我们将配置路由,以便我们的 API 收到的每个请求都发送到我们的 Lambda 函数。请注意,API 和 Lambda 函数必须位于同一区域。要创建我们的 API,请在服务列表中查找 API Gateway,然后单击“创建API”
API现已创建,保存 调用网址 稍后留个地址。
我们有一个连接到 API 的公共 URL、一个将其发送到我们的 Lambda 的 API 和一个 Lambda 函数。但 lambda 的默认状态是‘睡眠’。我们需要添加一条规则来触发/激活我们的 Lambda 函数。在 lambda 页面上,单击“添加触发器”并选择我们刚刚创建的 API 网关。
凉爽的 !现在一切都准备好了。每次调用 API 时,都会触发 lambda 函数。我们现在需要将 telegram 连接到 API。我们将设置一个 Webhook,以便 telegram 会自动将每条消息转发到我们的 API。
为此,我们将在浏览器中输入以下地址。确保在此处放置您的机器人令牌和 API 调用 URL。
“https://api.telegram.org/bot/setWebHook?url= ”
您的浏览器应该回答如下内容:
{"ok":true,"result":true,"description":"Webhook 已设置"}
好的,一切都准备好了。现在,让我们将代码添加到 Lambda 函数中,让这个机器人能够说话。
我们必须调整代码,因为 lambda 函数将接收 json 文件,并且操作需要包装在 Lambda 处理函数中。
这是一个有效的 lambda 函数解决方案,它集成了 ChatGPT AI 来回答每条消息。您可以将其复制并粘贴到 lambda_function.py 文件中。
在函数的常规配置中,默认超时为 3 秒。将此超时时间增加到安全的值(例如 30 秒)可能会很有用。在配置面板中,不要忘记添加您的令牌作为环境变量。
为了确保此功能正常运行,您需要安装几个软件包: python 电报机器人 和 要求。为了实现最无缝的安装过程,我建议下载这些包的 zip 文件并将它们存储在 S3 存储桶中。从那里,您可以按照本教程中概述的步骤将它们作为层添加到您的函数中。
您可以在云手表服务中访问您的函数日志。