我们正在使用电子病历。在提交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;
}
1条答案
按热度按时间zrfyljdw1#
我们需要确保执行此程序的iam角色具有ssm:getparametersbypath策略。
早些时候,该策略丢失,因此无法提取属性。