

# Usar o AWS Lambda com o AWS Infrastructure Composer
<a name="services-appcomposer"></a>

AWS Infrastructure Composer é uma ferramenta de criação visual para projetar aplicações modernas na AWS. Para projetar a arquitetura das aplicações, basta arrastar, agrupar e conectar Serviços da AWS em uma tela visual. O Infrastructure Composer cria modelos de infraestrutura como código (IaC) com base no seu design que podem ser implantados usando o [AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) ou o [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

## Exportação da função do lambda para o Infrastructure Composer
<a name="services-appcomposer-export"></a>

Você pode começar a usar o Infrastructure Composer criando um projeto com base na configuração de uma função do Lambda existente usando o console do Lambda. Para exportar a configuração e o código da função para o Infrastructure Composer com o objetivo de criar um projeto, faça o seguinte:

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

1. Selecione a função que você deseja usar como base para o projeto no Infrastructure Composer.

1. No painel **Visão geral da função**, escolha **Exportar para o Infrastructure Composer**.

   Para exportar a configuração e o código da função para o Infrastructure Composer, o Lambda cria um bucket do Amazon S3 na sua conta para armazenar esses dados temporariamente.

1. Na caixa de diálogo, escolha **Confirmar e criar projeto** para aceitar o nome padrão desse bucket e exportar a configuração e o código da função para o Infrastructure Composer.

1. (Opcional) Para escolher outro nome para o bucket do Amazon S3 criado pelo Lambda, insira um novo nome e escolha **Confirmar e criar projeto**. Os nomes de buckets do Amazon S3 devem ser exclusivos no mundo todo e seguir as [regras de nomenclatura de buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).

1. Para salvar os arquivos de projeto e função no Infrastructure Composer, ative o [modo de sincronização local](https://docs.aws.amazon.com/application-composer/latest/dg/reference-features-local-sync.html).

**nota**  
Se você já usou o recurso **Exportar para o Application Composer** antes e criou um bucket do Amazon S3 usando o nome padrão, o Lambda pode reutilizar esse bucket, caso ele ainda exista. Aceite o nome padrão do bucket na caixa de diálogo para reutilizar o bucket existente.

### Configuração de transferência do bucket do Amazon S3
<a name="services-appcomposer-bucket-info"></a>

O bucket do Amazon S3 que o Lambda cria para transferir a configuração da função criptografa automaticamente os objetos usando o padrão de criptografia AES 256. O Lambda também configura o bucket para usar a [condição de proprietário do bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-owner-condition.html) a fim de garantir que apenas sua Conta da AWS possa adicionar objetos ao bucket.

O Lambda configura o bucket para excluir automaticamente os objetos dez dias após o upload. No entanto, o Lambda não exclui automaticamente o bucket em si. Para excluir o bucket da sua Conta da AWS, siga as instruções em [Excluir um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html). O nome padrão do bucket usa o prefixo `lambdasam`, uma sequência alfanumérica de dez dígitos, e a Região da AWS em que você criou sua função:

```
lambdasam-06f22da95b-us-east-1
```

Para evitar que cobranças adicionais sejam incluídas na sua Conta da AWS, recomendamos que você exclua o bucket do Amazon S3 assim que terminar de exportar a função para o Infrastructure Composer.

Os [preços padrão do Amazon S3](https://aws.amazon.com/s3/pricing/) se aplicam.

### Permissões obrigatórias
<a name="services-appcomposer-permissions"></a>

Para usar a integração do Lambda com o recurso do Infrastructure Composer, você precisa de certas permissões para fazer o download de um modelo do AWS SAM e gravar a configuração da função no Amazon S3.

Para baixar um modelo do AWS SAM, você deve ter permissão para usar as seguintes ações de API:
+ [GetPolicy](https://docs.aws.amazon.com/lambda/latest/api/API_GetPolicy.html)
+ [iam:GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html)
+ [iam:GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)
+ [iam:GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html)
+ [iam:ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)
+ [iam:ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html)
+ [iam:ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)

Você pode conceder permissão para usar todas essas ações adicionando a política [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambda_ReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambda_ReadOnlyAccess.html) gerenciada pela AWS ao seu perfil de usuário do IAM.

Para que o Lambda grave a configuração da sua função no Amazon S3, você precisa ter permissão para usar as seguintes ações de API:
+ [S3:PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [S3:CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
+ [S3:PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
+ [S3:PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)

Caso não possa exportar a configuração da função para o Infrastructure Composer, verifique se a conta tem as permissões necessárias para essas operações. Se você tiver as permissões necessárias, mas ainda assim não conseguir exportar a configuração da função, verifique se há [políticas baseadas em recursos](access-control-resource-based.md) que talvez limitem o acesso ao Amazon S3.

## Outros recursos
<a name="w2aad101c33b7"></a>

Para obter um tutorial mais detalhado sobre como criar uma aplicação sem servidor no Infrastructure Composer com base em uma função do Lambda existente, consulte [Usar o Lambda com a infraestrutura como código (IaC)](foundation-iac.md).

Para usar o Infrastructure Composer e o AWS SAM para criar e implantar uma aplicação completa sem servidor usando o Lambda, você também pode seguir o [tutorial do AWS Infrastructure Composer](https://catalog.workshops.aws/serverless-patterns/en-US/dive-deeper/module1a) no [AWS Serverless Patterns Workshop](https://catalog.workshops.aws/serverless-patterns/en-US).