

# Selecionar e configurar a arquitetura de um conjunto de instruções para a função do Lambda
<a name="foundation-arch"></a>

 A *arquitetura do conjunto de instruções* de uma função do Lambda determina o tipo de processador de computador que o Lambda usa para executar a função. O Lambda fornece opções de arquiteturas de conjuntos de instruções:
+ arm64: arquitetura ARM de 64 bits para o processador AWS Graviton2.
+ x86\$164: arquitetura x86 de 64 bits para processadores baseados em x86.

**nota**  
A arquitetura arm64 está disponível na maioria das Regiões da AWS. Para saber mais, consulte [Preços do AWS Lambda](https://aws.amazon.com//lambda/pricing/#aws-element-9ccd9262-b656-4d9c-8a72-34ee6b662135). Na tabela de preços de memória, escolha a guia **Arm Price** (Preço do ARM) e, em seguida, abra a lista suspensa **Region** (Regiões) para visualizar quais Regiões da AWS oferecem suporte ao arm64 com o Lambda.  
Para obter um exemplo de como criar uma função com arquitetura arm64, consulte [AWS Lambda Functions Powered by AWS Graviton2 Processor](https://aws.amazon.com/blogs/aws/aws-lambda-functions-powered-by-aws-graviton2-processor-run-your-functions-on-arm-and-get-up-to-34-better-price-performance/).

**Topics**
+ [Vantagens do uso da arquitetura arm64](#foundation-arch-adv)
+ [Requisitos para a migração para a arquitetura arm64](#foundation-arch-consider)
+ [Compatibilidade do código da função com a arquitetura arm64](#foundation-arch-considerations)
+ [Como migrar para a arquitetura arm64](#foundation-arch-steps)
+ [Configuração da arquitetura do conjunto de instruções](#foundation-arch-config)

## Vantagens do uso da arquitetura arm64
<a name="foundation-arch-adv"></a>

As funções do Lambda que usam arquitetura arm64 (processador AWS Graviton2) podem alcançar preços e performance significativamente melhores do que a função equivalente executada na arquitetura x86\$164. Considere usar o arm64 para aplicações com uso intenso de computação, como computação de alta performance, codificação de vídeo e workloads de simulação.

A CPU Graviton2 usa o núcleo Neoverse N1 e oferece suporte a Armv8.2 (incluindo extensões CRC e cripto), além de várias outras extensões de arquitetura.

O Graviton2 reduz o tempo de leitura da memória fornecendo um cache L2 maior por vCPU, o que melhora a performance de latência de backends da Web e móveis, microsserviços e sistemas de processamento de dados. O Graviton2 também oferece melhor performance de criptografia e oferece suporte a conjuntos de instruções que melhoram a latência da inferência de machine learning com base em CPU.

Para obter mais informações sobre o AWS Graviton2, consulte [Processador AWS Graviton](https://aws.amazon.com/ec2/graviton).

## Requisitos para a migração para a arquitetura arm64
<a name="foundation-arch-consider"></a>

Ao selecionar uma função do Lambda para migrar para a arquitetura arm64, a fim de garantir uma migração suave, certifique-se de que sua função atenda aos seguintes requisitos:
+ O pacote de implantação contém apenas componentes de código aberto e código-fonte controlados por você para que você possa fazer as atualizações necessárias para a migração.
+ Se o código da função incluir dependências de terceiros, cada biblioteca ou pacote fornecerá uma versão arm64.

## Compatibilidade do código da função com a arquitetura arm64
<a name="foundation-arch-considerations"></a>

O código da sua função do Lambda deve ser compatível com a arquitetura do conjunto de instruções da função. Antes de migrar uma função para a arquitetura arm64, observe os seguintes pontos sobre o código da função atual:
+ Se você adicionou o código da função usando o editor de código integrado, seu código provavelmente será executado em qualquer arquitetura sem precisar de modificações.
+ Se você carregou o código da função, deverá carregar um novo código compatível com a arquitetura de destino.
+ Se sua função usa camadas, será necessário [verificar cada camada](adding-layers.md#finding-layer-information) para garantir que ela seja compatível com a nova arquitetura. Se uma camada não for compatível, edite a função para substituir a versão da camada atual por uma versão de camada compatível.
+ Se sua função usa extensões do Lambda, será necessário verificar cada camada para garantir que ela seja compatível com a nova arquitetura.
+ Se sua função usar um tipo de pacote de implantação de imagem de contêiner, você deverá criar uma nova imagem de contêiner compatível com a arquitetura da função.

## Como migrar para a arquitetura arm64
<a name="foundation-arch-steps"></a>



Para migrar uma função do Lambda para a arquitetura arm64, recomendamos seguir estas etapas:

1. Crie a lista de dependências para sua aplicação ou workload. As dependências comuns incluem:
   + Todas as bibliotecas e pacotes usados pela função.
   + As ferramentas que você usa para criar, implantar e testar a função, como compiladores, pacotes de testes, pipelines de integração contínua e entrega contínua (CI/CD), ferramentas de provisionamento e scripts.
   + As extensões do Lambda e ferramentas de terceiros que você usa para monitorar a função na produção.

1. Para cada uma das dependências, verifique a versão e verifique se há versões arm64 disponíveis.

1. Crie um ambiente para migrar sua aplicação.

1. Faça o bootstrap da aplicação.

1. Teste e depure a aplicação.

1. Teste a performance da função arm64. Compare a performance com a versão x86\$164.

1. Atualize o pipeline da infraestrutura para oferecer suporte às funções do Lambda em arm64.

1. Envie a implantação para a produção.

   Por exemplo, use a [configuração de roteamento de alias](configuring-alias-routing.md) para dividir o tráfego entre as versões x86 e arm64 da função e comparar a performance e a latência.

Para obter mais informações sobre como criar um ambiente de código para a arquitetura arm64, incluindo informações específicas de linguagem para Java, Go, .NET e Python, consulte [Conceitos básicos do AWS Graviton](https://github.com/aws/aws-graviton-getting-started) no GitHub.

## Configuração da arquitetura do conjunto de instruções
<a name="foundation-arch-config"></a>

Você pode configurar a arquitetura do conjunto de instruções para funções do Lambda novas e existentes usando o console do Lambda, a AWS, SDKs, a AWS Command Line Interface (AWS CLI) ou o CloudFormation. Siga estas etapas para alterar a arquitetura do conjunto de instruções para uma função existente do Lambda no console.

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

1. Escolha o nome da função para a qual você deseja configurar a arquitetura do conjunto de instruções.

1. Na guia principal **Código**, na seção **Configurações de runtime**, escolha **Editar**.

1. Em **Arquitetura**, escolha a arquitetura do conjunto de instruções a ser usado pela sua função.

1. Escolha **Salvar**.