我们正在使用 EMR。在提交 spark 作业之前,我们尝试从 AWS Param Store 中提取配置参数(我们编写了一个 java 程序)并创建一个文件并在 spark-submit 中使用它。
我们正在使用aws-java-sdk-ssm API 从参数存储中提取参数。
当我们尝试在主节点上运行该程序时,它需要一个令牌 (.aws/configure/credentials) 来连接到 aws ssm 以提取参数。
我们可以在没有任何凭据的情况下访问 S3 存储桶,但不能访问参数存储。
我们正在从大厅管道启动 EMR 集群。
下面是我们编写的从 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;
}