

# Usar parâmetros de tarefa em tarefas do AWS Glue
<a name="aws-glue-programming-etl-glue-arguments"></a>

Ao criar uma tarefa do AWS Glue, você define alguns campos padrão, como `Role` e `WorkerType`. Você pode fornecer informações adicionais de configuração por meio dos campos `Argument` (**Job Parameters** no console). Nesses campos, você pode fornecer trabalhos do AWS Glue com os argumentos (parâmetros) listados neste tópico. 

 Para obter mais informações sobre a API do AWS Glue, consulte [Tarefas](aws-glue-api-jobs-job.md). 

**nota**  
 Os argumentos do trabalho têm um limite máximo de tamanho de 260 KB. Uma verificação de validação gerará um erro se o tamanho do argumento for maior que 260 KB. 



## Definir parâmetros de trabalho
<a name="w2aac37c11b8c11"></a>

Você pode configurar um trabalho pelo console, na guia **Job details** (Detalhes do trabalho), no cabeçalho **Job Parameters** (Parâmetros do trabalho). Você também pode configurar um trabalho usando a AWS CLI definindo `DefaultArguments` ou `NonOverridableArguments` em um trabalho ou definindo `Arguments` em uma execução de trabalho. Os argumentos definidos no trabalho serão transmitidos toda vez que o trabalho for executado, enquanto os argumentos definidos na execução do trabalho serão transmitidos somente para essa execução individual. 

Por exemplo, seguir temos a sintaxe para a execução de um trabalho usando `--arguments` para definir um parâmetro do trabalho.

```
$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py"'
```

## Acessar parâmetros do trabalho
<a name="w2aac37c11b8c13"></a>

Ao escrever scripts AWS Glue, talvez você queira acessar os valores dos parâmetros do trabalho para alterar o comportamento do seu próprio código. Fornecemos métodos auxiliares para fazer isso em nossas bibliotecas. Esses métodos resolvem os valores dos parâmetros de execução do trabalho que substituem os valores dos parâmetros do trabalho. Ao resolver parâmetros definidos em vários locais, o trabalho `NonOverridableArguments` substituirá a execução do trabalho `Arguments`, que substituirá o trabalho. `DefaultArguments`

**No Python:**

Em trabalhos do Python, fornecemos uma função denominada `getResolvedParameters`. Para obter mais informações, consulte [Acessar parâmetros usando `getResolvedOptions`](aws-glue-api-crawler-pyspark-extensions-get-resolved-options.md). Os parâmetros do trabalho estão disponíveis na variável `sys.argv`.

**No Scala:**

Em trabalhos do Scala, fornecemos um objeto denominado `GlueArgParser`. Para obter mais informações, consulte [AWS GlueAPIs GlueArgParser em Scala no](glue-etl-scala-apis-glue-util-glueargparser.md). Os parâmetros do trabalho estão disponíveis na variável `sysArgs`.

## Referência de parâmetros de trabalho
<a name="job-parameter-reference"></a>

**O AWS Glue reconhece os seguintes nomes de argumento que podem ser usados para configurar o ambiente de script para os trabalhos e as execuções de trabalho:**

**`--additional-python-modules`**  
 Uma lista delimitada por vírgulas representando um conjunto de pacotes do Python a serem instalados. Você pode instalar pacotes do PyPI ou fornecer uma distribuição personalizada. Uma entrada de pacote PyPI estará no formato `package==version`, com o nome PyPI e a versão do seu pacote de destino. Uma entrada de distribuição personalizada é o caminho do S3 para a distribuição.  
As entradas usam a correspondência de versão do Python para combinar pacote e versão. Isso significa que você precisará usar dois sinais de igual, como `==`. Existem outros operadores de correspondência de versão. Para obter mais informações, consulte [PEP 440](https://peps.python.org/pep-0440/#version-matching).   
Para passar as opções de instalação do módulo para o `pip3`, use o parâmetro [--python-modules-installer-option](#python-modules-installer-option).

**`--auto-scale-within-microbatch`**  
O valor padrão é true. Esse parâmetro só pode ser usado para trabalhos de streaming do AWS Glue, os quais processam os dados de streaming em uma série de microlotes, e o ajuste de escala automático deve estar habilitado. Ao definir esse valor como falso, ele calcula a média móvel exponencial da duração do lote para microlotes concluídos e compara esse valor com o tamanho da janela para determinar se o número de executores deve ser aumentado ou reduzido. O ajuste de escala só acontece quando um microlote é concluído. Ao definir esse valor como verdadeiro, durante um microlote, ele aumenta a escala verticalmente quando o número de tarefas do Spark permanece o mesmo por 30 segundos ou o processamento em lote atual é maior que o tamanho da janela. O número de executores diminuirá se um executor ficar inativo por mais de 60 segundos ou se a média móvel exponencial da duração do lote for baixa. 

**`--class`**  
A classe Scala que serve como ponto de entrada para o seu script Scala. Isso se aplicará somente se `--job-language` for definido como `scala`.

**`--continuous-log-conversionPattern`**  
Especifica um padrão personalizado de conversão de logs para um trabalho habilitado para registro em log contínuo. O padrão de conversão só se aplica a logs de driver e logs de executor. Isso não afeta a barra de progresso do AWS Glue.

**`--continuous-log-logGroup`**  
Especifica um nome de grupo de logs do Amazon CloudWatch personalizado para um trabalho habilitado para registro em log contínuo.

**`--continuous-log-logStreamPrefix`**  
 Especifica um prefixo de fluxo de logs do CloudWatch personalizado para um trabalho habilitado para registro em log contínuo.

**`--customer-driver-env-vars` e da `--customer-executor-env-vars`**  
Esses parâmetros definem variáveis de ambiente no sistema operacional, respectivamente, para cada operador (driver ou executor). É possível usar esses parâmetros ao criar plataformas e estruturas personalizadas com base no AWS Glue para permitir que seus usuários escrevam trabalhos em cima dele. A ativação desses dois sinalizadores permitirá definir variáveis de ambiente diferentes no driver e no executor, respectivamente, sem precisar injetar a mesma lógica no próprio script de trabalho.   
**Exemplo de uso**  
Este exemplo mostra como usar esses parâmetros:

```
"—customer-driver-env-vars", "CUSTOMER_KEY1=VAL1,CUSTOMER_KEY2=\"val2,val2 val2\"",
"—customer-executor-env-vars", "CUSTOMER_KEY3=VAL3,KEY4=VAL4"
```
Defini-los no argumento de execução do trabalho equivale a executar os seguintes comandos:  
No driver:  
+ export CUSTOMER\$1KEY1=VAL1
+ export CUSTOMER\$1KEY2="val2,val2 val2"
No executor:  
+ export CUSTOMER\$1KEY3=VAL3
Em seguida, no próprio script de trabalho, você pode recuperar as variáveis de ambiente usando `os.environ.get("CUSTOMER_KEY1")` ou `System.getenv("CUSTOMER_KEY1")`.   
**Sintaxe imposta**  
Observe os seguintes padrões ao definir variáveis de ambiente:
+ Cada chave deve ter o `CUSTOMER_ prefix`.

  Por exemplo: para `"CUSTOMER_KEY3=VAL3,KEY4=VAL4"`, `KEY4=VAL4` será ignorado e não definido.
+ Cada par de chave e valor deve ser delineado com uma única vírgula.

  Por exemplo, .: `"CUSTOMER_KEY3=VAL3,CUSTOMER_KEY4=VAL4"`
+ Se o "valor" tiver espaços ou vírgulas, ele deverá ser definido entre aspas.

  Por exemplo, .: `CUSTOMER_KEY2=\"val2,val2 val2\"`
Essa sintaxe modela de perto os padrões de configuração de variáveis de ambiente bash.

**`--datalake-formats` **  
Compatível com o AWS Glue 3.0 e versões posteriores.  
Especifica a estrutura de data lake a ser usada. O AWS Glue adiciona os arquivos JAR necessários para as estruturas que você especifica no `classpath`. Para obter mais informações, consulte [Usar estruturas de data lake com trabalhos do AWS Glue ETL](aws-glue-programming-etl-datalake-native-frameworks.md).  
Você pode especificar um ou mais dos seguintes valores, separados por uma vírgula:  
+ `hudi`
+ `delta`
+ `iceberg`
Por exemplo, passe o argumento a seguir para especificar todas as três estruturas.  

```
'--datalake-formats': 'hudi,delta,iceberg'
```

**`--disable-proxy-v2`**  
 Desabilite o proxy de serviço para permitir chamadas de serviço da AWS para o Amazon S3, o CloudWatch e o AWS Glue originadas por seu script através da VPC. Para mais informações, consulte [ Configurar chamadas do AWS para passarem pela VPC](https://docs.aws.amazon.com/glue/latest/dg/connection-VPC-disable-proxy.html). Para desativar o proxy do serviço, defina o valor desse parâmetro como `true`.

**`--enable-auto-scaling`**  
Ativa o recurso para usar escalação automática e faturamento por processador quando você define o valor como `true`.

**`--enable-continuous-cloudwatch-log`**  
Habilita o registro em log contínuo e em tempo real para trabalhos do AWS Glue. Você pode visualizar logs de trabalho do Apache Spark em tempo real no CloudWatch.

**`--enable-continuous-log-filter`**  
Especifica um filtro padrão (`true`) ou nenhum filtro (`false`) quando você cria ou edita um trabalho habilitado para registro em log contínuo. Escolher o filtro padrão elimina o driver/executor desnecessário do Apache Spark e mensagens de log de heartbeat do Apache Hadoop YARN. Não escolher filtros fornece todas as mensagens de log.

**`--enable-glue-datacatalog`**  
Habilita o uso do AWS Glue Data Catalog como um metastore do Apache Spark Hive. Para habilitar esse recurso, defina o valor como `true`.

**`--enable-job-insights`**  
Permite o monitoramento adicional de análise de erros com informações sobre a execução de trabalhos do AWS Glue. Para obter detalhes, consulte [Monitoramento com insights de execuções de trabalho do AWS Glue](monitor-job-insights.md). Por padrão, o valor está definido como `true` e os insights da execução de trabalhos estão habilitados.  
Essa opção só está disponível no AWS Glue versões 2.0 e 3.0.

**`--enable-lakeformation-fine-grained-access`**  
Habilita o controle de acesso refinado para trabalhos do AWS Glue. Para obter mais informações, consulte [Usar o AWS Glue com AWS Lake Formation para controle de acesso refinado](security-lf-enable.md).

**`--enable-metrics`**  
Habilita a coleta de métricas para criar perfis de trabalhos para essa execução da tarefa. Estas métricas estão disponíveis no console do AWS Glue e no console do Amazon CloudWatch. O valor desse parâmetro não é relevante. Para ativar esse recurso, você pode fornecer esse parâmetro com qualquer valor, mas `true` é recomendado para maior clareza. Para desabilitar esse recurso, remova esse parâmetro da configuração do seu trabalho.

**`--enable-observability-metrics`**  
 Permite que um conjunto de métricas de observabilidade gere insights sobre o que está acontecendo dentro de cada trabalho executado na página Monitoramento de execuções de trabalhos nos consoles do AWS Glue e do Amazon CloudWatch. Para habilitar esse recurso, defina o valor como true. Para desabilitar esse recurso, configure-o como `false` ou remova esse parâmetro da configuração do seu trabalho. 

**`--enable-rename-algorithm-v2`**  
Define a versão do algoritmo de renomeação do EMRFS como versão 2. Quando um trabalho do Spark usa o modo de substituição de partição dinâmica, existe a possibilidade de que uma partição duplicada seja criada. Por exemplo, você pode acabar com uma partição duplicada, como `s3://bucket/table/location/p1=1/p1=1`. Aqui, P1 é a partição que está sendo substituída. O algoritmo de renomeação versão 2 corrige esse problema.  
Essa opção só está disponível no AWS Glue versão 1.0.

**`--enable-s3-parquet-optimized-committer`**  
Habilita o committer otimizado para S3 do EMRFS a gravar dados Parquet no Amazon S3. É possível fornecer o par parâmetro/valor por meio do console do AWS Glue ao criar ou atualizar um trabalho do AWS Glue. Definir o valor como **true** habilitará o committer. Por padrão, o sinalizador é ativado no AWS Glue 3.0 e desativado no AWS Glue 2.0.  
Para obter mais informações, consulte [Usar o committer otimizado para EMRFS S3](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-s3-optimized-committer.html).

**`--enable-spark-ui`**  
Quando definido como `true`, ativa o recurso para usar a interface do usuário do Spark para monitorar e depurar trabalhos de ETL do AWS Glue.

**`--executor-cores`**  
Número de tarefas do Spark que podem ser executadas em paralelo. Essa opção é compatível com o AWS Glue 3.0\$1. O valor não deve exceder 2 vezes o número de vCPUs no tipo de operador, que é 8 em `G.1X`, 16 em `G.2X`, 32 em `G.4X`, 64 em `G.8X`, 96 em `G.12X`, 128 em `G.16X` e 8 em `R.1X`, 16 em `R.2X`, 32 em `R.4X`, 64 em `R.8X`. Você deve ter cuidado ao atualizar essa configuração, pois isso pode afetar a performance do trabalho, pois o aumento do paralelismo de tarefas gera pressão na memória e no disco, além aplicar o controle de utilização nos sistemas de origem e de destino (por exemplo: causaria mais conexões simultâneas no Amazon RDS).

**`--extra-files`**  
Os caminhos do Amazon S3 para arquivos adicionais, como arquivos de configuração, que o AWS Glue copia para o diretório de trabalho do seu script no nó driver antes de executá-lo. Vários valores devem ser caminhos completos separados por uma vírgula (`,`). O valor pode ser arquivos individuais ou localizações de diretórios. Essa opção não é compatível com os tipos de trabalho do shell do Python.

**`--extra-jars`**  
O Amazon S3 indica caminhos para arquivos adicionais que o AWS Glue copia para o driver e os executores. O AWS Glue também adiciona esses arquivos ao classpath Java antes de executar o script. Vários valores devem ser caminhos completos separados por uma vírgula (`,`). A extensão não precisa ser `.jar`

**`--extra-py-files`**  
Os caminhos do Amazon S3 para módulos adicionais do Python que o AWS Glue inclui no caminho do Python no nó driver antes de executar seu script. Vários valores devem ser caminhos completos separados por uma vírgula (`,`). Somente arquivos individuais têm suporte, e não um caminho de diretório.

**`--job-bookmark-option`**  
Controla o comportamento de um marcador de trabalho. Os seguintes valores de opção podem ser definidos.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)
Para ativar um marcador de trabalho, por exemplo, transmita o seguinte argumento.  

```
'--job-bookmark-option': 'job-bookmark-enable'
```

**`--job-language`**  
A linguagem de programação de script. Esse valor deve ser `scala` ou `python`. Se esse parâmetro não estiver presente, o padrão será `python`.

**`--python-modules-installer-option`**  
Uma string de texto não criptografado que define as opções a serem passadas para o `pip3` ao instalar módulos com [--additional-python-modules](#additional-python-modules). Forneça opções como você faria na linha de comando, separadas por espaços e prefixadas por traços. Para obter mais informações sobre o uso, consulte [Instalar módulos Python adicionais com pip no AWS Glue 2.0 ou posterior](aws-glue-programming-python-libraries.md#addl-python-modules-support).  
Essa opção não é compatível com trabalhos do AWS Glue quando você usa o Python 3.9.

**`--scriptLocation`**  
O local do Amazon Simple Storage Service (Amazon S3) no qual seu script de ETL está localizado (no formato `s3://path/to/my/script.py`). Esse parâmetro substitui um local de script definido no objeto `JobCommand`.

**`--spark-event-logs-path`**  
Especifica um caminho do Amazon S3. Ao usar o recurso de monitoramento da interface do usuário do Spark,o AWS Glue libera os logs de eventos do Spark para esse caminho do Amazon S3 a cada 30 segundos para um bucket que pode ser usado como um diretório temporário para armazenar eventos de interface do usuário do Spark.

**`--TempDir`**  
Especifica um caminho do Amazon S3 para um bucket que pode ser usado como um diretório temporário para o trabalho.  
Por exemplo, para definir um diretório temporário, transmita o seguinte argumento.  

```
'--TempDir': 's3-path-to-directory'
```
O AWS Glue cria um bucket temporário para os trabalhos, se um bucket ainda não existir em uma região. Esse bucket pode permitir o acesso público. Você pode modificar o bucket no Amazon S3 para definir o bloco de acesso público ou excluir o bucket mais tarde, depois que todos os trabalhos nessa região forem concluídos.

**`--use-postgres-driver`**  
Ao definir esse valor como `true`, ele prioriza o driver JDBC do Postgres no classpath para evitar um conflito com o driver JDBC do Amazon Redshift. Essa opção só está disponível no AWS Glue versão 2.0.

**`--user-jars-first`**  
Ao definir esse valor como `true`, ele prioriza os arquivos JAR extras do classpath. Essa opção só está disponível no AWS Glue versão 2.0 ou posterior.

**`--conf`**  
Controla os parâmetros de configuração do Spark. Destina-se a casos de uso avançados.

**`--encryption-type`**  
Parâmetro legado. O comportamento correspondente deve ser configurado usando configurações de segurança. Para obter mais informações sobre configurações de segurança, consulte [Criptografar dados gravados pelo AWS Glue](encryption-security-configuration.md).

AWSO Glue usa os seguintes argumentos internamente e você nunca deve usá-los:
+ `--debug`: interno do AWS Glue. Não o defina.
+ `--mode`: interno do AWS Glue. Não o defina.
+ `--JOB_NAME`: interno do AWS Glue. Não o defina.
+ `--endpoint`: interno do AWS Glue. Não o defina.



## 
<a name="w2aac37c11b8c17"></a>

 O AWS Glue é compatível com a inicialização de um ambiente com o módulo `site` do Python usando `sitecustomize` para realizar personalizações específicas do site. A inicialização de suas próprias funções de inicialização só é recomendada para casos de uso avançados e é compatível na medida do possível com o AWS Glue 4.0. 

 O prefixo variável de ambiente, `GLUE_CUSTOMER`, é reservado para uso do cliente. 