Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

158
Views
Cómo implementar la API REST en AWS lambda utilizando el marco go-iris

Creé la API REST utilizando el marco Go Iris. Ahora quiero implementar estas API en AWS con la función lambda. Estoy usando MySQL como base de datos. ¿Es posible implementar mi archivo ejecutable Go en AWS lambda o debo modificar mi código de acuerdo con las especificaciones de AWS lambda? Estoy tratando de encontrar la solución, pero no obtengo mucha información.

Aquí está uno de mis puntos finales de API.

 package main import ( "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 } func main() { app := newApp() app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed), iris.WithOptimizations) }

Tengo algunos puntos finales de API más que realizan operaciones CRUD básicas. Estoy pensando en usar AWS lambda y AWS API Gateway.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

¿Debo modificar mi código de acuerdo con las especificaciones de AWS lambda?

Sí. Su código para lambda requerirá tener un controlador :

  • Controlador de funciones de AWS Lambda en Go

Este es el punto de entrada a su función.

También parece que su programa go es un servidor web basado en iris . Si este es el caso, no podrá usarlo de todos modos, ya que no puede invocar lambda desde Internet como lo haría con un servidor normal.

Además, lambda se ejecuta durante un máximo de 15 minutos, por lo que su uso como servidor sería muy limitado.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!