ablog

不器用で落着きのない技術者のメモ

AWS SDK for Java v1.11 を使った Java サンプルプログラムを実行してみる

aws-doc-sdk-examples/java at master · awsdocs/aws-doc-sdk-examples · GitHub をビルドして、S3 バケットをリスト表示する Java サンプルプログラムを動かしてみた。

インストール

  • git をインストールする。
$ sudo yum -y install git
  • OpenJDK をインストールする。
$ sudo yum -y install java-1.8.0-openjdk-devel.x86_64
openjdk version "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
  • Maven をインストールする。
$ curl -OL https://archive.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
$ tar xzvf apache-maven-3.5.2-bin.tar.gz
$ sudo mv apache-maven-3.5.2 /opt/
$ sudo ln -s /opt/apache-maven-3.5.2 /opt/apache-maven
  • AWS SDK for Java v1.11 をインストールする。
$ wget https://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip
$ unzip aws-java-sdk.zip
  • .bash_profile に追記する。
$ vi .bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/opt/apache-maven/bin
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64
export JAVA_HOME
CLASSPATH=.:/home/ec2-user/aws-java-sdk-1.11.568/lib/aws-java-sdk-1.11.568.jar
export CLASSPATH
$ source .bash_profile
  • Maven のバージョンを確認する。
$ mvn --version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)
Maven home: /opt/apache-maven
Java version: 1.8.0_201, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.14.114-105.126.amzn2.x86_64", arch: "amd64", family: "unix"

サンプルプログラム

  • サンプルプログラムをダウンロードする。
$ git clone https://github.com/awsdocs/aws-doc-sdk-examples.git
  • aws-doc-sdk-examples/java/example_code/s3/pom.xml の dependencies タグの間に以下を追記する。
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.11.543</version>
  </dependency>
  • CrossRegionReplication.java はビルド時にエラーになったので、とりあえず退避する。
$ cd ~/aws-doc-sdk-examples/java/example_code/s3/src/main/java
$ mv CrossRegionReplication.java CrossRegionReplication.java.org
  • ビルドする。
$ cd ~/aws-doc-sdk-examples/java/example_code/s3
$ mvn package
  • アクセスキーとシークレットキーを環境変数にセットする。
$ export AWS_ACCESS_KEY_ID=...
$ export AWS_SECRET_ACCESS_KEY=...
  • 実行する。
$ ./run_example.sh ListBuckets
## Running ListBuckets...
## arguments ...
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Amazon S3 Examples 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.6.0:java (default-cli) @ s3examples ---
Your Amazon S3 buckets are:
* aws-athena-query-results-123456789012-ap-northeast-1
* aws-athena-query-results-123456789012-us-east-1
* aws-athena-query-results-us-east-1-123456789012

(中略)

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.835 s
[INFO] Finished at: 2019-06-09T16:55:16Z
[INFO] Final Memory: 27M/897M
[INFO] ------------------------------------------------------------------------

環境

$ cat /etc/system-release
Amazon Linux release 2 (Karoo)
$ uname -r
4.14.114-105.126.amzn2.x86_64