■ はじめに
今回は、独自のJARなどを AWS CodeArtifact のリポジトリにあげる方法について 記録しておく
目次
【1】JARをリポジトリにあげるには 【2】前提条件 1)IAMロール 【3】手順 Step1: CodeArtifact 認証トークンを取得 Step2: JAR を CodeArtifact リポジトリにあげる Step3: POM を CodeArtifact リポジトリにあげる Step4: CodeArtifact リポジトリを公開する Step5: 動作確認
【1】JARをリポジトリにあげるには
* 基本、以下の公式ドキュメントの「curl で公開する」の通りに行えばいい。
curl で公開する
https://docs.aws.amazon.com/ja_jp/codeartifact/latest/ug/maven-curl.html
上記にも ~~~~~ Maven クライアントを環境にインストールしていない、 またはインストールしたくない場合に便利です ~~~~~ とあるが、その通りで、curl コマンドを使える環境であれば完結できるので 非常に良かった。 (今更、Mavenインストールとかやりたくない、、、)
【2】前提条件
1)IAMロール
https://docs.aws.amazon.com/ja_jp/codeartifact/latest/ug/packages-overview.html#package-publishing
にある通り、以下の権限が必要。
IAMロール例
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ToPublishForMaven", "Effect": "Allow", "Action": [ codeartifact:PublishPackageVersion, codeartifact:PutPackageMetadata, ... ], "Resource": "*" } ] }
【3】手順
* 公式ドキュメントも参照しながら行っていく
https://docs.aws.amazon.com/ja_jp/codeartifact/latest/ug/maven-curl.html
* AWS CodeArtifact に関する AWS CLI については、以下の関連記事を参照。
AWS CodeArtifact ~ AWS CLI ~
https://dk521123.hatenablog.com/entry/2024/01/14/005148
Step1: CodeArtifact 認証トークンを取得
CODEARTIFACT_AUTH_TOKEN=@(aws codeartifact get-authorization-token \ --domain my_domain --domain-owner 111122223333 \ --query authorizationToken --output text)
Step2: JAR を CodeArtifact リポジトリにあげる
# 上げたいJARがあるか確認 $ls ... my-app-1.0.jar ... # 実行 $ curl --request PUT https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/com/mycompany/app/my-app/1.0/my-app-1.0.jar \ --user "aws:$CODEARTIFACT_AUTH_TOKEN" \ --header "Content-Type: application/octet-stream" \ --data-binary @my-app-1.0.jar
Step3: POM を CodeArtifact リポジトリにあげる
# 上げたいPOMがあるか確認 $ls ... my-app-1.0.pom ... # 実行 $ curl --request PUT https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/com/mycompany/app/my-app/1.0/my-app-1.0.pom \ --user "aws:$CODEARTIFACT_AUTH_TOKEN" --header "Content-Type: application/octet-stream" \ --data-binary @my-app-1.0.pom
Step4: CodeArtifact リポジトリを公開する
* UpdatePackageVersionsStatus API を使用して、 パッケージのステータスを Published に更新する。
コマンド例
aws codeartifact update-package-versions-status \ --domain my_domain \ --domain-owner 111122223333 \ --repository my_repo \ --format maven \ --namespace com.mycompany.app \ --package my-app \ --versions 1.0 \ --target-status Published
Step5: 動作確認
* get-package-version-asset を使って、JARファイルを取得してみる
コマンド例
$ aws codeartifact get-package-version-asset \ --domain my_domain \ --repository my_repo \ --format maven \ --package my-app \ --package-version 1.0 \ --asset 'my-app-1.0.jar' \ output.jar $ ls # 手持ちのJAR「my-app-1.0.jar」と、取得してきたJAR「output.jar」 # が同じサイズであることを確認
関連記事
AWS CodeArtifact ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/12/26/012343
AWS CodeArtifact ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/01/11/233802
AWS CodeArtifact ~ AWS CLI ~
https://dk521123.hatenablog.com/entry/2024/01/14/005148
AWS CodeArtifact ~ SBTでCodeArtifactを使う ~
https://dk521123.hatenablog.com/entry/2024/01/20/000329
SBT ~ 基本編 / build.sbt ~
https://dk521123.hatenablog.com/entry/2023/01/27/000000
SBT ~ 基本編 / sbtコマンド ~
https://dk521123.hatenablog.com/entry/2023/01/26/000000
SBT ~ リポジトリ先を変更・追加するには ~
https://dk521123.hatenablog.com/entry/2024/01/12/191252