【问题标题】:Java not finding secretmanager with aws sdk installed?Java找不到安装了aws sdk的secretmanager?
【发布时间】:2020-02-07 03:00:06
【问题描述】:

所以我已经使用 Gradle 将 AWS 安装到我的项目中。当我在我的 Java 项目中导入它时,我会导入 com.amazonaws.services。然后 IDE 会显示一个选项列表,但 secretmanager 不在该列表中。如果我添加它,那么它也不能正常工作,只是给我一个它不存在的错误。

这也是我在 gradle 中安装它的方式:

dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile('com.amazonaws:aws-java-sdk:1.11.717') }

【问题讨论】:

  • 最新的 AWS Secrets Manager (v1) 指令是:compile group: 'com.amazonaws', name: 'aws-java-sdk-secretsmanager', version: '1.11.716'
  • 成功了!非常感谢!
  • @JacobG。 compile('com.amazonaws:aws-java-sdk:1.11.717') 向您提供 aws 服务列表但机密管理器未显示在该列表中的方式令人困惑。秘密管理器应该存在于 sdk 版本 1.11.717
  • @AlexanderBishop 在您进行修复之前,IDE 是否向您显示了其他 aws 服务?
  • 这就是我如此困惑的原因。

标签: java amazon-web-services import sdk aws-secrets-manager


【解决方案1】:

您可以在 Github 存储库 [0] 中找到 SecretManager V2 示例。如果您使用的是 SecretManager Java API,强烈建议您迁移到 V2。

0 - https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javav2/example_code/secretsmanager/src/main/java/com/example/secrets

我正在使用 Maven 并设置 POM,没有任何问题。

例如,下面的代码展示了如何获取秘密值。

package com.example.secrets;

//snippet-start:[secretsmanager.java2.get_secret.import]
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException;
//snippet-end:[secretsmanager.java2.get_secret.import]

public class GetSecretValue {

    public static void main(String[] args) {

        final String USAGE = "\n" +
                "To run this example, supply the name of the secret (for example, tutorials/MyFirstSecret).  \n" +
                "\n" +
                "Example: GetSecretValue <secretName>\n";

        if (args.length < 1) {
            System.out.println(USAGE);
            System.exit(1);
        }

        /* Read the name from command args */
        String secretName = args[0];

        Region region = Region.US_EAST_1;
        SecretsManagerClient secretsClient = SecretsManagerClient.builder()
                .region(region)
                .build();

        getValue(secretsClient, secretName);
    }

    //snippet-start:[secretsmanager.java2.get_secret.main]
    public static void getValue(SecretsManagerClient secretsClient,String secretName) {

        try {
            GetSecretValueRequest valueRequest = GetSecretValueRequest.builder()
                .secretId(secretName)
                .build();

            GetSecretValueResponse valueResponse = secretsClient.getSecretValue(valueRequest);
            String secret = valueResponse.secretString();
            System.out.println(secret);

        } catch (SecretsManagerException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
    //snippet-end:[secretsmanager.java2.get_secret.main]
}

【讨论】:

    猜你喜欢
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 2012-07-22
    • 1970-01-01
    相关资源
    最近更新 更多