Referência de esquema de manifesto de implantação - AWS Elastic Beanstalk

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

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

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

exemplo Estrutura básica do manifesto
{ "manifestVersion": 1, "skipIISReset": false, "iisConfig": { "websites": [...], "appPools": [...] }, "deployments": { "msDeploy": [...], "aspNetCoreWeb": [...], "custom": [...] } }

Propriedades de nível superior

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.

Behavior:

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

nota

Ao usar skipIISReset, a operação RestartAppServer executa uma redefiniçãodo 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 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

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.

exemplo 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

Número mínimo de itens: 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

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

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.

exemplo 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

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

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

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.

Implantações de MSDeploy

As implantações de MSDeploy são usadas para aplicações tradicionais do .NET Framework que podem ser implantadas usando o Web Deploy (MSDeploy).

exemplo Configuração da implantação do MSDeploy
{ "deployments": { "msDeploy": [ { "name": "WebApp", "description": "Main web application", "parameters": { "appBundle": "webapp.zip", "iisPath": "/", "appPool": "DefaultAppPool" } } ] } }
Propriedades da implantação de MSDeploy
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 operação MSDeploy.

scripts (opcional)

Tipo: Objeto

Scripts do PowerShell para execução em vários estágios do ciclo de vida das implantações.

Parâmetros de MSDeploy

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

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

exemplo 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 de ASP.NET Core usam a mesma estrutura de propriedades das implantações MSDeploy, com a principal diferença sendo o ambiente de runtime e o modelo de hospedagem usados para a aplicação.

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

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

exemplo 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

Scripts do PowerShell que definem o comportamento de 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

Scripts de implantação são scripts do PowerShell 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

Os seguintes eventos de scripts estão disponíveis dependendo do tipo de implantação:

Scripts de implantação padrão (msDeploy e aspNetCoreWeb)
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

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

file (obrigatório)

Tipo: string

Caminho até o arquivo de script do PowerShell em relação ao arquivo 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.

exemplo Exemplo de configuração de script
{ "scripts": { "preInstall": { "file": "backup-config.ps1", "ignoreErrors": true }, "postInstall": { "file": "configure-app.ps1" } } }