简体   繁体   English

HTTP 发布 API 请求,使用 go 语言和 AWS 机密管理器 Z099FB995346F31C749F6E0E4

[英]HTTP Post API request using go lang with aws secrets manager header

I am able to fetch the secrets from AWS secrets manager and using this secrets (ex: {"x-api-key":"123456789qwertyuiop"}) as an header, I want to call an API, I am new to golang and can anyone help me on this?我能够从 AWS 机密管理器获取机密并使用此机密(例如:{"x-api-key":"123456789qwertyuiop"})作为 header,我想调用 API,我是新来的 golang 和有人帮我吗?

My code example我的代码示例

func fetch_api() {

    ?? How to call an POST API with below header??

    // I get header secrets from below func getsecrets in above mentioned example
    secret, _ := getsecrets("MyAPISecrets")
    fmt.Println(secret)
}

func getsecrets(s string) (string, error) {
    // Create a session
    mySession, err := session.NewSession(&aws.Config{
        Region: aws.String(os.Getenv("REGION"))},
    )
    if err != nil {
        log.Fatal(err)
    }
    svc := secretsmanager.New(mySession)

    result, err := svc.GetSecretValue(&secretsmanager.GetSecretValueInput{SecretId: &s})
    if err != nil {
        log.Fatal(err.Error())
    }
    return *result.SecretString, nil
}

func main() {
    lambda.Start(fetch_api)
}

You can modify this code, it is just an example您可以修改此代码,它只是一个示例

func fetch_api() {

    // I get header secrets from below func getsecrets in above mentioned example
    secret, _ := getsecrets("MyAPISecrets")
    fmt.Println(secret)

    client := &http.Client{}
    // create POST request
    req, err := http.NewRequest("POST", url, body)))
    if err != nil {
        panic(err)
    }
    // set content-type header
    req.Header.Set("Content-Type", "application/json")
    // set x-api-key header
    req.Header.Set("x-api-key", secret)
    // send request
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    // print response
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(body))
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用 GetSecretValue AWS 机密管理器时出现 InvalidSignatureException API - InvalidSignatureException in using GetSecretValue AWS secrets manager API 使用 AWS cli 解析来自 AWS 机密管理器的机密 - Parsing secrets from AWS secrets manager using AWS cli 在 AWS Secrets Manager 中创建密钥 - Create secrets in AWS Secrets Manager 使用 Terraform 将文件上传到 AWS Secrets Manager - upload file into AWS Secrets Manager using Terraform CORS 仅 POST 请求错误:AWS HTTP API 网关 - CORS Error for Only POST request: AWS HTTP API Gateway 使用本地放大模拟 api 时出错:请求有一个 'X-Amzn-Trace-Id' HTTP header 保留给 AWS X-Ray 跟踪 header - Getting error when using local amplify mock api: The request has a 'X-Amzn-Trace-Id' HTTP header which is reserved for AWS X-Ray trace header 如何使用 Lambda 访问 AWS API Gateway 请求的 HTTP 标头? - How to access HTTP headers for request to AWS API Gateway using Lambda? AWS Multi Environment Secrets Manager arn 密钥 - AWS Multi Environment Secrets Manager arn keys AWS CLI Secrets Manager 创建密钥 - AWS CLI Secrets Manager Create Secret 在 python 中使用 AWS Lambda 向外部 API 发送 Post 请求 - Send Post request to an external API using AWS Lambda in python
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM