第2章 ノートブックセルを使用した Amazon S3 クライアントの作成

Amazon S3 バケットでデータを操作するには、そのサービスに対する要求を処理するローカルクライアントを作成する必要があります。

前提条件

  • Red Hat OpenShift Data Science で実行している Jupyter ノートブックサーバーへのアクセス。
  • My Security Credentials の Amazon Web Services アカウントの値を使用して、ノートブックサーバーの起動時に AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY 環境変数の値を定義している。

手順

  1. 新しいノートブックセルで、以下を追加して必要なライブラリーをインポートします。

    import os
    import boto3
    from boto3 import session
  2. 別の新規ノートブックセルで、以下を定義してセッションとクライアントを作成します。

    1. 認証情報を定義します。

      key_id = os.environ.get('AWS_ACCESS_KEY_ID')
      secret_key = os.environ.get('AWS_SECRET_ACCESS_KEY')
    2. クライアントセッションを定義します。

      session = boto3.session.Session(aws_access_key_id=key_id, aws_secret_access_key=secret_key)
    3. クライアント接続を定義します。

      s3_client = boto3.client('s3', aws_access_key_id=key_id, aws_secret_access_key=secret_key)

検証

  • 新しいセルを作成し、以下のような Amazon S3 コマンドを実行します。

    s3_client.list_buckets()

    正常な応答には、HTTPStatusCode 200 と以下のような Buckets のリストが含まれます。

     'Buckets': [{'Name': 'my-app-asdf3-image-registry-us-east-1-wbmlcvbasdfasdgvtsmkpt',
       'CreationDate': datetime.datetime(2021, 4, 21, 6, 8, 52, tzinfo=tzlocal())},
      {'Name': 'cf-templates-18rxasdfggawsvb-us-east-1',
       'CreationDate': datetime.datetime(2021, 2, 15, 18, 35, 34, tzinfo=tzlocal())}