Web Services, Inc. or its affiliates. AWS SDK for Java JavaのアプリケーションでAWSサービスを利用するためのSDK Apache License 2.0のOSS 現在v1, v2それぞれのバージョンを提供中 モバイル(Android)ではAmplify Libraryの利用が推奨 6
Web Services, Inc. or its affiliates. AWS SDK for Java v1 or v2 ? v1は現在も継続サポート中なので新サービスやAPI追加対応、 セキュリティ対応等も実施中 v2はv1から実装を大幅に書き換えた実装となっている為、一部機能 差や実装方法が異なる点があるのは注意が必要 7
Web Services, Inc. or its affiliates. 非同期プログラミング例 CompletableFuture<ListTablesResponse> response = client.listTables(ListTablesRequest.builder() .build()); CompletableFuture<List<String>> tableNames = response.thenApply(ListTablesResponse::tableNames); tableNames.whenComplete((tables, err) -> { try { if (tables != null) { tables.forEach(System.out::println); } else { // Handle error err.printStackTrace(); } } finally { // Lets the application shut down. Only close the client when you are completely done with it. client.close(); } }); tableNames.join(); 18 Future完了時に行われる処理 テーブル一覧の非同期取得
Web Services, Inc. or its affiliates. HTTP/2対応 • HTTP/2対応のClientを提供 • 使用中のサービスでサポートされている場合、自動的に HTTP/2 が利用される • Kinesis Data Streams や TranscribeではHTTP/2 の Event Streaming に対応した実装が可能 21 https://docs.aws.amazon.com/ja_jp/sdk-for-java/latest/developer-guide/examples-kinesis-stream.html
Web Services, Inc. or its affiliates. Smart Configuration Defaults 一般的なSDKの使用パターンに合わせて事前定義された SDKのデフォルト値のセットが利用可能 23 mode 特徴 legacy SDK によって異なり、defaults前に存在していたデフォルト設定を利用する standard ほとんどのシナリオで安全に実行できるデフォルト値 in-region standard モードに基づいて構築され、リージョン内のアプリケーションに合わ せてカスタマイズした最適化が行われている cross-region standardモードに基づいて構築され、クロスリージョンのリクエストをするア プリケーションに合わせてカスタマイズした最適化が行われている mobile standard モードに基づいて構築され、モバイルアプリケーション向けにさらに 最適化が行われている auto SDKがランタイム環境を検出して、適切な設定を自動的に決定しようとします。
Web Services, Inc. or its affiliates. 自動ページネーション 多くの AWS API は結果を複数の「ページ」のレスポンスで分割しま す。(e.g. S3のオブジェクト一覧等) v1 では、レスポンスの各ページにアクセスするために、複数の手動 リクエストを行う必要がありました。 v2 では、これを SDK が自動的に処理します。 25
Web Services, Inc. or its affiliates. クライアントメトリクス SDK使用時のパフォーマンスメトリクスを収集することが可能。 [メトリクス例] • API呼び出しの成功/失敗 • API呼び出しの再試行回数 • API呼び出し時間(全体、認証情報の取得、マーシャリング) • Backoff時間 28
Web Services, Inc. or its affiliates. GraalVM Native Image サポート GraalVM Native Imageへの対応を利用して実行可能なバイナリファ イルの作成が可能 そうすることで、起動時間の高速化やメモリ使用量の削減をする 例えばLambdaやコンテナ環境(ECS/EKS等)での起動の高速化や リソース利用の効率化を行うことが可能 31
Web Services, Inc. or its affiliates. GraalVM + Lambdaにご興味ある方は builders.flashにChatworkさま寄稿の記事も参考になりますので 是非こちらのブログもご確認ください 34 https://aws.amazon.com/jp/builders-flash/202110/jvm-lambda-function/