首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将可变函数传递给另一个函数

如何将可变函数传递给另一个函数
EN

Stack Overflow用户
提问于 2021-02-09 00:14:28
回答 1查看 142关注 0票数 1

我正在使用aws-sdk-v2,我想使用"secretsmanager“服务做一个最小的工作示例。

我正在尝试遵循这个使用"kms“服务的类似example中的步骤。

下面是我的脚本:

代码语言:javascript
复制
package main

import (
    "context"
    "fmt"
    "log"

    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
    "github.com/aws/aws-sdk-go-v2/service/secretsmanager"
)

func main() {

    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
        log.Printf("error: %v", err)
        return
    }

    client := imds.NewFromConfig(cfg)

    region, err := client.GetRegion(context.TODO(), &imds.GetRegionInput{})
    if err != nil {
        log.Printf("Unable to retrieve the region from the EC2 instance %v\n", err)
    }

    fmt.Printf(region.Region)

    svc := secretsmanager.NewFromConfig(cfg)

    input := &secretsmanager.CreateSecretInput{Name: aws.String("test")}
    
    opts := &secretsmanager.Options{Region: region.Region}
    result, err := svc.CreateSecret(context.TODO(), input, opts)

    if err != nil {

        fmt.Println(err)
    }
    fmt.Println(result)

}

错误:

代码语言:javascript
复制
./main.go:38:46: cannot use opts (type *secretsmanager.Options) as type func(*secretsmanager.Options) in argument to svc.CreateSecret

所以错误很明显是在这些行中:

代码语言:javascript
复制
    opts := &secretsmanager.Options{Region: region.Region}
    result, err := svc.CreateSecret(context.TODO(), input, opts)

documentation中,函数CreateSecret接受以下输入类型:

代码语言:javascript
复制
func (c *Client) CreateSecret(ctx context.Context, params *CreateSecretInput, optFns ...func(*Options)) (*CreateSecretOutput, error)

我找不到如何在我的上下文中创建此...func(*Options)部件。有没有人能帮我一下这个部分?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-09 01:47:25

我想通了:

代码语言:javascript
复制
    opts := func(o *secretsmanager.Options) {
        o.Region = region.Region
    }

    result, err := svc.CreateSecret(context.TODO(), input, opts)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66105276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档