• ADADADADAD

    Go 语言中的 AWS Lambda 函数[ 建站问答 ]

    建站问答 时间:2024-12-24 18:56:50

    作者:文/会员上传

    简介:

    Go 语言支持是 AWS 最近新增的。要使用 Go,您需要在创建 AWS Lambda 函数时从 AWS 控制台选择语言。在本章中,让我们详细了解 Go 语言中的 AWS Lambda 函数。安装 Go首先,我们

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    Go 语言支持是 AWS 最近新增的。要使用 Go,您需要在创建 AWS Lambda 函数时从 AWS 控制台选择语言。在本章中,让我们详细了解 Go 语言中的 AWS Lambda 函数。

    安装 Go

    首先,我们需要 Go 语言支持。在本节中,我们将通过以下详细信息开始在 Go 中使用 AWS Lambda。这是 Go 下载的官方网站:golang.org/dl/

    现在,根据操作系统下载软件包。按照此处给出的步骤在相应的操作系统上安装 Go。

    在 Windows 上安装

    请注意,对于 Windows,有 32 位和 64 位下载可用。下载 zip 文件并解压缩内容并将其存储在您选择的目录中。

    添加在ControlPanel> System> Advanced system settings 中可用的环境变量。

    现在,单击环境变量按钮并添加目录路径,如下所示

    您还可以编辑系统变量,如下所示

    完成这些步骤后,您应该可以开始使用 Go。打开命令提示符并检查 Go 命令的版本。观察以下屏幕截图。

    Linux 和 Mac OS 的安装

    要在 Linux 和 Mac OS 上安装软件包,请按照如下所示的说明进行操作

    解压缩包并将其存储在位置/usr/local/go。现在,将/usr/local/go/bin添加到 PATH 环境变量中。可以使用/etc/profile或$HE/.profile来完成。

    为此,您可以使用以下命令

    export PATH=$PATH:/usr/local/go/bin

    要为 Windows、Linux 和 mac 添加 AWS 支持,请在您的 git 命令行中使用以下命令

    go.exe getu github/aws/awslambdago/lambda
    go.exe getu github/aws/awslambdago/lambdacontext
    go.exe getu github/aws/awslambdago/cmd/buildlambdazip

    要编译代码 Windows/Linux/Mac,请使用以下命令

    GOOS=linux GOARCH=amd64 go buildo main main.go
    %GOPATH%\bin\buildlambdazip.exeo main.zip main

    使用 GO 的 AWS Lambda 函数

    当构建给出可执行文件时,Go 中返回的程序。下面是一个简单的 Go 程序,支持 AWS Lambda。我们需要导入github/aws/awslambdago/lambda,因为它具有 Lambda 编程功能。AWS Lambda 的另一个重要需求是处理程序。

    Main.go

    // main.go
    package main
    import (
    "github/aws/awslambdago/lambda"
    )
    func hello() (string, error) {
    return "Hello Lambda", nil
    }
    func main() {
    // Make the handler available for Remote Procedure Call by AWS Lambda
    lambda.Start(hello)
    }

    注意Go程序的执行从 main where lambda 开始。 start 是用处理函数调用的。观察下面显示的代码

    func main() {
    // Make the handler available for Remote Procedure Call by AWS Lambda
    lambda.Start(hello)
    }

    现在,让我们使用 Go 命令执行上述文件,然后压缩可执行文件。

    我们一直使用的文件结构如下所示

    使用go build,它会创建一个名为 main.exe 的可执行文件。要压缩文件并将其上传到 AWS Lambda,您可以使用以下过程

    要编译代码 Windows/Linux/Mac,请使用以下命令

    GOOS=linux GOARCH=amd64 go buildo main main.go
    %GOPATH%\bin\buildlambdazip.exeo main.zip main

    然后,登录 AWS 控制台并使用Go作为运行时创建 Lambda 函数

    创建函数后,上传上面创建的可执行 zip 文件。

    带有 Go 的 Lambda 函数处理程序

    Handler 是 Go 程序开始执行的地方。从对lambda.start的 main 调用开始,使用处理函数调用执行。请注意,要添加的处理程序将是main。

    观察这里的代码以了解

    func main() {
    // Make the handler available for Remote Procedure Call by AWS Lambda
    lambda.Start(hello)
    }

    按照下面给出的屏幕截图进行操作

    现在,保存函数并测试它。执行结果如下图所示。

    相应的日志输出将如下所示

    带有 Go 的上下文对象

    Go 中的 AWS Lambda 为上下文提供了以下全局变量和属性。

    MemoryLimitInMB内存限制,以 MB 为单位,在 aws lambda 中配置。FunctionNameaws lambda 函数的名称。FunctionVersionaws lambda 函数执行的版本。LogStreamNamecloudwatch 日志流名称。LogGroupNamecloudwatch 组名。

    上下文中可用的属性如下

    AwsRequestID

    这是您在调用 AWS Lambda 函数时获得的 AWS 请求 ID。

    客户端上下文

    这包含有关通过 AWS 移动开发工具包调用时的客户端应用程序和设备的详细信息。它可以为空。客户端上下文提供客户端 ID、应用程序名称、版本名称、版本代码和应用程​​序包名称等详细信息。

    InvokedFunctionArn

    被调用函数的 ARN。不合格的 ARN 执行 $LATEST 版本,别名执行它指向的函数版本。

    身份

    当与 AWS 移动开发工具包一起使用时,它提供了有关 Amazon Cognito 身份提供商的详细信息。

    添加到main.go以打印上下文详细信息的更改

    // main.go
    package main
    import (
    "context"
    "log"
    "github/aws/awslambdago/lambda"
    "github/aws/awslambdago/lambdacontext"
    )
    func hello(ctx contextontext) (string, error) {
    lc, _ := lambdacontext.FrContext(ctx);
    log.Print(lc);
    log.Print(lc.AwsRequestID);
    log.Print(lc.InvokedFunctionArn);
    return "Hello Lambda", nil
    }
    func main() {
    // Make the handler available for Remote Procedure Call by AWS Lambda
    lambda.Start(hello)
    }

    我们需要导入log和lambda 上下文以在 Go 中使用它。上下文详细信息如下

    func hello(ctx contextontext) (string, error) {
    lc, _ := lambdacontext.FrContext(ctx);
    log.Print(lc);
    log.Print(lc.AwsRequestID);
    log.Print(lc.InvokedFunctionArn);
    return "Hello Lambda", nil
    }

    您可以在测试上述代码时观察到以下输出

    记录数据

    使用Go,您可以使用 log 或 fmt 模块记录数据,如下所示

    // main.go
    package main
    import (
    "log"
    "fmt"
    "github/aws/awslambdago/lambda"
    )
    func hello() (string, error) {
    log.Print("Hello fr Lambda Go using log");
    fmt.Print("Hello fr Lambda Go using fmt");
    return "Hello Lambda", nil
    }
    func main() {
    // Make the handler available for Remote Procedure Call by AWS Lambda
    lambda.Start(hello)
    }

    相同的输出如下所示

    在 CloudWatch 中检查日志

    您也可以在 CloudWatch 中查看日志。为此,请转到 AWS 服务并选择 cloudwatch 并单击左侧的Logs。现在,在列表中搜索 Lambda 函数以查看日志

    功能错误

    您可以使用错误模块在 AWS Lambda 中创建自定义错误处理,如下面的代码所示

    // main.go
    package main
    import (
    "errors"
    "github/aws/awslambdago/lambda"
    )
    func hello() error {
    return errors.New("There is an error in the code!")
    }
    func main() {
    // Make the handler available for Remote Procedure Call by AWS Lambda
    lambda.Start(hello)
    }

    上面显示的代码的输出如下所示

    作为AWS核心代理商,选择天.下.数.据的优势

    1、专属客服协助注册AWS,或提供注册好的账号直接使用

    2、支持收U等多币种支付代付,无额外服务费用

    3、AWS多种产品类型,更高产品租赁权限

    4、针对大客户,AWS专属折扣优惠

    5、7x24小时专属客服,在线解答各种疑问

    AWS亚马逊云代理商哪家好?推荐找,可享受高额折扣、高额返现优惠,电话40 02023/aws

    Go 语言中的 AWS Lambda 函数.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载