

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configuração padrão de aplicações do EMR Sem Servidor
<a name="default-configs"></a>

Você pode especificar um conjunto comum de configurações de runtime e monitoramento no nível da aplicação para todos os trabalhos enviados na mesma aplicação. Isso reduz a sobrecarga adicional associada à necessidade de enviar as mesmas configurações para cada trabalho.

Você pode modificar as configurações nos seguintes momentos:
+ [Declare as configurações em nível de aplicação no envio do trabalho.](#default-configs-declare)
+ [Substitua as configurações padrão durante a execução do trabalho.](#default-configs-override)

As seções a seguir fornecem mais detalhes e um exemplo para contexto adicional.

## Declaração de configurações no nível da aplicação
<a name="default-configs-declare"></a>

É possível especificar propriedades de configuração de registro em log e de runtime no nível da aplicação para os trabalhos enviados na aplicação.

**`monitoringConfiguration`**  
Para especificar as configurações de log de trabalhos enviados com a aplicação, use o campo [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_MonitoringConfiguration.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_MonitoringConfiguration.html). Para obter mais informações sobre o registro em log do EMR Sem Servidor, consulte [Armazenamento de logs](logging.md).

**`runtimeConfiguration`**  
Para especificar propriedades de configuração de runtime, como `spark-defaults`, forneça um objeto de configuração no campo `runtimeConfiguration`. Isso afeta as configurações padrão de todos os trabalhos enviados com a aplicação. Para obter mais informações, consulte [Parâmetro de substituição da configuração do Hive](jobs-hive.md#hive-defaults-configurationOverrides) e [Parâmetro de substituição de configuração do Spark](jobs-spark.md#spark-defaults-configurationOverrides).  
As classificações de configuração disponíveis variam de acordo com a versão específica do EMR Sem Servidor. Por exemplo, classificações para Log4j personalizado `spark-driver-log4j2` e `spark-executor-log4j2` estão disponíveis somente nas versões 6.8.0 e superiores. Para obter uma lista de propriedades específicas da aplicação, consulte [Propriedades do trabalho do spark](jobs-spark.md#spark-defaults) e [Propriedades do trabalho do Hive](jobs-hive.md#hive-defaults).  
Você também pode configurar [propriedades do Apache Log4j2](log4j2.md), o [AWS Secrets Manager para proteção de dados](secrets-manager.md) e o [runtime do Java 17](using-java-runtime.md) no nível da aplicação.  
Para transmitir segredos do Secrets Manager no nível da aplicação, anexe a política a seguir aos usuários e perfis que precisam criar ou atualizar aplicações do EMR Sem Servidor com segredos.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "SecretsManagerPolicy",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue",
        "secretsmanager:DescribeSecret"
      ],
      "Resource": [
        "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret-name-123abc"
      ]
    },
    {
      "Sid": "KMSDecryptPolicy",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012"
      ]
    }
  ]
}
```
Para obter mais informações sobre a criação de políticas personalizadas para segredos, consulte [Exemplos de políticas de permissões para AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html) no *Guia do usuário do AWS Secrets Manager *.

**nota**  
A `runtimeConfiguration` que você especifica no nível da aplicação é mapeada para `applicationConfiguration` na API [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html).

### Exemplo de declaração
<a name="default-configs-declare-example"></a>

O exemplo a seguir mostra como declarar configurações padrão com `create-application`.

```
aws emr-serverless create-application \
    --release-label release-version  \
    --type SPARK \
    --name my-application-name \
    --runtime-configuration '[
        {
            "classification": "spark-defaults",
            "properties": {
                "spark.driver.cores": "4",
                "spark.executor.cores": "2",
                "spark.driver.memory": "8G",
                "spark.executor.memory": "8G",
                "spark.executor.instances": "2",
                "spark.hadoop.javax.jdo.option.ConnectionDriverName":"org.mariadb.jdbc.Driver",
                "spark.hadoop.javax.jdo.option.ConnectionURL":"jdbc:mysql://db-host:db-port/db-name",
                "spark.hadoop.javax.jdo.option.ConnectionUserName":"connection-user-name",
                "spark.hadoop.javax.jdo.option.ConnectionPassword": "EMR.secret@SecretID"
            }
        },
        {
            "classification": "spark-driver-log4j2",
            "properties": {
                "rootLogger.level":"error", 
                "logger.IdentifierForClass.name": "classpathForSettingLogger",
                "logger.IdentifierForClass.level": "info"
            }
        }
    ]' \
    --monitoring-configuration '{
        "s3MonitoringConfiguration": {
            "logUri": "s3://amzn-s3-demo-logging-bucket/logs/app-level"
        },
        "managedPersistenceMonitoringConfiguration": {
            "enabled": false
        }
    }'
```

## Substituição de configurações durante a execução de um trabalho
<a name="default-configs-override"></a>

Você pode especificar substituições de configuração para a configuração da aplicação e a configuração de monitoramento com a API [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html). Em seguida, o EMR Sem Servidor mescla as configurações que você especifica no nível da aplicação e no nível do trabalho para determinar as configurações da execução do trabalho. 

O nível de granularidade quando a mesclagem ocorre é o seguinte:
+ **[https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_ConfigurationOverrides.html#emrserverless-Type-ConfigurationOverrides-applicationConfiguration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_ConfigurationOverrides.html#emrserverless-Type-ConfigurationOverrides-applicationConfiguration)**: tipo de classificação, por exemplo, `spark-defaults`.
+ **[https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_ConfigurationOverrides.html#emrserverless-Type-ConfigurationOverrides-monitoringConfiguration](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_ConfigurationOverrides.html#emrserverless-Type-ConfigurationOverrides-monitoringConfiguration)**: tipo de configuração, por exemplo, `s3MonitoringConfiguration`.

**nota**  
A prioridade das configurações fornecidas em [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html) substitui as configurações que você fornece no nível da aplicação.

Para obter mais informações sobre classificações de prioridade, consulte [Parâmetro de substituição da configuração do Hive](jobs-hive.md#hive-defaults-configurationOverrides) e [Parâmetro de substituição de configuração do Spark](jobs-spark.md#spark-defaults-configurationOverrides).

Quando você inicia um trabalho, caso não especifique uma configuração específica, ela será herdada da aplicação. Se você declarar as configurações no nível do trabalho, poderá executar as seguintes operações:
+ **Substituir uma configuração existente**: forneça o mesmo parâmetro de configuração na solicitação de `StartJobRun` com seus valores de substituição. 
+ **Adicionar mais uma configuração**: adicione o novo parâmetro de configuração na solicitação de `StartJobRun` com os valores que deseja especificar.
+ **Remover uma configuração existente**: para remover a *configuração de runtime* de uma aplicação, forneça a chave da configuração que deseja remover e passe uma declaração vazia `{}` para a configuração. Não recomendamos remover nenhuma classificação que contenha parâmetros necessários para a execução de um trabalho. Por exemplo, se você tentar remover as [propriedades necessárias de um trabalho do Hive](https://docs.aws.amazon.com/), o trabalho falhará.

  Para remover a *configuração de monitoramento* de uma aplicação, use o método apropriado para o tipo de configuração relevante:
  + **`cloudWatchLoggingConfiguration`**: para remover `cloudWatchLogging`, passe o sinalizador habilitado como `false`. 
  + **`managedPersistenceMonitoringConfiguration`**: para remover as configurações de persistência gerenciada e voltar ao estado habilitado padrão, passe uma declaração vazia `{}` para a configuração. 
  + **`s3MonitoringConfiguration`**: para remover `s3MonitoringConfiguration`, passe uma declaração vazia `{}` para a configuração.

### Exemplo de substituição
<a name="default-configs-override-example"></a>

O exemplo a seguir mostra diferentes operações que você pode realizar durante o envio do trabalho em `start-job-run`.

```
aws emr-serverless start-job-run \
    --application-id your-application-id \
    --execution-role-arn your-job-role-arn \
    --job-driver '{
        "sparkSubmit": {
            "entryPoint": "s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py", 
            "entryPointArguments": ["s3://amzn-s3-demo-destination-bucket1/wordcount_output"]
        }
    }' \
    --configuration-overrides '{
        "applicationConfiguration": [ 
            {
                // Override existing configuration for spark-defaults in the application
                "classification": "spark-defaults", 
                "properties": {
                    "spark.driver.cores": "2",
                    "spark.executor.cores": "1",
                    "spark.driver.memory": "4G",
                    "spark.executor.memory": "4G"
                }
            },
            {
                // Add configuration for spark-executor-log4j2
                "classification": "spark-executor-log4j2",
                "properties": {
                    "rootLogger.level": "error", 
                    "logger.IdentifierForClass.name": "classpathForSettingLogger",
                    "logger.IdentifierForClass.level": "info"
                }
            },
            {
                // Remove existing configuration for spark-driver-log4j2 from the application
                "classification": "spark-driver-log4j2",
                "properties": {}
            }
        ],
        "monitoringConfiguration": {
            "managedPersistenceMonitoringConfiguration": {
                // Override existing configuration for managed persistence
                "enabled": true
            },
            "s3MonitoringConfiguration": {
                // Remove configuration of S3 monitoring
            },
            "cloudWatchLoggingConfiguration": {
                // Add configuration for CloudWatch logging
                "enabled": true
            }
        }
    }'
```

No momento da execução do trabalho, as classificações e configurações a seguir serão aplicadas com base na classificação de substituição de prioridade descrita em [Parâmetro de substituição da configuração do Hive](jobs-hive.md#hive-defaults-configurationOverrides) e [Parâmetro de substituição de configuração do Spark](jobs-spark.md#spark-defaults-configurationOverrides).
+ A classificação `spark-defaults` será atualizada com as propriedades especificadas no nível do trabalho. Somente as propriedades incluídas em `StartJobRun` são consideradas para essa classificação.
+ A classificação `spark-executor-log4j2` será adicionada à lista existente de classificações.
+ A classificação `spark-driver-log4j2` será removida.
+ As configurações de `managedPersistenceMonitoringConfiguration` serão atualizadas com as configurações no nível do trabalho.
+ As configurações de `s3MonitoringConfiguration` serão removidas.
+ As configurações de `cloudWatchLoggingConfiguration` serão adicionadas às configurações de monitoramento existentes.