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 ASP.NET Core com o Elastic Beanstalk
Este tópico descreve como a implantação funciona e o que você pode fazer para personalizar implantações ao criar aplicações ASP.NET Core com o Elastic Beanstalk e o kit de ferramentas para Visual Studio.
Depois que você concluir o assistente de implantação no kit de ferramentas para Visual Studio, o kit empacotará a aplicação e a enviará ao 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 chamado aws-windows-deployment-manifest.json, que o contêiner Windows do Elastic Beanstalk (versão 1.2 ou posterior) 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 que você adicione o aws-windows-deployment-manifest.json ao seu projeto e personalize o manifesto. Para fazer isso em um aplicativo Web ASP.NET Core no Visual Studio, adicione um novo arquivo JSON à raiz do projeto e nomeie-o como .json. aws-windows-deployment-manifest
O manifesto deve ter o nome de aws-windows-deployment-manifest.json e estar na raiz do projeto. O contêiner do Elastic Beanstalk procura o manifesto na raiz e, se o encontrar, invoca 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 um arquivo msdeploy.
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 do que o assistente de implantação suporta. AWS definiu um esquema JSON para o aws-windows-deployment-manifestarquivo.json e, quando você instalou o Toolkit for Visual Studio, a configuração registrou a 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á 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 PowerShell scripts do Windows 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 PowerShell script do Windows PostInstallSetup.ps1
para realizar trabalhos adicionais 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?
Os arquivos de configuração .ebextensions do Elastic Beanstalk 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.