

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

# Referência de esquema de manifesto de implantação
<a name="dotnet-manifest-schema"></a>

O manifesto de implantação é um arquivo JSON que define como o Elastic Beanstalk deve implantar e configurar suas aplicações Windows. Esta seção fornece uma referência abrangente para todas as propriedades e opções de configuração compatíveis no esquema do manifesto.

## Estrutura do manifesto
<a name="dotnet-manifest-schema-structure"></a>

O manifesto de implantação segue um esquema JSON específico com a seguinte estrutura de nível superior:

**Example Estrutura básica do manifesto**  

```
{
  "manifestVersion": 1,
  "skipIISReset": false,
  "iisConfig": {
    "websites": [...],
    "appPools": [...]
  },
  "deployments": {
    "msDeploy": [...],
    "aspNetCoreWeb": [...],
    "custom": [...]
  }
}
```

### Propriedades de nível superior
<a name="dotnet-manifest-schema-top-level"></a>

`manifestVersion`(obrigatório)  
*Tipo*: número  
*Padrão*: 1  
*Valores válidos:* 1  
Especifica a versão do esquema do manifesto. Atualmente, apenas a versão 1 é compatível.

`skipIISReset` (opcional)  
*Tipo*: booliano  
*Padrão:* falso  
Controla se o IIS é redefinido durante as implantações da aplicação. Esse sinalizador afeta ambos os tipos de implantação: `msDeploy` e `aspNetCoreWeb`.  
*Comportamento:*  
+ *Não especificado ou `false` (padrão):* as redefinições do IIS são realizadas durante as operações de instalação, desinstalação e atualização. Esse é o comportamento tradicional.
+ *`true`:* as redefinições do IIS são ignoradas durante as operações de implantação.
*Benefícios:*  
+ *Tempo de inatividade reduzido*: as aplicações sofrem menos interrupções de serviço durante as implantações.
+ *Implantações mais rápidas*: elimina o tempo necessário para que o IIS seja totalmente reiniciado e reinicializado.
Ao usar`skipIISReset`, a [RestartAppServer](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RestartAppServer.html)operação executa uma redefinição do IIS independentemente dessa configuração de sinalizador.
*Exemplo:*  

```
{
  "manifestVersion": 1,
  "skipIISReset": true,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "archive": "dotnet-core-app.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

`deployments`(obrigatório)  
*Tipo:* Objeto  
Contém as configurações de implantação para suas aplicações. Esse objeto pode incluir os tipos de implantação `msDeploy`, `aspNetCoreWeb` e `custom`.

`iisConfig` (opcional)  
*Tipo:* Objeto  
Define as configurações do IIS a serem aplicadas antes da implantação das aplicações. Oferece suporte à configuração do site e do grupo de aplicações.

## Configuração do IIS
<a name="dotnet-manifest-schema-iis-config"></a>

A seção `iisConfig` permite que você defina as configurações do IIS antes de implantar suas aplicações. Isso inclui a configuração de grupos de aplicações com configurações específicas e a configuração de sites do IIS com associações personalizadas.

### Sites do IIS
<a name="dotnet-manifest-schema-websites"></a>

Sites do IIS permitem que você defina configurações personalizadas do site, incluindo caminhos físicos e associações de rede, antes de implantar suas aplicações.

**Considerações importantes para criar sites diferentes do IIS**  
*Ordem de configuração de sites:* os sites são configurados sequencialmente na ordem em que aparecem na matriz `websites`. A plataforma processa cada configuração do site em sequência, portanto, garanta o pedido adequado se você tiver dependências entre os sites.
*Firewall e acesso à porta:* somente a porta 80 é automaticamente exposta por meio da configuração padrão de firewall do Elastic Beanstalk para Windows. Se você configurar sites para usar portas não padrão, deverá definir regras de firewall personalizadas por meio de ebextensions ou scripts de implantação personalizados para permitir acesso externo a essas portas.

**Example Configuração de site**  

```
{
  "iisConfig": {
    "websites": [
      {
        "name": "MyCustomSite",
        "physicalPath": "C:\inetpub\wwwroot\mysite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "mysite.local"
          },
          {
            "protocol": "https",
            "port": 8443
          }
        ]
      }
    ]
  }
}
```Propriedades do site

`name`(obrigatório)  
*Tipo:* string  
O nome do site do IIS. Esse nome é usado para identificar o site no Gerenciador do IIS e deve ser exclusivo na configuração do IIS.

`physicalPath`(obrigatório)  
*Tipo:* string  
O caminho físico no servidor no qual os arquivos do site são armazenados. Esse caminho deve estar acessível ao processo de trabalho do IIS.

`bindings`(obrigatório)  
*Tipo*: matriz  
*Itens mínimos:* 1  
Uma variedade de configurações de vinculação que definem como o site responde a solicitações de rede. Cada associação especifica um protocolo, uma porta e um nome de host opcional.

#### Associações de sites
<a name="dotnet-manifest-schema-bindings"></a>

As associações de sites definem os endpoints de rede nos quais o site do IIS escutará as solicitações recebidas.

`protocol`(obrigatório)  
*Tipo:* string  
*Valores válidos:* “http”, “https”  
O protocolo usado para a vinculação.

`port`(obrigatório)  
*Tipo*: inteiro  
*Intervalo válido: 1-65535*  
O número da porta na qual o site receberá solicitações.

`hostName` (opcional)  
*Tipo:* string  
O nome do host (nome de domínio) para a associação.

### Grupos de aplicações
<a name="dotnet-manifest-schema-app-pools"></a>

Os grupos de aplicações fornecem isolamento entre aplicações e permitem que você defina as configurações de runtime para grupos de aplicações.

**Example Configuração do grupo de aplicações**  

```
{
  "iisConfig": {
    "appPools": [
      {
        "name": "MyAppPool",
        "enable32Bit": false,
        "managedPipelineMode": "Integrated",
        "managedRuntimeVersion": "v4.0",
        "queueLength": 1000,
        "cpu": {
          "limitPercentage": 80,
          "limitAction": "Throttle",
          "limitMonitoringInterval": 5
        },
        "recycling": {
          "regularTimeInterval": 1440,
          "requestLimit": 10000,
          "memory": 1048576,
          "privateMemory": 524288
        }
      }
    ]
  }
}
```Propriedades do grupo de aplicações

`name`(obrigatório)  
*Tipo:* string  
O nome do grupo de aplicações. Esse nome é usado para referenciar o grupo nas configurações de implantação.

`enable32Bit` (opcional)  
*Tipo*: booliano  
Permite que uma aplicação de 32 bits seja executada em uma versão de 64 bits do Windows. Defina como `true` para aplicações legadas que exigem compatibilidade de 32 bits.

`managedPipelineMode` (opcional)  
*Tipo:* string  
*Valores válidos:* “Integrado”, “Clássico”  
Especifica o modo de processamento de solicitações para o grupo de aplicações.

`managedRuntimeVersion` (opcional)  
*Tipo:* string  
*Valores válidos:* “Sem código gerenciado”, “v2.0", “v4.0"  
Especifica a versão do .NET Framework para o grupo de aplicações.

`queueLength` (opcional)  
*Tipo*: inteiro  
Número máximo de solicitações que o HTTP.sys enfileira para o grupo de aplicações antes de rejeitar solicitações adicionais.

#### Configuração da CPU
<a name="dotnet-manifest-schema-cpu-config"></a>

O objeto `cpu` configura os limites de uso da CPU e o monitoramento do grupo de aplicações.

`limitPercentage` (opcional)  
*Tipo*: número  
Porcentagem máxima de tempo de CPU que os processos de trabalho no grupo de aplicações podem consumir.

`limitAction` (opcional)  
*Tipo:* string  
*Valores válidos:* "NoAction“, “KillW3wp”, “Throttle”, "” ThrottleUnderLoad  
Ação a ser realizada quando o limite de CPU for atingido.

`limitMonitoringInterval` (opcional)  
*Tipo*: número  
Período de redefinição (em minutos) para monitoramento da CPU e limites de controle de utilização.

#### Configuração de reciclagem
<a name="dotnet-manifest-schema-recycling-config"></a>

O objeto `recycling` configura quando e como os processos de trabalho do grupo de aplicações são reciclados.

`regularTimeInterval` (opcional)  
*Tipo*: inteiro  
Intervalo de tempo (em minutos) após o qual o grupo de aplicações é reciclado. Defina como 0 para desabilitar a reciclagem baseada em tempo.

`requestLimit` (opcional)  
*Tipo*: inteiro  
Número máximo de solicitações que o grupo de aplicações processa antes da reciclagem.

`memory` (opcional)  
*Tipo*: inteiro  
Quantidade de memória virtual (em kilobytes) que aciona a reciclagem do processo de trabalho.

`privateMemory` (opcional)  
*Tipo*: inteiro  
Quantidade de memória privada (em kilobytes) que aciona a reciclagem do processo de trabalho.

## Tipos de implantação
<a name="dotnet-manifest-schema-deployments"></a>

O objeto `deployments` contém matrizes de configurações de implantação para diferentes tipos de aplicações. Cada tipo de implantação tem propriedades e casos de uso específicos.

### MSDeploy implantações
<a name="dotnet-manifest-schema-msdeploy"></a>

MSDeploy as implantações são usadas para aplicativos do.NET Framework tradicionais que podem ser implantados usando o Web Deploy ()MSDeploy.

**Example MSDeploy configuração de implantação**  

```
{
  "deployments": {
    "msDeploy": [
      {
        "name": "WebApp",
        "description": "Main web application",
        "parameters": {
          "appBundle": "webapp.zip",
          "iisPath": "/",
          "appPool": "DefaultAppPool"
        }
      }
    ]
  }
}
```MSDeploy propriedades de implantação

`name`(obrigatório)  
*Tipo:* string  
Nome exclusivo da implantação. Esse nome deve ser exclusivo entre todas as implantações no manifesto.

`description` (opcional)  
*Tipo:* string  
Descrição legível por humanos da implantação.

`parameters`(obrigatório)  
*Tipo:* Objeto  
Parâmetros de configuração para a MSDeploy operação.

`scripts` (opcional)  
*Tipo:* Objeto  
PowerShell scripts para execução em vários estágios do ciclo de vida da implantação.

#### MSDeploy parâmetros
<a name="dotnet-manifest-schema-msdeploy-parameters"></a>

`appBundle`(obrigatório)  
*Tipo:* string  
Caminho para o pacote de aplicações (arquivo ZIP) em relação ao arquivo de manifesto. Esse pacote contém os arquivos da aplicação a serem implantados.

`iisWebSite` (opcional)  
*Tipo:* string  
*Padrão:* “Site padrão”  
O site do IIS no qual implantar a aplicação. Por padrão, as aplicações são implantadas no “Site padrão”. Opcionalmente, você pode especificar um nome de site diferente, como aquele configurado na seção `iisConfig.websites`.

`iisPath` (opcional)  
*Tipo:* string  
*Padrão:* “/”  
Caminho do diretório virtual no IIS em que a aplicação será implantada. Use “/” para o caminho raiz ou “/api” para um subdiretório.

`appPool` (opcional)  
*Tipo:* string  
Nome do grupo de aplicações para executar essa aplicação.

### Implantações do ASP.NET Core
<a name="dotnet-manifest-schema-aspnetcore"></a>

As implantações ASP.NET Core são projetadas especificamente para aplicações .NET Core e o .NET 5\$1.

**Example Configuração da implantação de ASP.NET Core**  

```
{
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "CoreAPI",
        "description": "ASP.NET Core Web API",
        "parameters": {
          "appBundle": "coreapi.zip",
          "iisPath": "/api",
          "appPool": "CoreAppPool"
        }
      }
    ]
  }
}
```

As implantações do ASP.NET Core usam a mesma estrutura de propriedades das MSDeploy implantações, com a principal diferença sendo o ambiente de tempo de execução e o modelo de hospedagem usados para o aplicativo.Parâmetros da implantação de ASP.NET Core

`appBundle`(obrigatório)  
*Tipo:* string  
Caminho até o pacote de aplicações em relação ao arquivo manifesto. Pode ser um arquivo ZIP ou um caminho de diretório contendo a aplicação ASP.NET Core publicada.

`iisWebSite` (opcional)  
*Tipo:* string  
*Padrão:* “Site padrão”  
O site do IIS no qual implantar a aplicação ASP.NET Core. Por padrão, as aplicações são implantadas no “Site padrão”. Opcionalmente, você pode especificar um nome de site diferente, como aquele configurado na seção `iisConfig.websites`.

`iisPath` (opcional)  
*Tipo:* string  
*Padrão:* “/”  
Caminho de diretório virtual no IIS para a aplicação ASP.NET Core.

`appPool` (opcional)  
*Tipo:* string  
Grupo de aplicações da aplicação ASP.NET Core. O grupo será configurado adequadamente para hospedagem de ASP.NET Core.

### implantações personalizadas
<a name="dotnet-manifest-schema-custom"></a>

As implantações personalizadas fornecem controle total sobre o processo de implantação por meio de PowerShell scripts. Esse tipo de implantação é útil para cenários complexos que exigem instalação, configuração ou lógica de implantação personalizadas.

**Example Configuração de implantação personalizada**  

```
{
  "deployments": {
    "custom": [
      {
        "name": "CustomService",
        "description": "Custom Windows service deployment",
        "architecture": 32,
        "scripts": {
          "install": {
            "file": "install-service.ps1"
          },
          "restart": {
            "file": "restart-service.ps1"
          },
          "uninstall": {
            "file": "uninstall-service.ps1",
            "ignoreErrors": true
          }
        }
      }
    ]
  }
}
```Propriedades de implantação personalizadas

`name`(obrigatório)  
*Tipo:* string  
Nome exclusivo da implantação personalizada.

`description` (opcional)  
*Tipo:* string  
Descrição da implantação personalizada.

`architecture` (opcional)  
*Tipo*: inteiro  
*Padrão:* 32  
*Valores válidos:* 32, 64  
A especificação de arquitetura para o modo de execução de scripts do PowerShell

`scripts`(obrigatório)  
*Tipo:* Objeto  
PowerShell scripts que definem o comportamento da implantação. Implantações personalizadas oferecem suporte a tipos de script adicionais em comparação com outros tipos de implantação.

## Scripts de implantação
<a name="dotnet-manifest-schema-scripts"></a>

Os scripts de implantação são PowerShell scripts executados em pontos específicos durante o ciclo de vida da implantação. Diferentes tipos de implantação oferecem suporte a diferentes conjuntos de eventos de scripts.

### Eventos de script
<a name="dotnet-manifest-schema-script-events"></a>

Os seguintes eventos de scripts estão disponíveis dependendo do tipo de implantação:Scripts de implantação padrão (MSDeploy e aspNetCore Web)

`preInstall`  
É executado antes que a aplicação seja instalada ou atualizada.

`postInstall`  
É executado depois que a aplicação é instalada ou atualizada.

`preRestart`  
É executado antes que a aplicação seja reiniciada.

`postRestart`  
É executado depois que a aplicação é reiniciada.

`preUninstall`  
É executado antes da desinstalação da aplicação.

`postUninstall`  
É executado após a desinstalação da aplicação.Scripts de implantação personalizados (somente implantações personalizadas)

`install`  
Script de instalação principal para implantações personalizadas. Esse script é responsável pela instalação da aplicação ou serviço.

`restart`  
Script para reiniciar a aplicação ou serviço. Chamado quando o ambiente é reiniciado.

`uninstall`  
Script para desinstalar a aplicação ou serviço. Chamado durante o encerramento do ambiente ou a remoção da aplicação.

### Propriedades do script
<a name="dotnet-manifest-schema-script-properties"></a>

Cada script é definido como um objeto com as seguintes propriedades:

`file`(obrigatório)  
*Tipo:* string  
Caminho para o arquivo de PowerShell script em relação ao arquivo de manifesto. O script deve ter uma extensão `.ps1`.

`ignoreErrors` (opcional)  
*Tipo*: booliano  
*Padrão:* falso  
Quando definido como `true`, a implantação continua mesmo se o script falhar. Use para scripts não críticos ou operações de limpeza.

**Example Exemplo de configuração de script**  

```
{
  "scripts": {
    "preInstall": {
      "file": "backup-config.ps1",
      "ignoreErrors": true
    },
    "postInstall": {
      "file": "configure-app.ps1"
    }
  }
}
```