You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda部署Golang Telegram生日提醒Bot遭遇超时问题

AWS Lambda部署Telegram生日提醒Bot超时问题

我开发的Telegram生日提醒Bot在EC2实例上正常运行了2个月,近期计划迁移到AWS Lambda并配置为每日执行一次,但部署后始终出现超时错误,错误信息如下:

Task timed out after 60.02 seconds

项目的main.go代码如下:

package main

import (
    "context"
    "encoding/json"
    "fmt"
    "log"
    "strconv"

    "github.com/aws/aws-lambda-go/lambda"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/service/secretsmanager"
    "github.com/aws/aws-sdk-go/aws"

    tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
)

type Secrets struct {
    BotAPIKey        string `json:"BOT_API_KEY"`
    ChatID           string `json:"CHAT_ID"`
    ConfluenceAPIKey string `json:"CONFLUENCE_API_KEY"`
}

func getSecrets() (*Secrets, error) {
    secretName := "HIDDEN"
    region := "eu-west-1"

    config, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion(region))
    if err != nil {
        return nil, err
    }

    svc := secretsmanager.NewFromConfig(config)

    input := &secretsmanager.GetSecretValueInput{
        SecretId:     aws.String(secretName),
        VersionStage: aws.String("AWSCURRENT"),
    }

    result, err := svc.GetSecretValue(context.TODO(), input)
    if err != nil {
        return nil, err
    }

    var secrets Secrets
    err = json.Unmarshal([]byte(*result.SecretString), &secrets)
    if err != nil {
        return nil, err
    }

    return &secrets, nil
}

func initializeBot(botAPIKey string) (*tgbotapi.BotAPI, error) {
    bot, err := tgbotapi.NewBotAPI(botAPIKey)
    if err != nil {
        return nil, err
    }
    bot.Debug = true
    fmt.Println("im here")
    return bot, nil
}

func handleRequest() error {
    log.Println("Starting handleRequest")

    secrets, err := getSecrets()
    if err != nil {
        log.Printf("Error getting secrets: %v", err)
        return err
    }

    bot, err := initializeBot(secrets.BotAPIKey)
    if err != nil {
        log.Printf("Error initializing bot: %v", err)
        return err
    }

    log.Printf("Authorized on account %s", bot.Self.UserName)

    chatID, err := strconv.ParseInt(secrets.ChatID, 10, 64)
    if err != nil {
        log.Printf("Error converting chatID to int64: %v", err)
        return err
    }

    scheduleBirthdayMessages(bot, chatID, secrets.ConfluenceAPIKey)
    return nil
}

func main() {
    lambda.Start(handleRequest)

}

项目中其他文件功能均正常,我怀疑问题出在处理函数的实现上。部署命令如下:

CGO_ENABLED=0 go build -o bootstrap
zip lambda-handler.zip bootstrap

内容的提问来源于stack exchange,提问作者Eladik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 14:20:13