gpt4 book ai didi

go - 如何在 go 中编写前/后流量钩子(Hook)函数?

转载 作者:数据小太阳 更新时间:2023-10-29 03:09:34 28 4
gpt4 key购买 nike

我开始使用 AWS SAM,现在我只有一些单元测试,但我想尝试在预流量 Hook 函数中运行集成测试。

不幸的是,似乎没有 Golang 的代码示例,我只能找到 Javascript 的代码示例。

来自 this我拼凑的示例,我必须使用代码部署 SDK 并调用 PutLifecycleEventHookExecutionStatus ,但具体情况尚不清楚。 aws code example repo for go也没有代码部署示例。

有关我正在寻找的主题的更多信息可在此处获得 https://github.com/awslabs/serverless-application-model/blob/master/docs/safe_lambda_deployments.rst#pretraffic-posttraffic-hooks .

我想先测试一个简单地查询 DynamoDB 的 lambda 函数。

最佳答案

类似这样的东西:

package main

import (
"context"
"encoding/json"

"github.com/aws/aws-lambda-go/lambda"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/codedeploy"
)

type CodeDeployEvent struct {
DeploymentId string `json:"deploymentId"`
LifecycleEventHookExecutionId string `json:"lifecycleEventHookExecutionId"`
}

func HandleRequest(ctx context.Context, event CodeDeployEvent) (string, error) {

// add some tests here and change status flag as needed . . .

client := codedeploy.New(session.New())
params := &codedeploy.PutLifecycleEventHookExecutionStatusInput{
DeploymentId: &event.DeploymentId,
LifecycleEventHookExecutionId: &event.LifecycleEventHookExecutionId,
Status: "Succeeded",
}

req, _ := client.PutLifecycleEventHookExecutionStatusRequest(params)

_ = req.Send()
}

关于go - 如何在 go 中编写前/后流量钩子(Hook)函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53959452/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com