

# 設計図の開発のための前提条件
<a name="developing-blueprints-prereq"></a>

ブループリントを開発するには、AWS Glue と Apache Spark ETL ジョブや Python シェルジョブのスクリプト記述に関する知識が必要です。また、以下のセットアップタスクも完了する必要があります。
+ 設計図レイアウトスクリプトで使用する 4 個の AWS Python ライブラリのダウンロード
+ AWS SDK のセットアップ。
+ AWS CLI のセットアップ。

## Python ライブラリをダウンロードする
<a name="prereqs-get-libes"></a>

以下のライブラリを GitHub からダウンロードし、自分のプロジェクトにインストールします。
+ [https://github.com/awslabs/aws-glue-blueprint-libs/tree/master/awsglue/blueprint/base\_resource.py](https://github.com/awslabs/aws-glue-blueprint-libs/tree/master/awsglue/blueprint/base_resource.py)
+ [https://github.com/awslabs/aws-glue-blueprint-libs/tree/master/awsglue/blueprint/workflow.py](https://github.com/awslabs/aws-glue-blueprint-libs/tree/master/awsglue/blueprint/workflow.py)
+ [https://github.com/awslabs/aws-glue-blueprint-libs/tree/master/awsglue/blueprint/crawler.py](https://github.com/awslabs/aws-glue-blueprint-libs/tree/master/awsglue/blueprint/crawler.py)
+ [https://github.com/awslabs/aws-glue-blueprint-libs/tree/master/awsglue/blueprint/job.py](https://github.com/awslabs/aws-glue-blueprint-libs/tree/master/awsglue/blueprint/job.py)

## AWS Java SDK のセットアップ
<a name="prereqs-java-preview-sdk"></a>

AWS Java SDK に対しては、設計図の API を含む `jar` ファイルを追加する必要があります。

1. まだ追加していない場合には、AWS SDK for Java のセットアップを行います。
   + Java 1.x の場合は、「AWS SDK for Java デベロッパーガイド」の「[AWS SDK for Java の入手方法](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-install.html)」にある手順に従ってください。
   + Java 2.x の場合は、「AWS SDK for Java 2.x デベロッパーガイド」の「[AWS SDK for Java 2.x のセットアップ](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html)」にある手順に従ってください。

1. 設計図の API へのアクセス許可が付与されている、クライアント `jar` ファイルをダウンロードします。
   + Java 1.x 用ファイル: s3://awsglue-custom-blueprints-preview-artifacts/awsglue-java-sdk-preview/AWSGlueJavaClient-1.11.x.jar
   + Java 2.x 用ファイル: s3://awsglue-custom-blueprints-preview-artifacts/awsglue-java-sdk-v2-preview/AwsJavaSdk-Glue-2.0.jar

1. Java クラスパスの先頭にクライアント `jar` を追加して、AWS Java SDK で提供された AWS Glue クライアントをオーバーライドします。

   ```
   export CLASSPATH=<path-to-preview-client-jar>:$CLASSPATH
   ```

1. (オプション) 次の Java アプリケーションを使用して SDK をテストします。このアプリケーションは空のリストを出力するように設定されています。

   `accessKey` および `secretKey` は自分の認証情報に置き換え、`us-east-1` は使用しているリージョンに置き換えます。

   ```
   import com.amazonaws.auth.AWSCredentials;
   import com.amazonaws.auth.AWSCredentialsProvider;
   import com.amazonaws.auth.AWSStaticCredentialsProvider;
   import com.amazonaws.auth.BasicAWSCredentials;
   import com.amazonaws.services.glue.AWSGlue;
   import com.amazonaws.services.glue.AWSGlueClientBuilder;
   import com.amazonaws.services.glue.model.ListBlueprintsRequest;
   
   public class App{
       public static void main(String[] args) {
           AWSCredentials credentials = new BasicAWSCredentials("accessKey", "secretKey");
           AWSCredentialsProvider provider = new AWSStaticCredentialsProvider(credentials);
           AWSGlue glue = AWSGlueClientBuilder.standard().withCredentials(provider)
                   .withRegion("us-east-1").build();
           ListBlueprintsRequest request = new ListBlueprintsRequest().withMaxResults(2);
           System.out.println(glue.listBlueprints(request));
       }
   }
   ```

## AWS Python SDK をセットアップする
<a name="prereqs-python-preview-sdk"></a>

次の手順では、Python バージョン 2.7 以降、またはバージョン 3.9 以降が、コンピュ―タ上にインストールされていることを前提としています。

1. 次の boto3 wheel ファイルをダウンロードします。ファイルを開くか保存することを促された場合は、次のファイルを保存します。s3://awsglue-custom-blueprints-preview-artifacts/aws-python-sdk-preview/boto3-1.17.31-py2.py3-none-any.whl

1. 次の botocore wheel ファイルをダウンロードします。s3://awsglue-custom-blueprints-preview-artifacts/aws-python-sdk-preview/botocore-1.20.31-py2.py3-none-any.whl

1. 使用している Python のバージョンを確認します。

   ```
   python --version
   ```

1. Python のバージョンに応じて、以下のコマンドを入力します (Linux の場合)。
   + Python 2.7 以降の場合。

     ```
     python3 -m pip install --user virtualenv
     source env/bin/activate
     ```
   + Python 3.9 以降の場合。

     ```
     python3 -m venv python-sdk-test
     source python-sdk-test/bin/activate
     ```

1. botocore wheel ファイルをインストールします。

   ```
   python3 -m pip install <download-directory>/botocore-1.20.31-py2.py3-none-any.whl
   ```

1. boto3 wheel ファイルをインストールします。

   ```
   python3 -m pip install <download-directory>/boto3-1.17.31-py2.py3-none-any.whl
   ```

1. `~/.aws/credentials` および `~/.aws/config` ファイル内で、認証情報およびデフォルトのリージョンを指定します。詳細については、「[AWS CLI ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)」の「*AWS Command Line Interface の設定*。」を参照してください。

1. (オプション) セットアップをテストします。次のコマンドは、空のリストを返すように設定されています。

   `us-east-1` は、実際のリージョンに置き換えます。

   ```
   $ python
   >>> import boto3
   >>> glue = boto3.client('glue', 'us-east-1')
   >>> glue.list_blueprints()
   ```

## プレビュー AWS CLI をセットアップする
<a name="prereqs-setup-cli"></a>

1. まだの場合は、コンピュータ上で AWS Command Line Interface (AWS CLI) のインストールおよび (または)更新を行ってください。この作業は、Python インストーラユーティリティの `pip` を使用することで、最も簡単に完了できます。

   ```
   pip install awscli --upgrade --user
   ```

   AWS CLI を使用したインストールに関する完全な手順は、「[nstalling the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)」でご確認いただけます。

1. 次の AWS CLI wheel ファイルをダウンロードします。s3://awsglue-custom-blueprints-preview-artifacts/awscli-preview-build/awscli-1.19.31-py2.py3-none-any.whl

1. AWS CLI wheel ファイルをインストールする。

   ```
   python3 -m pip install awscli-1.19.31-py2.py3-none-any.whl
   ```

1. `aws configure` コマンドを実行します。AWS 認証情報 (アクセスキー、シークレットキーを含む) と AWS リージョンを設定します。AWS CLI の設定に関する情報は、「[Configuring the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)」でご確認ください。

1. AWS CLI をテストします。次のコマンドは、空のリストを返すように設定されています。

   `us-east-1` は、実際のリージョンに置き換えます。

   ```
   aws glue list-blueprints --region us-east-1
   ```