Implantar funções do Lambda em C# usando o AWS SAM - AWS Lambda

Implantar funções do Lambda em C# usando o AWS SAM

O AWS Serverless Application Model (AWS SAM) é um kit de ferramentas que ajuda a simplificar o processo de criação e execução de aplicações com tecnologia sem servidor na AWS. Você define os recursos para a aplicação em um modelo YAML ou JSON e usa a interface da linha de comando do AWS SAM (CLI do AWS SAM) para criar, empacotar e implantar aplicações. Quando você cria uma função do Lambda com base em um modelo do AWS SAM, o AWS SAM cria automaticamente um pacote de implantação .zip ou uma imagem de contêiner com o código da função e todas as dependências que você especificar. O AWS SAM então implanta a função usando uma pilha do AWS CloudFormation Para saber mais sobre como usar o AWS SAM para criar e implantar funções do Lambda, consulte Conceitos básicos do AWS SAM no Guia do desenvolvedor do AWS Serverless Application Model.

As etapas a seguir mostram como baixar, criar e implantar um exemplo de aplicação Hello World do .NET usando o AWS SAM. Essa aplicação de exemplo usa uma função do Lambda e um endpoint do Amazon API Gateway para implementar um back-end básico de API. Quando você envia uma solicitação HTTP GET ao endpoint do API Gateway, o API Gateway invoca a sua função do Lambda. A função retorna uma mensagem "Hello world, juntamente com o endereço IP da instância da função do Lambda que processa a solicitação.

Quando você criar e implanta a aplicação usando o AWS SAM, nos bastidores, a CLI do AWS SAM usa o comando dotnet lambda package para empacotar os pacotes individuais de códigos de função do Lambda.

Pré-requisitos

SDK do .NET 8

Instale o SDK e o runtime do .NET 8.

CLI do AWS SAM versão 1.39 ou posterior

Para saber como instalar a versão mais recente da CLI do AWS SAM, consulte Instalar a CLI do AWS SAM.

Implantar uma aplicação de exemplo do AWS SAM

  1. Inicialize a aplicação usando o modelo de Hello world do .NET com o comando a seguir.

    sam init --app-template hello-world --name sam-app \ --package-type Zip --runtime dotnet8

    Esse comando cria os seguintes arquivos e diretórios no diretório do seu projeto.

    └── sam-app ├── README.md ├── events │   └── event.json ├── omnisharp.json ├── samconfig.toml ├── src │   └── HelloWorld │   ├── Function.cs │   ├── HelloWorld.csproj │   └── aws-lambda-tools-defaults.json ├── template.yaml └── test └── HelloWorld.Test ├── FunctionTest.cs └── HelloWorld.Tests.csproj
  2. Navegue até o diretório que contém o template.yaml file. Esse arquivo é um modelo que define os recursos da AWS da sua aplicação, incluindo a função do Lambda e uma API do API Gateway.

    cd sam-app
  3. Para criar o código-fonte da aplicação, execute o comando a seguir.

    sam build
  4. Para implantar a aplicação no AWS, execute o comando a seguir.

    sam deploy --guided

    Esse comando empacota e implanta a aplicação com a série de prompts a seguir. Para aceitar as opções padrão, pressione Enter.

    nota

    Para HelloWorldFunction pode não ter autorização definida, tudo bem?, certifique-se de inserir y.

    • Nome da pilha: o nome da pilha a implantar para AWS CloudFormation. Esse nome deve ser exclusivo para a sua Conta da AWS e a Região da AWS.

    • Região da AWS: a Região da AWS em que você deseja implantar a aplicação.

    • Confirmar as alterações antes da implantação: selecione Sim para revisar manualmente qualquer conjunto de alterações antes do AWS SAM implantar as alterações da aplicação. Se você selecionar Não, a CLI do AWS SAM implantará automaticamente as alterações da aplicação.

    • Permitir a criação de perfil do IAM do SAM CLI: muitos modelos do AWS SAM, incluindo o Hello world neste exemplo, criam perfis do AWS Identity and Access Management (IAM) para dar permissão às suas funções do Lambda para acessar outras Serviços da AWS. Selecione Sim para fornecer permissão para implantar uma pilha AWS CloudFormation que cria ou modifica os perfis do IAM.

    • Desativar a reversão: por padrão, se o AWS SAM encontrar um erro durante a criação ou implantação da pilha, ela reverte a pilha para a versão anterior. Selecione Não para aceitar esse padrão.

    • HelloWorldFunction pode não ter autorização definida, tudo bem?: insira y.

    • Salvar argumentos em samconfig.toml: selecione Sim para salvar suas opções de configuração. No futuro, você poderá executar o sam deploy novamente sem parâmetros para implantar alterações na aplicação.

  5. Quando a implantação da aplicação estiver concluída, a CLI retornará o nome do recurso da Amazon (ARN) da função do Lambda Hello World e o perfil do IAM criado para ela. Ela também exibe o endpoint da API do API Gateway. Para testar a aplicação, abra o endpoint em um navegador. Você verá uma resposta semelhante a que se segue.

    {"message":"hello world","location":"34.244.135.203"}
  6. Para excluir os seus recursos, execute o comando a seguir. Observe que o endpoint da API que você criou é um endpoint público acessível pela Internet. Recomendamos excluir este endpoint após o teste.

    sam delete

Próximas etapas

Para saber mais sobre o uso do AWS SAM para criar e implantar funções do Lambda usando o .NET, consulte os seguintes recursos: