

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 de aplicativo Elastic Beanstalk personalizadas
<a name="deployment-beanstalk-custom"></a>

Este tópico descreve em que sentido o manifesto de implantação do contêiner do Microsoft Windows do Elastic Beanstalk é compatível com as implantações de aplicação personalizadas.

As implantações de aplicação personalizadas são um recurso de ponta para usuários avançados que desejam aproveitar a eficiência do Elastic Beanstalk para criar e gerenciar os recursos da AWS e querem controle completo sobre a maneira como a aplicação é implantada. Para uma implantação de aplicação personalizada, você pode criar scripts do Windows PowerShell para as três diferentes ações realizadas pelo Elastic Beanstalk. A ação de instalação é usada quando uma implantação é iniciada, a reinicialização é usada quando a API `RestartAppServer` é chamada pelo toolkit ou pelo console da web e a desinstalação é invocada em qualquer implantação anterior sempre que ocorre uma nova implantação.

Por exemplo, convém ter um aplicativo ASP.NET que você deseja implantar, e a equipe de documentação cria um site estático que deseja incluir na implantação. Você pode fazer isso escrevendo o manifesto de implantação assim:

```
{
  "manifestVersion": 1,
  "deployments": {

    "msDeploy": [
      {
        "name": "app",
        "parameters": {
          "appBundle": "CoolApp.zip",
          "iisPath": "/"
        }
      }
    ],
    "custom": [
      {
        "name": "PowerShellDocs",
        "scripts": {
          "install": {
            "file": "install.ps1"
          },
          "restart": {
            "file": "restart.ps1"
          },
          "uninstall": {
            "file": "uninstall.ps1"
          }
        }
      }
    ]
  }
}
```

Os scripts listados para cada ação devem estar no pacote de aplicativos de implantação relativo ao arquivo manifesto. Neste exemplo, o pacote de aplicativos também conterá um arquivo documentation.zip que contém um site estático criado pela equipe de documentação.

O script `install.ps1` extrai o arquivo zip e configura o caminho do IIS.

```
Add-Type -assembly "system.io.compression.filesystem"
[io.compression.zipfile]::ExtractToDirectory('./documentation.zip', 'c:\inetpub\wwwroot\documentation')

powershell.exe -Command {New-WebApplication -Name documentation -PhysicalPath  c:\inetpub\wwwroot\documentation -Force}
```

Como o aplicativo está execução no IIS, a ação de reinicialização invocará uma redefinição do IIS.

```
iisreset /timeout:1
```

Para desinstalar scripts, é importante limpar todas as configurações e arquivos usados durante o estágio de instalação. Dessa maneira, durante a fase de instalação para a nova versão, você pode evitar qualquer colisão com implantações anteriores. Neste exemplo, você precisa remover o aplicativo do IIS do site estático e remover os arquivos do site.

```
powershell.exe -Command {Remove-WebApplication -Name documentation}
Remove-Item -Recurse -Force 'c:\inetpub\wwwroot\documentation'
```

Com esses arquivos de script e o arquivo documentation.zip incluídos no pacote de aplicativos, a implantação cria o aplicativo ASP.NET e implanta o local da documentação.

Neste exemplo, escolhemos um caso básico que implanta um site estático simples. No entanto, com a implantação de aplicação personalizada, você pode implantar qualquer tipo de aplicação e permitir que o Elastic Beanstalk gerencie os recursos da AWS para ela.