

# Pré-requisitos para desenvolvimento de esquemas


Para desenvolver esquemas, você deve ter familiaridade com o uso do AWS Glue e com a criação de scripts para trabalhos de ETL do Apache Spark ou trabalhos de shell do Python. Além disso, é necessário concluir as seguintes tarefas de configuração.
+ Baixe quatro bibliotecas Python da AWS para usar em seus scripts de layout de blueprint.
+ Configure os AWS SDKs.
+ Configurar a AWS CLI.

## Baixar bibliotecas Python


Baixe as seguintes bibliotecas do GitHub e instale-as em seu projeto:
+ [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)

## Configurar o AWS Java SDK


Para o AWS Java SDK, você deve adicionar um arquivo `jar` que inclui a API para blueprints.

1. Se você ainda não fez isso, configure o AWS SDK for Java.
   + Para Java 1.x, siga as instruções em [Configurar o AWS SDK para Java](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-install.html) no *Guia do desenvolvedor do AWS SDK para Java*.
   + Para Java 2.x, siga as instruções em [Configurar o AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html) no *Guia do desenvolvedor do AWS SDK for Java 2.x*.

1. Baixe o arquivo de cliente `jar` que tem acesso às APIs para blueprints.
   + 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. Adicione o cliente `jar` na frente do classpath Java para substituir o cliente do AWS Glue fornecido peloAWS Java SDK.

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

1. (Opcional) teste o SDK com a seguinte aplicação Java. A aplicação deve exibir uma lista vazia.

   Substitua `accessKey` e `secretKey` com suas credenciais e `us-east-1` com a sua região.

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

## Configurar o AWS Python SDK


As seguintes etapas supõem que você tenha o Python versão 2.7 ou posterior, ou a versão 3.9 ou posterior, instalada no computador.

1. Baixe o seguinte arquivo wheel do boto3. Se solicitado a abrir ou salvar, salve o arquivo. s3://awsglue-custom-blueprints-preview-artifacts/aws-python-sdk-preview/boto3-1.17.31-py2.py3-none-any.whl

1. Baixe o seguinte arquivo wheel do botocore: s3://awsglue-custom-blueprints-preview-artifacts/aws-python-sdk-preview/botocore-1.20.31-py2.py3-none-any.whl

1. Verifique a versão do Python.

   ```
   python --version
   ```

1. Dependendo da sua versão do Python, insira os seguintes comandos (para Linux):
   + Para Python 2.7 ou posterior.

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

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

1. Instale o arquivo wheel do botocore.

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

1. Instale o arquivo wheel do boto3.

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

1. Configure suas credenciais e a região padrão nos arquivos `~/.aws/credentials` e `~/.aws/config`. Para obter mais informações, consulte [Configuração da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) no *Guia do usuário da AWS Command Line Interface*.

1. (Opcional) teste a configuração. Os comandos a seguir devem retornar uma lista vazia.

   Substitua `us-east-1` pela sua região.

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

## Configurar a pré-visualização da AWS CLI


1. Se você ainda o fez, instale e/ou atualize a AWS Command Line Interface (AWS CLI) em seu computador. A maneira mais fácil de fazer isso é com o `pip`, o utilitário de instalação do Python:

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

   Você pode encontrar instruções completas de instalação da AWS CLI aqui: [Instalar a AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html).

1. Baixe o arquivo wheel da AWS CLI em: s3://awsglue-custom-blueprints-preview-artifacts/awscli-preview-build/awscli-1.19.31-py2.py3-none-any.whl

1. Instale o arquivo wheel da AWS CLI.

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

1. Execute o comando `aws configure`. Configure as credenciais da AWS (incluindo chave de acesso e chave secreta) e a região da AWS. Você pode encontrar informações sobre a configuração da AWS CLI aqui: [Configurar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

1. Teste a AWS CLI. O comando a seguir deve retornar uma lista vazia.

   Substitua `us-east-1` pela sua região.

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