私のジェンキンスパイプラインに次の設定があります
s3Upload( file:'ok.txt', bucket:'my-buckeck', path:'file.txt')
問題は、s3Upload関数がjenkinsに保存したAWSアクセスキーを取得しないことです
私は次のコードで結ばれました
withAWS(profile:'Test Publisher') {
s3Upload( file:'ok.txt', bucket:'my-buckeck', path:'file.txt')
}
ジェンキンスの私のS3プロファイルはそのようなものです。それでもプロファイルファイルを取得してもエラーが見つかりませんでした。 s3Upload関数を使用してjenkinsからs3にファイルをアップロードするにはどうすればよいですか?
S3にアップロードできるようにするには、Jenkinsの環境変数に認証情報を保存する必要があります。
AWS_DEFAULT_REGION=<region of bucket>
AWS_ACCESS_KEY_ID=<aws id>
AWS_SECRET_ACCESS_KEY=<your s3 access key>
これを行うには、Jenkins-Jenkinsの管理-システムの構成-グローバルプロパティ-環境変数に移動します
S3 PublisherプラグインとAWSプラグインを混同している可能性があります。
このスクリーンショットは、S3 Publisherプラグイン https://wiki.jenkins.io/display/JENKINS/S3+Plugin からのものです。最新バージョンに更新しないように警告があります。パイプラインの互換性が壊れているようですが、「バージョン0.10.11(2016年12月31日)-更新しない-パイプラインスクリプトの下位互換性が壊れています」という警告が表示されます。
ただし、パイプラインコードはJenkins AWSプラグイン用であるようです。 https://github.com/jenkinsci/pipeline-aws-plugin 。そのプラグインで資格情報を使用するには、次のいずれかを実行する必要があります。
これらのオプションはプラグインに記載されていますREADME https://github.com/jenkinsci/pipeline-aws-plugin
Use Jenkins UsernamePassword credentials information (Username: AccessKeyId, Password: SecretAccessKey):
withAWS(credentials:'nameOfSystemCredentials') {
// do something
}
Use profile information from ~/.aws/config:
withAWS(profile:'myProfile') {
// do something
}
「プロファイル」は、AWS構成ファイルのプロファイルセクションです。 http://docs.aws.Amazon.com/cli/latest/userguide/cli-multiple-profiles.html
その後、S3アップロード機能を使用できます。 https://github.com/jenkinsci/pipeline-aws-plugin#s3upload