

# Requisitos previos para desarrollar esquemas
<a name="developing-blueprints-prereq"></a>

Para desarrollar esquemas, debe conocer el uso de AWS Glue y la escritura de scripts para trabajos de ETL de Apache Spark o trabajos de shell de Python. Además, debe completar las siguientes tareas de configuración.
+ Descargue cuatro bibliotecas de AWS Python para usar en sus scripts de diseño de proyecto.
+ Configure los SDK de AWS.
+ Cómo configurar la AWS CLI.

## Descargar las bibliotecas de Python
<a name="prereqs-get-libes"></a>

Descargue las siguientes bibliotecas de GitHub e instálelas en su proyecto:
+ [https://github.com/awslabs/aws-glue-blueprint-libs/tree/master/awsglue/blueprint/base\$1resource.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)

## Configure el AWS Java SDK
<a name="prereqs-java-preview-sdk"></a>

Para el SDK de AWS Java , debe agregar un archivo `jar` que incluya la API para proyectos.

1. Si aún no lo ha hecho, configure el SDK de AWS para Java.
   + Para Java 1.x, siga las instrucciones en [Configurar AWS SDK para Java](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-install.html) en la *Guía para desarrolladores de AWS SDK para Java*.
   + Para Java 2.x, siga las instrucciones en [Configurar AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html) en la *Guía para desarrolladores de AWS SDK for Java 2.x*.

1. Descargue el archivo `jar` del cliente que tiene acceso a las API para proyectos.
   + Para Java 1.x: s3: //awsglue-custom-blueprints-preview-artifacts/awsglue-java-sdk-preview/awsglueJavaclient-1.11.x.jar
   + Para Java 2.x: s3: //awsglue-custom-blueprints-preview-artifacts/awsglue-java-sdk-v2-preview/awsjavasdk-glue-2.0.jar

1. Agregue el `jar` del cliente al frente de la ruta de clases de Java para anular el cliente de AWS Glue proporcionado por el SDK de AWS Java.

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

1. (Opcional) pruebe el SDK con la siguiente aplicación Java. La aplicación debe generar una lista vacía.

   Reemplace `accessKey` y `secretKey` con sus credenciales y reemplace `us-east-1` con su región.

   ```
   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));
       }
   }
   ```

## Configuración de AWS Python SDK
<a name="prereqs-python-preview-sdk"></a>

En los siguientes pasos se supone que tiene la versión 2.7 o posterior de Python, o la versión 3.9 o una posterior instalada en el equipo.

1. Descargue el siguiente archivo wheel boto3. Si se le solicita abrir o guardar, guarde el archivo. s3: //awsglue-custom-blueprints-preview-artifacts/aws-python-sdk-preview/boto3-1.17.31-py2.py3-none-any.whl

1. Descargue el siguiente archivo wheel de botocore: s3: //awsglue-custom-blueprints-preview-artifacts/aws-python-sdk-preview/botocore-1.20.31-py2.py3-none-any.whl

1. Compruebe su versión de Python.

   ```
   python --version
   ```

1. En función de su versión de Python, ingrese los siguientes comandos (para Linux):
   + Para Python 2.7 o posterior.

     ```
     python3 -m pip install --user virtualenv
     source env/bin/activate
     ```
   + Para Python 3.9 o posterior.

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

1. Instale el archivo wheel de botocore.

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

1. Instale el archivo wheel boto3.

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

1. Configure las credenciales y la región predeterminada en los archivos `~/.aws/credentials` y `~/.aws/config`. Para obtener más información, consulte [Configuración de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) en la *Guía del usuario de AWS Command Line Interface*.

1. (Opcional) pruebe su configuración. Los siguientes comandos deben devolver una lista vacía.

   Reemplace la `us-east-1` por su región.

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

## Configuración de la previsualización de AWS CLI
<a name="prereqs-setup-cli"></a>

1. Si aún no lo ha hecho, instale o actualice la AWS Command Line Interface (AWS CLI) en su equipo. La manera más sencilla de hacerlo es con `pip`, la utilidad del instalador de Python:

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

   Puede encontrar instrucciones de instalación completas para AWS CLI aquí: [Instalación de AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html).

1. Descargue el archivo wheel AWS CLI desde: s3: //awsglue-custom-blueprints-preview-artifacts/awscli-preview-build/awscli-1.19.31-py2.py3-none-any.whl

1. Instale el archivo wheel de la AWS CLI.

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

1. Ejecute el comando `aws configure`. Configure sus credenciales de AWS (incluida la clave de acceso y la clave secreta) y la región de AWS. Puede encontrar información acerca de cómo configurar la AWS CLI aquí: [Configuración de AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

1. Pruebe la AWS CLI. El siguiente comando debe devolver una lista vacía.

   Reemplace la `us-east-1` por su región.

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