Implantações personalizadas do Elastic Beanstalk do ASP.NET Core personalizadas - AWS Kit de ferramentas com Amazon Q

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

Implantações personalizadas do Elastic Beanstalk do ASP.NET Core personalizadas

Este tópico descreve como a implantação funciona e o que você pode fazer para personalizar implantações ao criar aplicativos do ASP.NET Core com o Elastic Beanstalk e o Toolkit for Visual Studio.

Depois de concluir o assistente de implantação no Toolkit for Visual Studio, o toolkit vai empacotar o aplicativo e enviá-lo para o Elastic Beanstalk. A primeira etapa na criação do pacote de aplicativos é usar a nova CLI dotnet a fim de preparar o aplicativo para publicação usando o comando publish. A estrutura e a configuração são passadas pelas configurações no assistente para o comando publish. Assim, se você tiver selecionado Release para configuration e netcoreapp1.0 para o framework, o toolkit executará o seguinte comando:

dotnet publish --configuration Release --framework netcoreapp1.0

Quando o comando publish é concluído, o toolkit grava o novo manifesto de implantação na pasta de publicação. O manifesto de implantação é um arquivo JSON chamadoaws-windows-deployment-manifest.json, que o contêiner do Windows do Elastic Beanstalk (versão 1.2 ou posterior) do lê para determinar como implantar o aplicativo. Por exemplo, para um aplicativo do ASP.NET Core que você queira implantar na raiz do IIS, o toolkit gera um arquivo manifesto semelhante a este:

{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "app", "parameters": { "appBundle": ".", "iisPath": "/", "iisWebSite": "Default Web Site" } } ] } }

A propriedade appBundle indica onde os bits do aplicativo estão em relação ao arquivo manifesto. Essa propriedade pode apontar para um diretório ou um arquivo ZIP. As propriedades iisPath e iisWebSite indicam onde hospedar o aplicativo no IIS.

Personalizar o manifesto

O toolkit só gravará o arquivo manifesto se um ainda não existir na pasta de publicação. Se o arquivo não existir, o toolkit atualizará as propriedades appBundle, iisPath e iisWebSite no primeiro aplicativo listado na seção aspNetCoreWeb do manifesto. Isso permite adicionar o aws-windows-deployment-manifest.json ao projeto e personalizar o manifesto. Para fazer isso para um aplicativo web do ASP.NET Core no Visual Studio, adicione um novo arquivo JSON à raiz do projeto e o nomeie como aws-windows-deployment-manifest.json.

O manifesto deve ser chamado de aws-windows-deployment-manifest.json e deve estar na raiz do projeto. O contêiner do Elastic Beanstalk procura o manifesto na raiz e, se o encontrar, ele invocará as ferramentas de implantação. Se o arquivo não existir, o contêiner do Elastic Beanstalk recorrerá às ferramentas de implantação anteriores, o que pressupõe que o arquivo seja ummsdeployArquivo.

Para garantir que o comando publish da CLI do dotnet inclua o manifesto, atualize o arquivo project.json para incluir o arquivo manifesto na seção include em include em publishOptions.

{ "publishOptions": { "include": [ "wwwroot", "Views", "Areas/**/Views", "appsettings.json", "web.config", "aws-windows-deployment-manifest.json" ] } }

Agora que já declarou o manifesto de maneira que ele esteja incluído no pacote de aplicativos, você pode configurar como deseja implantar o aplicativo. Você pode personalizar a implantação além da compatibilidade do assistente de implantação.AWSA AWS definiu um esquema JSON para oArquivo aws-windows-deployment-manifest.jsone, ao instalar o Toolkit for Visual Studio, a configuração registrou o URL do esquema.

Ao abrir windows-deployment-manifest.json, você verá o URL do esquema selecionado na caixa suspensa Schema. Você pode navegar até o URL para obter uma descrição completa do que pode ser definido no manifesto. Com o esquema selecionado, o Visual Studio fornecerá o IntelliSense enquanto você estiver editando o manifesto.

Uma personalização que você pode fazer é configurar o grupo de aplicativos do IIS no qual o aplicativo será executado. O exemplo a seguir mostra como você pode definir um grupo de aplicativos do IIS ("customPool") que recicle o processo a cada 60 minutos e o atribui ao aplicativo usando "appPool": "customPool".

{ "manifestVersion": 1, "iisConfig": { "appPools": [ { "name": "customPool", "recycling": { "regularTimeInterval": 60 } } ] }, "deployments": { "aspNetCoreWeb": [ { "name": "app", "parameters": { "appPool": "customPool" } } ] } }

Além disso, o manifesto pode declarar scripts do Windows PowerShell a serem executados antes e depois das ações de instalação, reinicialização e desinstalação. Por exemplo, o manifesto a seguir executa o script do Windows PowerShell PostInstallSetup.ps1 para fazer mais trabalho de configuração após a implantação do aplicativo ASP.NET Core no IIS. Ao adicionar scripts assim, certifique-se de que os scripts sejam adicionados à seção include em publishOptions no arquivo project.json, da mesma maneira como você fez com o arquivo aws-windows-deployment-manifest.json. Se você não fizer isso, os scripts não serão incluídos como parte do comando publish da CLI do dotnet.

{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "app", "scripts": { "postInstall": { "file": "SetupScripts/PostInstallSetup.ps1" } } } ] } }

E .ebextensions?

O Elastic Beanstalk.ebextensionsOs arquivos de configuração são compatíveis como todos os outros contêineres do Elastic Beanstalk. Para incluir ebextensions em um aplicativo do ASP.NET Core, adicione o diretório .ebextensions à seção include em publishOptions no arquivo project.json. Para obter mais informações sobre .ebextensions, confira o Guia do desenvolvedor do Elastic Beanstalk.