为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 go-iris 框架将 REST API 部署到 AWS lambda

如何使用 go-iris 框架将 REST API 部署到 AWS lambda

Go
慕桂英4014372 2022-06-13 17:21:11
我使用 Go Iris 框架创建了 REST API。现在我想用 lambda 函数在 AWS 上部署这些 API。我正在使用 MySQL 作为数据库。是否可以在 AWS lambda 上部署我的 Go 可执行文件,或者我是否需要根据 AWS lambda 规范修改我的代码?我试图找到解决方案,但没有得到太多信息。这是我的 API 端点之一。package mainimport (    "database/sql"    "github.com/kataras/iris"    "github.com/kataras/iris/middleware/logger"    "github.com/kataras/iris/middleware/recover")type Reward struct {    Id int `json:"reward_id"`    LotteryID int `json:"lottery_id"`    RewardName string `json:"reward_name"`    Description string `json:"reward_description"`    Asset int `json:"reward_asset"`    AssetName string `json:"reward_asset_name"`    }func dbConn() (db *sql.DB) {    dbDriver := "mysql"    dbUser := "xxx"    dbPass := "xxx"    dbName := "xxx"    db, err := sql.Open(xxxxxxxxx)    if err != nil {    panic(err.Error())    }    return db}func newApp() *iris.Application {    app := iris.New()    app.Logger().SetLevel("debug")    app.Use(recover.New())    app.Use(logger.New())        db := dbConn()    app.Get("/reward/{reward_id:int}", func(ctx iris.Context) {    id1 := ctx.Params().GetIntDefault("reward_id", 0)    stmtOut, err := db.Prepare("select id, lottery_id,reward_name,reward_description,reward_asset, reward_asset_name from rewards_table where id =?")    if err != nil {    panic(err.Error())    }    defer stmtOut.Close()    var id, lotteryId, rewardAsset int    var rewardName, rewardDescription, rewardAssetName string    err1 := stmtOut.QueryRow(id1).Scan(&id, &lotteryId, &rewardName, &rewardDescription, &rewardAsset, &rewardAssetName)    if err1 != nil {        panic(err.Error())    }    reward := Reward{        Id:          id,        LotteryID:   lotteryId,        RewardName:  rewardName,        Description: rewardDescription,        Asset:       rewardAsset,        AssetName:   rewardAssetName,    }    ctx.JSON(&reward)    })    return app}我还有几个 API 端点可以执行基本的 CRUD 操作。我正在考虑使用 AWS lambda 和 AWS API Gateway。
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

我是否需要根据 AWS lambda 规范修改我的代码?

是的。您的 lambda 代码需要有一个处理程序

这是您的函数的入口点。

此外,您的 go 程序似乎是基于iris. 如果是这种情况,您将无法使用它,因为您无法像使用常规服务器那样从 Internet 调用 lambda。

lambda 也最多运行 15 分钟,因此它作为服务器的使用将非常有限。


查看完整回答
反对 回复 2022-06-13
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信