

# Criar e implantar funções do Lambda em C\# com arquivos .zip
<a name="csharp-package"></a>

Um pacote de implantação do .NET (arquivo .zip) contém o assembly compilado da função junto com todas as suas dependências de assembly. O pacote também contém um arquivo `{{proj}}.deps.json`. Isso sinaliza para o runtime do .NET todas as dependências da função e um arquivo `{{proj}}.runtimeconfig.json`, que é usado para configurar o runtime.

Para implantar funções do Lambda individuais, você pode usar a CLI do .NET Lambda Global `Amazon.Lambda.Tools`. O uso do comando `dotnet lambda deploy-function` cria automaticamente um pacote de implantação .zip e o implanta no Lambda. Porém, recomendamos que você use estruturas como o AWS Serverless Application Model (AWS SAM) ou o AWS Cloud Development Kit (AWS CDK) para implantar as aplicações do .NET na AWS.

As aplicações com tecnologia sem servidor geralmente incluem uma combinação de funções do Lambda e outros Serviços da AWS gerenciados trabalhando juntos para realizar uma tarefa de negócios específica. O AWS SAM e o AWS CDK simplificam a criação e implantação de funções do Lambda com outros Serviços da AWS em escala. A [especificação do modelo do AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html) fornece uma sintaxe simples e clara para descrever as funções, APIs, permissões, configurações e outros recursos do da AWS que compõem sua aplicação com tecnologia sem servidor. Com o [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html), você define a infraestrutura de nuvem como código para ajudar a criar aplicações confiáveis, escaláveis e econômicas na nuvem, usando linguagens e estruturas de programação modernas, como o .NET. Tanto o AWS CDK quanto o AWS SAM usam a CLI do .NET Lambda Global para empacotar as funções.

Embora seja possível usar as [Camadas do Lambda](chapter-layers.md) com funções em C\# [usando a CLI do .NET Core](csharp-package-cli.md#csharp-layers), não recomendamos. Funções em C\# que usam camadas carregam manualmente os conjuntos compartilhados na memória durante o [Fase de inicialização](lambda-runtime-environment.md#runtimes-lifecycle-ib), o que pode aumentar o tempo de início a frio. Em vez disso, inclua todo o código compartilhado no momento da compilação para evitar o impacto no desempenho do carregamento de assemblies em runtime.

Você pode encontrar instruções para criar e implantar as funções do Lambda do .NET usando o AWS SAM o AWS CDK e a CLI do .NET Lambda Global nas seções a seguir.

**Topics**
+ [Usando a CLI do .NET Lambda Global](csharp-package-cli.md)
+ [Implantar funções do Lambda em C\# usando o AWS SAM](csharp-package-sam.md)
+ [Implantar funções do Lambda em C\# usando o AWS CDK](csharp-package-cdk.md)
+ [Implementar aplicações ASP.NET](csharp-package-asp.md)