AWS ECS:对不和谐机器人托管进行故障排除

时间:2021-01-03 12:27:27

标签: amazon-web-services discord amazon-ecs

我正在开发一个不和谐的机器人,我已经完成了它的第一个版本。我认为这将是学习 AWS 并使用他们的弹性容器服务 (ECS) 托管机器人的绝佳机会。因此,我觉得有必要给出一个新手免责声明。我已经对应用程序进行了 dockerized,我可以确认它在我的机器上按预期运行,这让我相信容器是好的。我在网上读到不和谐要求端口 80 和 443 (HTTP/HTTPS) 为文本通道打开。我的 VPC 和 SG 允许这些端口上的入站流量(以及到任何目的地的所有出站流量)。我的任务定义也包含

"portMappings": [
                {
                    "containerPort": 80,
                    "hostPort": 80,
                    "protocol": "tcp"
                },
                {
                    "containerPort": 443,
                    "hostPort": 443,
                    "protocol": "tcp"
                }
            ],

机器人是基于 Java 的,使用 JDA 库。启动机器人的代码如下,与示例代码几乎相同。

public static void main(String[] args) throws LoginException, SQLException {

        JDABuilder builder = JDABuilder.createDefault("<my key>");

        // Disable parts of the cache
        builder.disableCache(CacheFlag.MEMBER_OVERRIDES, CacheFlag.VOICE_STATE);
        // Enable the bulk delete event
        builder.setBulkDeleteSplittingEnabled(false);
        // Disable compression (not recommended)
        builder.setCompression(Compression.NONE);
        // Set activity (like "playing Something")
        builder.setActivity(Activity.playing("with fire"));


        jda = builder.build();
        jda.addEventListener(new MessageListener());
}

我的问题是,不管这一切,机器人都没有上线。我无法读取机器人的 stdout 输出,如果问题与端口未正确公开或其他原因有关,我将一无所知。

最后,我之前“不小心”使用 Fargate 运行时托管了机器人,这有其他问题,但确实设法让机器人显示“在线”状态。我现在使用 EC2 运行时。

非常感谢任何指针!如果您需要更多信息,请随时询问。

0 个答案:

没有答案