

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Go Amazon SDK 获取 Secrets Manager 密钥值
<a name="retrieving-secrets-go-sdk"></a>

在应用程序中，您可以通过调用`GetSecretValue`或`BatchGetSecretValue`在任一应用程序中检索您的秘密 Amazon SDKs。不过，我们建议您通过使用客户端缓存来缓存您的密钥值。缓存密钥可以提高速度并降低成本。

对于 Go 应用程序，请使用 [Secrets Manager 基于 Go 的缓存组件](retrieving-secrets_cache-go.md)或直接使用 [https://docs.amazonaws.cn/sdk-for-go/api/service/secretsmanager/#SecretsManager.GetSecretValue](https://docs.amazonaws.cn/sdk-for-go/api/service/secretsmanager/#SecretsManager.GetSecretValue) 或 [https://docs.amazonaws.cn/sdk-for-go/api/service/secretsmanager/#SecretsManager.BatchGetSecretValue](https://docs.amazonaws.cn/sdk-for-go/api/service/secretsmanager/#SecretsManager.BatchGetSecretValue) 调用 SDK。

以下代码示例展示了如何获取 Secrets Manager 密钥值。

**所需权限：**`secretsmanager:GetSecretValue`

```
  // Use this code snippet in your app.
  // If you need more information about configurations or implementing the sample code, visit the AWS docs:   
  // https://aws.github.io/aws-sdk-go-v2/docs/getting-started/
  
  import (
    "context"
    "log"
  
    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/service/secretsmanager"
  )
  
  func main() {
    secretName := "<<{{MySecretName}}>>"
    region := "<<{{MyRegionName}}>>"
  
    config, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion(region))
    if err != nil {
      log.Fatal(err)
    }
  
    // Create Secrets Manager client
    svc := secretsmanager.NewFromConfig(config)
  
    input := &secretsmanager.GetSecretValueInput{
      SecretId:     aws.String(secretName),
      VersionStage: aws.String("AWSCURRENT"), // VersionStage defaults to AWSCURRENT if unspecified
    }
  
    result, err := svc.GetSecretValue(context.TODO(), input)
    if err != nil {
      // For a list of exceptions thrown, see
      // https://<<{{DocsDomain}}>>/secretsmanager/latest/apireference/API_GetSecretValue.html
      log.Fatal(err.Error())
    }
  
    // Decrypts secret using the associated KMS key.
    var secretString string = *result.SecretString
  
    // Your code goes here.
  }
```