

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 開發藍圖的先決條件
<a name="developing-blueprints-prereq"></a>

若想開發藍圖，您應先熟悉如何使用 AWS Glue 以及為 Apache Spark ETL 任務或 Python Shell 任務編寫指令碼。此外，您也必須完成下列設定任務。
+ 下載四個 AWS Python 程式庫以用於您的藍圖配置指令碼。
+ 設定 AWS SDKs。
+ 設定 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 開發套件
<a name="prereqs-java-preview-sdk"></a>

對於 AWS Java 開發套件，您必須新增包含藍圖 API `jar`的檔案。

1. 如果您尚未這麼做，請設定適用於 Java 的 AWS 開發套件。
   + 對於 Java 1.x，請按照*適用於 Java 的 AWS SDK 開發人員指南*中[設定 適用於 Java 的 AWS SDK](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. 下載用戶端 `jar` 檔案，該檔案可以存取藍圖的 API。
   + 對於 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 classpath `jar` 的正面，以覆寫 AWS Java 開發套件提供的 AWS Glue 用戶端。

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

1. (選用) 使用下列 Java 應用程式測試開發套件。應用程式應輸出空的清單。

   使用您的憑證取代 `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 Command Line Interface 使用者指南*中的[設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。

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)。執行此動作最簡單的方法是使用 `pip` (Python 安裝程式公用程式)：

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

   您可以在這裡找到 AWS CLI 的完整安裝指示：[安裝 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 此處找到設定 的相關資訊：[設定 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
   ```