

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 do AWS SDK para Java 2.x
<a name="setup"></a>

Esta seção fornece informações sobre como configurar o ambiente de desenvolvimento e projetos para usar o AWS SDK for Java 2.x.

## Visão geral da configuração
<a name="setup-overview"></a>

Para desenvolver com êxito aplicativos que acessem os Serviços da AWS usando o AWS SDK para Java, as seguintes condições são necessárias:
+ O Java SDK deve ter acesso às credenciais para [autenticar solicitações](get-started-auth.md#setup-auth) em seu nome.
+ As [permissões do perfil do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) configuradas no SDK devem permitir o acesso aos Serviços da AWS que seu aplicativo exige. As permissões associadas à política gerenciada **PowerUserAccess** da AWS são suficientes para a maioria das necessidades de desenvolvimento.
+ Um ambiente de desenvolvimento com os seguintes elementos:
  + [Arquivos de configuração compartilhados](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) que são configurados de pelo menos uma das seguintes formas:
    + O arquivo `config` contém as [configurações de login único do Centro de Identidade do IAM](get-started-auth.md#setup-credentials) para que o SDK possa obter as credenciais da AWS.
    + O arquivo `credentials` contém credenciais temporárias.
  + Uma [instalação do Java 8](setup-java-buildtool.md) ou posterior.
  + Uma [ferramenta de automação de compilação](setup-java-buildtool.md), como [Maven](https://maven.apache.org/download.cgi) ou [Gradle](https://gradle.org/install/).
  + Um editor de texto para trabalhar com código.
  + (Opcional, mas recomendado) Um IDE (ambiente de desenvolvimento integrado), como [IntelliJ IDEA](https://www.jetbrains.com/idea/download/#section=windows), [Eclipse](https://www.eclipse.org/ide/) ou [NetBeans](https://netbeans.apache.org/front/main/download/index.html).

    Se você usa o IntelliJ IDEA, também pode adicionar o [AWS Toolkit para IntelliJ IDEA](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html) para integrar Serviços da AWS diretamente ao IDE a fim de otimizar o desenvolvimento.
+ Uma sessão ativa do portal de acesso da AWS quando você estiver pronto para executar seu aplicativo. Use a AWS Command Line Interface para [iniciar o processo de login](get-started-auth.md#setup-login-sso) no portal de acesso do Centro de Identidade do AWS IAM.

**Importante**  
As instruções nesta seção de configuração pressupõem que você ou a organização usam o IAM Identity Center. Se sua organização usa um provedor de identidades externo que funciona independentemente do IAM Identity Center, descubra como você pode obter credenciais temporárias para o SDK para Java usar. Siga [estas instruções](credentials-temporary.md#credentials-temporary-from-portal) para adicionar credenciais temporárias ao arquivo `~/.aws/credentials`.  
Se seu provedor de identidade adicionar credenciais temporárias automaticamente ao arquivo `~/.aws/credentials`, certifique-se de que o nome do perfil seja `[default]` para que você não precise fornecer um nome de perfil ao SDK ou à AWS CLI.

# Instale o Java e uma ferramenta de construção para trabalhar com o AWS SDK for Java 2.x
<a name="setup-java-buildtool"></a>

Você precisa dos seguintes requisitos do ambiente de desenvolvimento Java 2.x para trabalhar com o SDK para Java 2.x:
+ Java 8 ou posterior. AWS SDK para Java [Funciona com o [Oracle Java SE Development Kit](https://www.oracle.com/java/technologies/downloads/) e com distribuições do Open Java Development Kit (OpenJDK) [Amazon Corretto](https://aws.amazon.com/corretto/), como [Red](https://developers.redhat.com/products/openjdk/overview) Hat OpenJDK e Adoptium.](https://adoptium.net/)
+ Ferramentas de criação compatíveis com o Maven, como Apache Maven, Apache Ant with Ivy, Gradle ou IntelliJ.
  + Para obter informações sobre como instalar e usar o Maven, consulte [https://maven.apache.org/](https://maven.apache.org/).
  + Consulte informações sobre como instalar e usar o Apache Ivy em [https://ant.apache.org/ivy/](https://ant.apache.org/ivy/).
  + Para obter informações sobre como instalar e usar o Gradle, consulte [https://gradle.org/](https://gradle.org/).
  + Para obter informações sobre como instalar e usar o IntelliJ IDEA, consulte. [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)

# Configure um projeto Apache Maven que use o AWS SDK for Java 2.x
<a name="setup-project-maven"></a>

O [Apache Maven](https://maven.apache.org/) pode ser usado para configurar e criar projetos do AWS SDK for Java 2.x ou [criar o próprio SDK](https://github.com/aws/aws-sdk-java-v2/tree/master#building-from-source).

## Pré-requisitos
<a name="prerequisitesmaven"></a>

Para usar o SDK para Java 2.x com o Maven, você precisa do seguinte:
+ Java *8.0 ou posterior*. Você pode baixar o software Java SE Development Kit mais recente em [http://www.oracle. com/technetwork/java/javase/downloads](https://www.oracle.com/java/technologies/downloads/)/. O SDK para Java 2.x também funciona com o [OpenJDK](https://openjdk.org/) Amazon Corretto e, uma distribuição do Open Java Development Kit (OpenJDK). Baixe a versão mais recente do OpenJDK em. [https://openjdk.java.net/install/index.html](https://openjdk.org/install/index.html) Baixe a versão Amazon Corretto 8 ou Amazon Corretto 11 mais recente [da Corretto página](https://aws.amazon.com/corretto/).
+  *Apache Maven*. Se você precisar instalar o Maven, acesse [http://maven.apache.org/](https://maven.apache.org/) para baixá-lo.

## Criar um projeto Maven
<a name="create-maven-project"></a>

Para criar um projeto Maven com a linha de comando, execute o seguinte comando em um terminal ou janela de prompt de comando ````.

```
mvn -B archetype:generate \
 -DarchetypeGroupId=software.amazon.awssdk \
 -DarchetypeArtifactId=archetype-lambda -Dservice=s3 -Dregion=US_WEST_2 \
 -DarchetypeVersion=2.X.X \
 -DgroupId=com.example.myapp \
 -DartifactId=myapp
```

**nota**  
Substitua *com.example.myapp* pelo namespace do pacote completo do aplicativo. Substitua *myapp* pelo nome do projeto. Esse será o nome do diretório do projeto.  
Para usar a versão mais recente do arquétipo, *2.X.X* substitua pela [mais recente do Maven](https://central.sonatype.com/artifact/software.amazon.awssdk/archetype-lambda) central.

Esse comando cria um projeto do Maven usando o kit de ferramentas de modelo do arquétipo. O arquétipo gera o andaime para um AWS Lambda projeto de manipulador de funções. Esse arquétipo de projeto é pré-configurado para compilar com Java SE 8 e inclui uma dependência para a versão do SDK para Java 2.x especificada por `-DarchetypeVersion`.

Para obter mais informações sobre como criar e configurar projetos do Maven, consulte o [Maven Getting Started Guide](https://maven.apache.org/guides/getting-started/).

## Configurar o compilador Java para Maven
<a name="configure-maven-compiler"></a>

Se você criou seu projeto usando o arquétipo do AWS Lambda projeto conforme descrito anteriormente, a configuração do compilador Java já foi feita para você.

Para verificar se a configuração está presente, primeiro abra o arquivo `pom.xml` da pasta do projeto que você criou (por exemplo, `myapp`) ao executar o comando anterior. Veja as linhas 11 e 12 para confirmar a configuração da versão do compilador Java desse projeto Maven, e a inclusão necessária do plugin do compilador Maven nas linhas 71-75.

```
<project>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven.compiler.plugin.version}</version>
      </plugin>
    </plugins>
  </build>
</project>
```

Se você criar seu projeto com um arquétipo diferente ou por outro método, certifique-se de que o plug-in do compilador Maven faz parte da compilação e que suas propriedades de origem e destino estão definidas como **1.8** no `pom.xml` arquivo.

Consulte o snippet anterior para ver uma maneira de definir essas configurações necessárias.

Como opção, você pode configurar o compilador em linha com a declaração do plugin, como a seguir.

```
<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
```

## Declarar o SDK como dependência
<a name="sdk-as-dependency"></a>

Para usar o AWS SDK para Java em seu projeto, você precisa declará-lo como uma dependência no arquivo do `pom.xml` seu projeto.

Se você criou seu projeto usando o arquétipo de projeto conforme descrito anteriormente, a versão mais recente do SDK já está configurada como uma dependência no projeto. 

O arquétipo gera uma dependência de artefato da BOM (lista de materiais) para o ID do grupo `software.amazon.awssdk`. Com uma BOM, você não precisa especificar a versão do Maven para dependências de artefatos individuais que compartilham o mesmo ID de grupo.

Se você criou seu projeto do Maven de maneira diferente, configure a versão mais recente do SDK para seu projeto garantindo que o arquivo `pom.xml` contenha o seguinte.

```
<project>
  <properties>
    <aws.java.sdk.version>2.X.X</aws.java.sdk.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>bom</artifactId>
        <version>${aws.java.sdk.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>
```

**nota**  
*2.X.X*Substitua o `pom.xml` arquivo pela [versão mais recente do AWS SDK for Java 2.x](https://central.sonatype.com/artifact/software.amazon.awssdk/bom).

## Definir dependências para módulos do SDK
<a name="modules-dependencies"></a>

Agora que você configurou o SDK, pode adicionar dependências para um ou mais dos AWS SDK para Java módulos para usar em seu projeto.

Como você já declarou a versão do SDK na seção `dependencyManagement` usando o artefato da lista de materiais, não é necessário especificar o número da versão de cada componente. Para carregar uma versão diferente de um módulo, especifique um número de versão para a dependência dele.

Se você criou o projeto usando o arquétipo de projeto conforme descrito anteriormente, ele já está configurado com várias dependências. Isso inclui dependências para manipuladores de funções do AWS Lambda e Amazon S3, conforme a seguir.

```
<project>
    <dependencies>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>s3</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>software.amazon.awssdk</groupId>
                    <artifactId>netty-nio-client</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>software.amazon.awssdk</groupId>
                    <artifactId>apache-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>url-connection-client</artifactId>
        </dependency>

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-core</artifactId>
            <version>${aws.lambda.java.version}</version>
        </dependency>
    </dependencies>
</project>
```

**nota**  
No exemplo `pom.xml` acima, as dependências são de `groupId`s diferentes. A dependência `s3` é de `software.amazon.awssdk`, enquanto a dependência `aws-lambda-java-core` é de `com.amazonaws`. A configuração do gerenciamento de dependências da BOM afeta os artefatos para `software.amazon.awssdk`, então é necessária uma versão para o artefato `aws-lambda-java-core`.  
Para o desenvolvimento de *manipuladores de função do Lambda* usando o SDK para Java 2.x, a dependência correta é `aws-lambda-java-core`. No entanto, se seu aplicativo precisar gerenciar recursos do Lambda usando operações como `listFunctions`, `deleteFunction`, `invokeFunction` e `createFunction`, seu aplicativo exigirá a dependência a seguir.   

```
<groupId>software.amazon.awssdk</groupId>
<artifactId>lambda</artifactId>
```

**nota**  
A dependência `s3` exclui as dependências transitivas `netty-nio-client` e `apache-client`. No lugar de qualquer um desses clientes HTTP, o arquétipo inclui a dependência `url-connection-client`, que ajuda a [reduzir a latência de inicialização das funções do AWS Lambda](lambda-optimize-starttime.md#lambda-quick-url).

Adicione os módulos ao seu projeto para obter os recursos AWS service (Serviço da AWS) e os recursos necessários para seu projeto. Os módulos (dependências) que são gerenciados pela BOM do AWS SDK para Java estão listados no [repositório central do Maven](https://central.sonatype.com/artifact/software.amazon.awssdk/bom).

**nota**  
Para determinar quais dependências você precisa para o projeto, veja o arquivo `pom.xml` de um exemplo de código. [Por exemplo, se você estiver interessado nas dependências do serviço DynamoDB, [veja esse](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/dynamodb/pom.xml) exemplo no Repositório de exemplos de AWS código em.](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) GitHub (Procure o arquivo `pom.xml` em [/javav2/example\$1code/dynamodb](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/dynamodb).)

### Desenvolver todo o SDK no projeto
<a name="build-the-entire-sdk-into-your-project"></a>

Para otimizar o aplicativo, recomendamos que você extraia apenas os componentes de que precisa, em vez de todo o SDK. No entanto, para AWS SDK para Java incorporar tudo em seu projeto, declare-o em seu `pom.xml` arquivo, da seguinte maneira.

```
<project>
  <dependencies>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>aws-sdk-java</artifactId>
      <version>2.X.X</version>
    </dependency>
  </dependencies>
</project>
```

## Compilar o projeto
<a name="build-project"></a>

Depois de configurar o arquivo `pom.xml`, você poderá usar o Maven para desenvolver o projeto.

Para criar o projeto Maven pela linha de comando, abra uma janela de terminal ou prompt de comando, navegue até o diretório dele (por exemplo, `myapp`), insira ou cole o comando abaixo e pressione Enter ou Return.

```
mvn package
```

Isso criará um único arquivo (JAR) `.jar` no diretório `target` (por exemplo, `myapp/target`). Esse JAR conterá todos os módulos SDK especificados como dependências no arquivo `pom.xml`.

# Configure um projeto Gradle que use o AWS SDK for Java 2.x
<a name="setup-project-gradle"></a>

Você pode usar o [Gradle](https://gradle.org/) para configurar e criar projetos do AWS SDK for Java 2.x . 

As etapas iniciais no exemplo a seguir vêm do [Guia de conceitos básicos do Gradle](https://docs.gradle.org/current/samples/sample_building_java_applications.html) para a versão 8.4. O uso de uma versão diferente pode gerar pequenas variações nos resultados.

**Para criar um aplicativo Java com o Gradle (linha de comando)**

1. Crie um diretório para armazenar seu projeto. Neste exemplo, o nome do diretório é `demo`.

1. Dentro do diretório `demo`, execute o comando `gradle init` e forneça os valores destacados em vermelho, conforme mostrado na saída da linha de comando a seguir. Para a demonstração, foi escolhido o Kotlin como a linguagem DSL do script de construção, mas um exemplo completo do Groovy também é mostrado no fim deste tópico.

   ```
   > gradle init
   Starting a Gradle Daemon (subsequent builds will be faster)
   
   Select type of project to generate:
   1: basic
   2: application
   3: library
   4: Gradle plugin
   Enter selection (default: basic) [1..4] 2
   
   Select implementation language:
   1: C++
   2: Groovy
   3: Java
   4: Kotlin
   5: Scala
   6: Swift
   Enter selection (default: Java) [1..6] 3
   
   Generate multiple subprojects for application? (default: no) [yes, no] no
   Select build script DSL:
   1: Kotlin
   2: Groovy
   Enter selection (default: Kotlin) [1..2] <Enter>
   
   Select test framework:
   1: JUnit 4
   2: TestNG
   3: Spock
   4: JUnit Jupiter
   Enter selection (default: JUnit Jupiter) [1..4] 4
   
   Project name (default: demo): <Enter>
   Source package (default: demo): <Enter>
   Enter target version of Java (min. 7) (default: 11): <Enter>
   Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no] <Enter>
   
   > Task :init
   To learn more about Gradle by exploring our Samples at https://docs.gradle.org/8.4/samples/sample_building_java_applications.html
   
   BUILD SUCCESSFUL in 3m 43s
   2 actionable tasks: 2 executed
   ```

1. Após a conclusão da tarefa `init`, o diretório `demo` conterá a seguinte estrutura em árvore. Examinaremos mais de perto o arquivo de compilação principal `build.gradle.kts` (destacado em vermelho) na próxima seção.

   ```
   ├── app
   │   ├── build.gradle.kts
   │   └── src
   │       ├── main
   │       │   ├── java
   │       │   │   └── demo
   │       │   │       └── App.java
   │       │   └── resources
   │       └── test
   │           ├── java
   │           │   └── demo
   │           │       └── AppTest.java
   │           └── resources
   ├── gradle
   │   └── wrapper
   │       ├── gradle-wrapper.jar
   │       └── gradle-wrapper.properties
   ├── gradlew
   ├── gradlew.bat
   └── settings.gradle.kts
   ```

   O arquivo `build.gradle.kts` contém o seguinte conteúdo gerado automaticamente.

   ```
   /*
    * This file was generated by the Gradle 'init' task.
    *
    * This generated file contains a sample Java application project to get you started.
    * For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.4/userguide/building_java_projects.html in the Gradle documentation.
    */
   
   plugins {
       // Apply the application plugin to add support for building a CLI application in Java.
       application
   }
   
   repositories {
       // Use Maven Central for resolving dependencies.
       mavenCentral()
   }
   
   dependencies {
       // Use JUnit Jupiter for testing.
       testImplementation("org.junit.jupiter:junit-jupiter:5.9.3")
   
       testRuntimeOnly("org.junit.platform:junit-platform-launcher")
   
       // This dependency is used by the application.
       implementation("com.google.guava:guava:33.3.0-jre")
   }
   
   // Apply a specific Java toolchain to ease working on different environments.
   java {
       toolchain {
           languageVersion.set(JavaLanguageVersion.of(11))
       }
   }
   
   application {
       // Define the main class for the application.
       mainClass.set("demo.App")
   }
   
   tasks.named<Test>("test") {
       // Use JUnit Platform for unit tests.
       useJUnitPlatform()
   }
   ```

1. Use o arquivo de compilação do Gradle em andaime como base para seu projeto. AWS 

   1. Para gerenciar as dependências do SDK para seu projeto Gradle, adicione a lista de materiais (BOM) do Maven AWS SDK for Java 2.x à `dependencies` seção do arquivo. `build.gradle.kts`

      ```
      ...
      dependencies {
          implementation(platform("software.amazon.awssdk:bom:2.27.21"))
          // With the bom declared, you specify individual SDK dependencies without a version.
       ...
      }
      ...
      ```
**nota**  
Neste exemplo de arquivo de compilação, substitua *2.27.21* pela versão mais recente do SDK for Java 2.x. Encontre a versão mais recente disponível no [repositório central do Maven](https://central.sonatype.com/artifact/software.amazon.awssdk/bom/versions).

   1. Especifique os módulos do SDK que seu aplicativo precisa na seção `dependencies`. O exemplo a seguir adiciona uma dependência do Amazon Simple Storage Service. 

      ```
      ...
      dependencies {    
          implementation(platform("software.amazon.awssdk:bom:2.27.21"))
          implementation("software.amazon.awssdk:s3")
       ...
      }
      ...
      ```

      O Gradle corrige automaticamente a versão correta das dependências declaradas usando as informações da BOM.

Os exemplos a seguir mostram arquivos de compilação completos do Gradle no Kotlin e no Groovy. DSLs O arquivo de compilação contém dependências para Amazon S3, autenticação, registro e teste. A versão de origem e destino do Java é a versão 11.

------
#### [ Kotlin DSL (build.gradle.kts) ]

```
/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java application project to get you started.
 * For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.4/userguide/building_java_projects.html in the Gradle documentation.
 */

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    application
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    implementation(platform("software.amazon.awssdk:bom:2.20.56"))
    implementation("software.amazon.awssdk:s3")
    implementation("software.amazon.awssdk:sso")
    implementation("software.amazon.awssdk:ssooidc")
    implementation(platform("org.apache.logging.log4j:log4j-bom:2.20.0"))
    implementation("org.apache.logging.log4j:log4j-slf4j2-impl")
    implementation("org.apache.logging.log4j:log4j-1.2-api")
    testImplementation(platform("org.junit:junit-bom:5.10.0"))
    testImplementation("org.junit.jupiter:junit-jupiter")
}

// Apply a specific Java toolchain to ease working on different environments.
java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(11))
    }
}

application {
    // Define the main class for the application.
    mainClass.set("demo.App")
}

tasks.named<Test>("test") {
    // Use JUnit Platform for unit tests.
    useJUnitPlatform()
}
```

------
#### [ Groovy DSL (build.gradle) ]

```
/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java application project to get you started.
 * For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.4/userguide/building_java_projects.html in the Gradle documentation.
 */

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    id 'application'
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    implementation platform('software.amazon.awssdk:bom:2.27.21')
    implementation 'software.amazon.awssdk:s3'
    implementation 'software.amazon.awssdk:sso'
    implementation 'software.amazon.awssdk:ssooidc'
    implementation platform('org.apache.logging.log4j:log4j-bom:2.20.0')
    implementation 'org.apache.logging.log4j:log4j-slf4j2-impl'
    implementation 'org.apache.logging.log4j:log4j-1.2-api'
    testImplementation platform('org.junit:junit-bom:5.10.0')
    testImplementation 'org.junit.jupiter:junit-jupiter'
}

// Apply a specific Java toolchain to ease working on different environments.
java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(11)
    }
}

application {
    // Define the main class for the application.
    mainClass = 'demo_groovy.App'
}

tasks.named('test') {
    // Use JUnit Platform for unit tests.
    useJUnitPlatform()
}
```

------

Para as próximas etapas, consulte o Guia de Conceitos Básicos no site do Gradle para obter instruções sobre como [criar e executar um aplicativo do Gradle](https://docs.gradle.org/current/samples/sample_building_java_applications.html#run_the_application).

# Configure um projeto GraalVM Native Image que use o AWS SDK for Java 2.x
<a name="setup-project-graalvm"></a>

Com as versões 2.16.1 e posteriores, ele AWS SDK for Java 2.x fornece out-of-the-box suporte para aplicativos GraalVM Native Image. Use o arquétipo `archetype-app-quickstart` do Maven para configurar um projeto com suporte de imagem nativa integrado.

## Pré-requisitos
<a name="setup-graalvmnativeimage-prereq"></a>
+ Conclua as etapas em [Configurando o AWS SDK para Java 2.x](setup.md).
+ Instale o [GraalVM Native Image](https://www.graalvm.org/reference-manual/native-image/#install-native-image).

## Crie um projeto usando o arquétipo
<a name="setup-graalvmnativeimage-project"></a>

Para criar um projeto do Maven com suporte de imagem nativa integrado, em uma janela de terminal ou prompt de comando, use o comando a seguir.

**nota**  
Substitua `com.example.mynativeimageapp` pelo namespace do pacote completo do seu aplicativo. Substitua `mynativeimageapp` pelo nome do projeto. Esse será o nome do diretório do projeto.

```
mvn archetype:generate \
    -DarchetypeGroupId=software.amazon.awssdk \
    -DarchetypeArtifactId=archetype-app-quickstart \
    -DarchetypeVersion=2.27.21\
    -DnativeImage=true \
    -DhttpClient=apache-client \
    -Dservice=s3 \
    -DgroupId=com.example.mynativeimageapp \
    -DartifactId=mynativeimageapp \
    -DinteractiveMode=false
```

Esse comando cria um projeto Maven configurado com dependências para o AWS SDK para Java Amazon S3, e o cliente `ApacheHttpClient` HTTP. Ele também inclui uma dependência para o [plug-in GraalVM Native Image do Maven](https://graalvm.github.io/native-build-tools/latest/index.html), para que você possa criar imagens nativas usando o Maven.

Para incluir dependências de um serviço diferente Amazon Web Services, defina o valor do `-Dservice` parâmetro como o ID do artefato desse serviço. Os exemplos incluem `dynamodb`, `comprehend` e `pinpoint`. Para obter uma lista completa dos artefatos IDs, consulte a lista de dependências gerenciadas para [software.amazon.awssdk](https://mvnrepository.com/artifact/software.amazon.awssdk/bom/latest) no Maven Central.

Para usar um cliente HTTP assíncrono, defina o parâmetro `-DhttpClient` como `netty-nio-client`. Para usar `UrlConnectionHttpClient` como cliente HTTP síncrono em vez de `apache-client`, defina o parâmetro `-DhttpClient` como `url-connection-client`.

## Crie uma imagem nativa
<a name="build-graalvmnativeimage-project"></a>

Depois de criar o projeto, execute o comando seguinte no diretório do projeto, por exemplo, `mynativeimageapp`:

```
mvn package -P native-image
```

Isso cria um aplicativo de imagem nativa no diretório `target`, por exemplo, `target/mynativeimageapp`.