第2章 S3 クライアントの作成


ワークベンチから S3 互換オブジェクトストアに保存されているデータと対話するには、Boto3 などの AWS SDK を使用して AWS S3 サービスへのリクエストを処理するローカルクライアントを作成する必要があります。

Boto3 は、AWS S3 や S3 互換オブジェクトストレージなどの AWS サービスを作成および管理するための API を提供する Python 用の AWS SDK です。

ワークベンチから S3 サービス用の Boto3 クライアントを設定すると、S3 互換オブジェクトストアに接続してデータを使用できるようになります。

前提条件

  • S3 互換オブジェクトストアにアクセスできる。
  • オブジェクトストアのバケットにファイルを保存している。
  • Red Hat OpenShift AI にログインしている。
  • 特殊な OpenShift AI グループを使用している場合は、OpenShift のユーザーグループ、または、管理者グループ (rhoai-usersrhoai-admins など) に属している。
  • データサイエンスプロジェクトを作成した。
  • Jupyter ノートブックイメージを使用して、プロジェクトにワークベンチを追加している。
  • S3 互換ストレージアカウントの認証情報に基づいて、ワークベンチのデータ接続を設定している。

手順

  1. OpenShift AI ダッシュボードから、Data Science Projects をクリックします。
  2. 開始するワークベンチが含まれているプロジェクトの名前をクリックします。
  3. 実行されていないワークベンチを開始するには、そのワークベンチの Status 列のトグルをクリックします。
  4. ワークベンチの横にある Open リンクをクリックします。

    Jupyter 環境ウィンドウが開きます。

  5. ツールバーで、Git Clone アイコンをクリックし、Clone a Repository を選択します。
  6. Clone a repo ダイアログで、URL https://github.com/opendatahub-io/odh-doc-examples.git を入力し、Clone をクリックします。
  7. ファイルブラウザーで、新しく作成された odh-doc-examples フォルダーを選択します。
  8. 新しく作成された storage フォルダーをダブルクリックします。

    s3client_examples.ipynb という名前の Jupyter ノートブックが表示されます。

  9. s3client_examples.ipynb ファイルをダブルクリックしてノートブックを起動します。

    ノートブックが開きます。次のタスクのコード例が表示されます。

    • Boto3 と必要な Boto3 ライブラリーのインストール
    • S3 クライアントセッションの作成
    • S3 クライアント接続の作成
    • ファイルのリスト表示
    • バケットの作成
    • バケットへのファイルのアップロード
    • バケットからのファイルのダウンロード
    • バケット間でのファイルのコピー
    • バケットからのオブジェクトの削除
    • バケットの削除
  10. ノートブックで、Boto3 と必要なライブラリーをインストールするための次の指示を参照し、コードセルを実行します。

    #Upgrade pip to the latest version
    !pip3 install --upgrade pip
    
    #Install Boto3
    !pip3 install boto3
    
    #Install Boto3 libraries
    import os
    import boto3
    from botocore.client import Config
    from boto3 import session
    
    #Check Boto3 version
    !pip3 show boto3

    コードセル内の指示により、Python Package Manager (pip) が最新バージョンに更新され、Boto3 と必要なライブラリーがインストールされ、インストールされている Boto3 のバージョンが表示されます。

  11. S3 クライアントとセッションを作成するには、次の指示を参照してください。コードセルを実行します。

    #Creating an S3 client
    #Define credentials
    key_id = os.environ.get('AWS_ACCESS_KEY_ID')
    secret_key = os.environ.get('AWS_SECRET_ACCESS_KEY')
    endpoint = os.environ.get('AWS_S3_ENDPOINT')
    region = os.environ.get('AWS_DEFAULT_REGION')
    
    #Define client session
    session = Boto3.session.Session(aws_access_key_id=key_id,
    aws_secret_access_key=secret_key)
    
    #Define client connection
    s3_client = Boto3.client('s3', aws_access_key_id=key_id,
    aws_secret_access_key=secret_key,aws_session_token=None,
        config=Boto3.session.Config(signature_version='s3v4'),
                            endpoint_url=endpoint,
                            region_name=region)

    コードセル内の指示に従って、S3 クライアントを設定し、S3 互換オブジェクトストアへのセッションを確立します。

検証

  • S3 クライアントを使用してオブジェクトストアに接続し、使用可能なバケットをリスト表示するには、次の指示を参照してバケットをリスト表示し、コードセルを実行します。

    s3_client.list_buckets()

    正常な応答には、HTTPStatusCode 200 と次の出力のようなバケットのリストが含まれます。

    'HTTPStatusCode': 200,
    'Buckets': [{'Name': 'aqs086-image-registry',
    'CreationDate': datetime.datetime(2024, 1, 16, 20, 21, 36, 244000, tzinfo=tzlocal  ())}]
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.