EMR を使用しています。 Spark ジョブを送信する前に、AWS Param ストアから設定パラメータを取得し (Java プログラムを作成しました)、ファイルを作成して、それを Spark-submit で使用しようとしています。
aws-java-sdk-ssm API を使用して param ストアからパラメータを取得しています。
マスターノードでこのプログラムを実行しようとすると、パラメータを取得するために aws ssm に接続するためのトークン (.aws/configure/credentials) が必要になります。
認証情報なしで S3 バケットにアクセスできますが、param ストアにはアクセスできません。
コンコース パイプラインから 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;
}
どのようなエラーが発生しますか?
– ヨルダン
2020 年 9 月 4 日 22:47
それはポリシーに関連していると思います。ポリシーをアタッチして試したら、ここで更新します。権限エラーが発生しました。
– サンジーブ
2020 年 9 月 4 日 23:53
@Sanjeev ポリシーを更新した後、この問題を解決できましたか?
– エディ・ベジャウイ
2020 年 9 月 6 日 19:39
はい。うまくいきました。更新が遅れて申し訳ありません。
– サンジーブ
2020 年 9 月 7 日 20:24
------------------------
このプログラムを実行する IAM ロールに ssm: getParametersByPath ポリシーがあることを確認する必要があります。
以前はポリシーが欠落していたため、ポリシーを実行できませんでした。プロパティを取得します。