如何从emr集群中提取aws paramstore的参数

fbcarpbf  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(376)

我们正在使用电子病历。在提交spark作业之前,我们尝试从aws param store(我们编写了一个java程序)中提取配置参数,并创建一个文件并在spark submit中使用它。
我们正在使用aws java sdk ssm api从param store中提取参数。
当我们尝试在主节点上运行这个程序时,它需要一个令牌(.aws/configure/credentials)来连接到aws ssm以获取参数。
我们可以在没有任何凭据的情况下访问s3存储桶,但不能访问param存储。
我们正在从大厅管道上启动电子病历集群。
下面是我们编写的从paramstore提取参数的方法:

private static List<Parameter> getParametersFromAWSParamStore(String path, String awsRegion){
        List<Parameter> paramList = new ArrayList<>();

        AWSSimpleSystemsManagement client = AWSSimpleSystemsManagementClientBuilder.standard().withRegion(awsRegion).build();
        GetParametersByPathRequest request = new GetParametersByPathRequest();
        request.withRecursive(true);
        request.withPath(path);
        request.setWithDecryption(true);
        GetParametersByPathResult result = null;
        do {
            result = client.getParametersByPath(request);
            paramList.addAll(result.getParameters());
        }while( result.getNextToken() !=null && !result.getNextToken().isEmpty());
        return paramList;
    }
zrfyljdw

zrfyljdw1#

我们需要确保执行此程序的iam角色具有ssm:getparametersbypath策略。
早些时候,该策略丢失,因此无法提取属性。

相关问题