Implantando aplicativos ASP.NET Web Forms em AWS - AWS Orientação prescritiva

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á.

Implantando aplicativos ASP.NET Web Forms em AWS

Gerenciando NuGet pacotes

NuGet é um repositório que contém e gerencia pacotes de código para.NET. Um aplicativo pode ter dois tipos de NuGet pacotes instalados: pacotes publicamente disponíveis no nuget.org ou pacotes personalizados que são publicados em um repositório interno. A retirada de pacotes do nuget.org exige que as instâncias que criam o aplicativo tenham acesso externo à Internet. Para alguns usuários, o acesso à Internet pode não ser desejável devido a questões de segurança ou restrições de rede.

Para resolver esse problema, você pode provisionar um repositório gerenciado de artefact (NuGet) para baixar pacotes de fontes externas, como nuget.org. Você pode usar AWS CodeArtifact, que é um serviço de repositório de artefatos totalmente gerenciado, como um repositório de NuGet pacotes. Para obter mais informações, consulte a postagem do AWS blog Usando NuGet com AWS CodeArtifact. Outras opções populares de terceiros incluem Nexus e Artifactory. Essa abordagem permite armazenar em cache pacotes publicamente disponíveis em seu repositório privado e reduz a necessidade de acesso direto à Internet durante o processo de criação. Se quiser ter mais controle sobre quais pacotes podem ser baixados, você pode desativar o acesso externo. Nesse caso, os desenvolvedores terão que enviar seus próprios NuGet pacotes e quaisquer outros pacotes de terceiros necessários para o repositório.

Para configurar seu aplicativo para usar o repositório de NuGet pacotes, crie um NuGet.config arquivo no diretório raiz do projeto ou na raiz da solução. Esse arquivo especifica as fontes de pacotes que NuGet devem ser usadas ao restaurar pacotes. O exemplo a seguir mostra como configurar o NuGet.config arquivo a ser usado CodeArtifact:

<?xml version="1.0" encoding="utf-8"?> <configuration> <packageRestore> <!-- Allow NuGet to download missing packages --> <add key="enabled" value="True" /> <!-- Automatically check for missing packages during build in Visual Studio --> <add key="automatic" value="True" /> </packageRestore> <packageSources> <add key="MyRepo" value="https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json" /> </packageSources> </configuration>

Neste exemplo, https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json substitua pela URL real do seu CodeArtifact repositório. Você pode encontrar esse URL no CodeArtifact console ou executando o aws codeartifact get-repository-endpoint comando.

Importante
  • A configuração do NuGet.config arquivo afeta todos os projetos dentro da mesma estrutura de diretórios. Se você quiser usar fontes de pacotes diferentes para projetos diferentes, crie NuGet.config arquivos separados para cada projeto ou solução.

  • Certifique-se de que as instâncias que criam o aplicativo tenham as permissões e o acesso à rede necessários para se conectar ao repositório de NuGet pacotes (como CodeArtifact). Para obter mais informações sobre como obter credenciais, consulte Usar CodeArtifact com a CLI do nuget ou dotnet na documentação. CodeArtifact

Criando um aplicativo

Ao migrar aplicativos herdados do ASP.NET Web Forms para AWS, você continua usando o Microsoft Build Engine (MSBuild) como a ferramenta central para criar os aplicativos. MSBuild normalmente é fornecido com o Visual Studio, mas você pode baixar e usar o MSBuild executável autônomo da Microsoft sem instalar o Visual Studio. Essa abordagem é particularmente útil quando você cria seu aplicativo Web Forms em AWS, onde você pode usar instâncias do Windows ou contêineres do Docker MSBuild instalados.

Há duas etapas principais necessárias para criar um aplicativo ASP.NET Web Forms: restaurar NuGet os pacotes e criar o aplicativo. As especificidades de como essas etapas são executadas podem variar dependendo da ferramenta de CI/CD que você escolher usar. Por exemplo, se você usa AWS CodeBuild, o processo de construção é executado dentro de um contêiner Docker.

Restaure NuGet pacotes

Antes de criar seu aplicativo, você deve restaurar os NuGet pacotes exigidos pelo projeto. Você pode fazer isso usando um MSBuild ou os NuGet comandos da Interface de Linha de Comando (CLI), executados no diretório raiz do projeto.

Usando MSBuild:

msbuild -t:restore

Usando a NuGet CLI:

nuget restore

Crie usando MSBuild

Depois de restaurar os NuGet pacotes, você pode continuar com o comando de compilação principal que produz os artefatos de implantação. O comando normalmente especifica o arquivo do projeto, a configuração de compilação (por exemplo,Release) e o diretório de saída dos artefatos criados.

msbuild <ProjectName>.csproj /p:Configuration=Release /p:OutDir=<OutDir>

Para obter mais informações sobre MSBuild as opções, consulte a referência MSBuild da linha de comando na documentação da Microsoft.

Para obter mais informações sobre como criar um aplicativo ASP.NET com AWS CodeBuild, consulte a postagem do AWS blog Criando pipelines de CI/CD para ASP.NET 4.x com e. AWS CodePipeline AWS Elastic Beanstalk

Implantação de uma aplicação

Depois de criar seu aplicativo Web Forms, você implanta os artefatos no ambiente de destino em AWS. Na maioria dos cenários, você pode compactar e carregar os artefatos criados em um bucket do Amazon Simple Storage Service (Amazon S3) para facilitar a distribuição e a implantação. Para obter instruções, consulte a documentação do Amazon S3.

Há duas opções principais para implantar os artefatos em uma EC2 instância da Amazon: manual e automatizada.

Implantação manual

Essa opção envolve o uso dos dados do usuário da EC2 instância para incluir scripts que executarão as seguintes tarefas:

  • Instalar os Serviços de Informações da Internet (IIS)

  • Extraia e desempacote os artefatos de construção do bucket Amazon S3

  • Criar e configurar o aplicativo IIS

Embora essa abordagem ofereça flexibilidade, ela requer intervenção manual e pode ser difícil gerenciá-la à medida que seu aplicativo é dimensionado ou passa por atualizações frequentes.

Implantação automatizada

A abordagem recomendada é usar AWS CodeDeploypara implantações automatizadas e repetíveis. CodeDeploy se integra perfeitamente a outras, Serviços da AWS como AWS CodeBuild e AWS CodePipeline, para que você possa criar CI/CD pipeline for your ASP.NET Web Forms application. With CodeDeploy, you can define deployment strategies such as rolling and blue/green atualizações completas para garantir o mínimo de tempo de inatividade e transições suaves entre as versões do aplicativo.

Para obter mais informações e exemplos sobre como configurar pipelines de CI/CD para aplicativos ASP.NET Web Forms usando CodePipeline,, e CodeBuild CodeDeploy, consulte a postagem do AWS blog Criando pipelines de CI/CD para ASP.NET 4.x com e. AWS CodePipeline AWS Elastic Beanstalk

Usando Serviços da AWS tais como CodeBuild,, e CodeDeploy CodePipeline, você pode simplificar os processos de criação e implantação de seus aplicativos ASP.NET Web Forms migrados e garantir implantações consistentes e confiáveis na infraestrutura. AWS

Para obter informações adicionais sobre implantações automatizadas, consulte a postagem do AWS blog Gerando pipelines de CI/CD para aplicativos ASP.NET em contêineres usando AWS App2Container e as informações sobre a criação de um pipeline de CI/CD para aplicativos legados do.NET Framework em re:POST. AWS