私は依存関係として特定のjarファイルを必要とするgradleビルドファイルを持っています。Gradle単一JAR AWS S3のIAMポリシーによる依存性
jarファイルはAWSのS3バケットにあります。
ジェンキンスでgradleビルドファイルが実行されていて、Jenkinsボックスには既にIAMポリシーがあり、S3からアップロードしてダウンロードすることができます(私はポリシーを制御しないので、 )。
maven {
url "s3://myBucket/myPath"
credentials(AwsCredentials) {
accessKey = awsCredentials.AWSAccessKeyId
secretKey = awsCredentials.AWSSecretKey
}
}
は現在、私はとてもとしてフェッチされるAWSの資格情報提供:
def fetchAwsCredentials = {
try {
return new InstanceProfileCredentialsProvider(false)
} catch (Exception e) {
println("unable to get credentials: " + e.getMessage())
}
}
AWSCredentials awsCredentials = fetchAwsCredentials().getCredentials()
をそして最後に、私がしようとし
私のGradleのビルドファイルで私はそうのようなリポジトリとしてS3バケットを指定します依存関係のセクションで必要なJARファイルを次のように取得します。
testCompile files('myJarFile.jar')
Grailsビルドを実行するJenkinsのジョブでは、JenkinsインスタンスからAWS資格情報を取得します(例外がキャッチされないため)が、JARファイルを取得しません。 存在しないJARファイルを依存関係として追加しようとしましたが、ビルドから見つからなかったエラーは表示されません。
私の主な質問は、アクセスキーと秘密キーではなくIAMポリシーを指定する方法です。私はGradleのドキュメントをチェックして、私はまったくの資格情報を指定しない場合、次のエラー以外のIAM認証をサポートについては何も、見ることができない。
を提供しなければならないのいずれかS3リソースがAwsIamAutenticationを指定するか、いくつかのAwsCredentialsに
[012]
私はまた、なぜインスタンスの資格情報を使用しないと、なぜ私はそれが依存関係を見つけることができなかったビルド中にエラーを取得しない興味があります - 私が得るエラーは私ですJARファイルの依存関係がないためにテストが失敗します。
ありがとう、感謝します。 (私は認めざるを得ない気よりも地味ビューで...)