登录
首页 >  Golang >  Go问答

为什么在此 AWS Lambda 部署包中找不到处理程序脚本?

来源:stackoverflow

时间:2024-04-08 16:00:44 225浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《为什么在此 AWS Lambda 部署包中找不到处理程序脚本?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

以下是 https://docs.aws.amazon.com/lambda/latest/dg/golang-handler.html 中的 golang 示例 lambda 函数:

$ cat ./foo.go
package main

import (
  "fmt"
  "context"
  "github.com/aws/aws-lambda-go/lambda"
)

type myevent struct {
  name string `json:"name"`
}

func handlerequest(ctx context.context, name myevent) (string, error) {
  return fmt.sprintf("hello %s!", name.name ), nil
}

func main() {
  lambda.start(handlerequest)
}

我相信我已正确遵循创建部署包的步骤:

$ goos=linux go build foo.go
$ zip foo.zip foo
  adding: foo (deflated 49%)
$

上面的 lambda 函数或部署包有什么问题?如果没有,为什么 lambda 创建函数会失败并无法找到处理程序脚本?

$ aws --profile jack --endpoint-url http://localhost:4574 lambda create-function --function-name foo --runtime go1.x --zip-file fileb://foo.zip --handler main --role arn:aws:iam::000000000000:role/lambda-role

An error occurred (ValidationError) when calling the CreateFunction operation: Unable to find handler script (/tmp/localstack/zipfile.07e4ae91/main) in Lambda archive. Config for local mount, docker, remote: "False", "True", "True"
$

解决方案


请查看以下 github 问题和 PR:

在 localstack 中启用/使用 go 可能需要特殊步骤。

本篇关于《为什么在此 AWS Lambda 部署包中找不到处理程序脚本?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>