Personalizar software em Windows Servers - 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á.

Personalizar software em Windows Servers

Você pode personalizar e configurar o software do qual seu aplicativo depende. Estes arquivos podem ser dependências exigidas pelo aplicativo, por exemplo, pacotes adicionais ou serviços que precisam ser executados. Para obter informações gerais sobre como personalizar e configurar ambientes do Elastic Beanstalk, consulte Configurar ambientes do Elastic Beanstalk.

nota

YAMLdepende de uma indentação consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.

Os arquivos de configuração oferecem suporte às seguintes chaves que afetam o servidor Windows no qual seu aplicativo é executado.

As chaves são processadas na ordem em que aparecem listadas aqui.

nota

Mais antigo (sem versão). NETas versões da plataforma não processam os arquivos de configuração na ordem correta. Saiba mais em Migrar entre versões principais da plataforma do Windows Server do Elastic Beanstalk.

Assista a seus eventos de ambiente enquanto desenvolve e testa os arquivos de configuração. O Elastic Beanstalk ignora um arquivo de configuração que contém erros de validação, como uma chave inválida, e não processa nenhuma das outras chaves no mesmo arquivo. Quando isso acontece, o Elastic Beanstalk adiciona um evento de aviso ao log de eventos.

Pacotes

Use a chave packages para fazer download e instalar aplicativos e componentes predefinidos.

Em ambientes Windows, o Elastic Beanstalk suporta o download e a instalação de pacotes. MSI (Os ambientes do Linux são compatíveis com outros gerenciadores de pacotes. Para obter detalhes, consulte Pacotes na página Personalizar software em servidores Linux).

Você pode referenciar qualquer local externo, como um objeto do Amazon Simple Storage Service (Amazon S3), desde URL que esteja acessível publicamente.

Se você especificar vários pacotes msi:, sua ordem de instalação não será garantida.

Sintaxe

Especifique um nome de sua escolha como nome do pacote e URL a para um local de MSI arquivo como valor. Você pode especificar vários pacotes sob a chave msi:.

packages: msi: package name: package url ...

Exemplos

O exemplo a seguir especifica um URL para baixar o mysql. https://dev.mysql.com/

packages: msi: mysql: https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-8.0.11.msi

O exemplo a seguir especifica um objeto do Amazon S3 como MSI o local do arquivo.

packages: msi: mymsi: https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.msi

Origens

Use a sources chave para baixar um arquivo de arquivamento de um público URL e descompactá-lo em um diretório de destino na EC2 instância.

Sintaxe

sources: target directory: location of archive file

Formatos com compatibilidade

Em ambientes Windows, o Elastic Beanstalk é compatível com o formato .zip. (Os ambientes do Linux são compatíveis com outros formatos. Para obter detalhes, consulte Origens na página Personalizar software em servidores Linux.)

Você pode referenciar qualquer local externo, como um objeto do Amazon Simple Storage Service (Amazon S3), desde URL que esteja acessível publicamente.

Exemplo

O exemplo a seguir baixa um arquivo .zip público do Amazon S3 e o descompacta no c:/myproject/myapp.

sources: "c:/myproject/myapp": https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.zip

Arquivos

Use a files chave para criar arquivos na EC2 instância. O conteúdo pode estar embutido no arquivo de configuração ou de umURL. Os arquivos são gravados em disco em ordem lexicográfica. Para fazer download de arquivos privados do Amazon S3, forneça o perfil da instância para autorização.

Sintaxe

files: "target file location on disk": source: URL authentication: authentication name: "target file location on disk": content: | this is my content encoding: encoding format

Opções

content

(Opcional) Uma string.

source

(Opcional) A URL partir da qual o arquivo é carregado. Essa opção não pode ser especificada com a chave de conteúdo.

encoding

(Opcional) O formato de codificação. Essa opção só é usada para um valor de chave de conteúdo fornecido. O valor padrão é plain.

Valores válidos: plain | base64

authentication

(Opcional) O nome de um método de autenticação do AWS CloudFormation para usar. É possível adicionar métodos de autenticação aos metadados do grupo de Auto Scaling com a chave Resources.

Exemplos

O exemplo a seguir mostra as duas maneiras de fornecer conteúdo de arquivo: de um URL ou embutido no arquivo de configuração.

files: "c:\\targetdirectory\\targetfile.txt": source: http://foo.bar/myfile "c:/targetdirectory/targetfile.txt": content: | # this is my file # with content
nota

Se você usar uma barra invertida (\) no caminho do arquivo, deverá precedê-la com outra barra invertida (caractere de escape), como mostrado no exemplo anterior.

O exemplo a seguir usa a chave de recursos para adicionar um método de autenticação chamado S3Auth e o utiliza para baixar um arquivo privado de um Amazon S3:

files: "c:\\targetdirectory\\targetfile.zip": source: https://elasticbeanstalk-us-east-2-123456789012.s3.amazonaws.com/prefix/myfile.zip authentication: S3Auth Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Auth: type: "s3" s: ["amzn-s3-demo-bucket"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "IamInstanceProfile" DefaultValue: "aws-elasticbeanstalk-ec2-role"

Comandos

Use a commands chave para executar comandos na EC2 instância. Os comandos são processados em ordem alfabética por nome e executados antes que o aplicativo e o servidor Web sejam configurados e o arquivo de versão do aplicativo seja extraído.

Os comandos especificados são executados como usuário administrador.

Para solucionar problemas com seus comandos, você pode encontrar a saída deles nos logs da instância.

Sintaxe

commands: command name: command: command to run

Opções

command

Uma matriz ou uma string que especifica o comando a ser executado. Se você usar uma matriz, não precisará de caracteres de espaço de escape ou de aspas para parâmetros de comandos.

cwd

(Opcional) O diretório de trabalho. Por padrão, o Elastic Beanstalk tenta encontrar o local do diretório do projeto. Se não for encontrado, ele usará c:\Windows\System32 como padrão.

env

(Opcional) Define variáveis de ambiente para o comando. Essa propriedade substitui, em vez de anexar, o ambiente existente.

ignoreErrors

(Opcional) Um valor booliano que determina se outros comandos deverão ser executados se houver falha no comando incluído na chave command (retorna um valor diferente de zero). Defina esse valor como true para continuar executando os comandos mesmo se houver falha no comando. Defina-o como false para interromper a execução dos comandos em caso de falha no comando. O valor padrão é false.

test

(Opcional) Um comando que deve retornar o valor true (código de saída 0) para que o Elastic Beanstalk processe o comando incluído na chave command.

waitAfterCompletion

(Opcional) Quantos segundos aguardar para executar o próximo comando depois que o comando é concluído. Se o sistema exigir reinicialização após a conclusão do comando, ele será reinicializado após o número de segundos especificado. Se o sistema for reinicializado como resultado de um comando, o Elastic Beanstalk recuperará até o ponto depois do comando no arquivo de configuração. O valor padrão é 60 segundos. Você também pode especificar forever, mas o sistema deve ser reinicializado antes de você executar outro comando.

Exemplo

O exemplo a seguir salva a saída do comando set no arquivo especificado. Se houver um comando subsequente, o Elastic Beanstalk o executará logo após o término deste comando. Se esse comando exigir reinicialização, o Elastic Beanstalk reinicializará a instância logo após o término do comando.

commands: test: command: set > c:\\myapp\\set.txt waitAfterCompletion: 0

Serviços

Use a chave services para definir quais serviços deverão ser iniciados ou interrompidos quando a instância for executada. A chave services também permite especificar dependências em fontes, pacotes e arquivos para que, se for necessária uma reinicialização devido à instalação de arquivos, o Elastic Beanstalk reinicie o serviço.

Sintaxe

services: windows: name of service: files: - "file name" sources: - "directory" packages: name of package manager: "package name[: version]" commands: - "name of command"

Opções

ensureRunning

(Opcional) Defina true para garantir que o serviço esteja sendo executado após o Elastic Beanstalk ser concluído.

Defina false para garantir que o serviço não esteja em execução depois que o Elastic Beanstalk for concluído.

Omita essa chave para não fazer nenhuma alteração no estado do serviço.

enabled

(Opcional) Defina como true para garantir que o serviço seja iniciado automaticamente na inicialização.

Defina como false para garantir que o serviço não seja iniciado automaticamente na inicialização.

Omita essa chave para não fazer nenhuma alteração nessa propriedade.

files

Uma lista de arquivos. Se o Elastic Beanstalk alterar um diretamente por meio do bloco de arquivos, o serviço será reiniciado.

sources

Uma lista de diretórios. Se o Elastic Beanstalk expandir um arquivo em um desses diretórios, o serviço será reiniciado.

packages

Um mapa do gerenciador de pacotes para uma lista de nomes de pacotes. Se o Elastic Beanstalk instalar ou atualizar um desses pacotes, o serviço será reiniciado.

commands

Uma lista de nomes de comandos. Se o Elastic Beanstalk executar o comando especificado, o serviço será reiniciado.

Exemplo

services: windows: myservice: enabled: true ensureRunning: true

Comandos de contêiner

Use a chave container_commands para executar comandos que afetam o código-fonte do seu aplicativo. Os comandos de contêiner são executados depois que o aplicativo e o servidor Web são configurados e o arquivo de versão do aplicativo é extraído, mas antes da implantação da versão do aplicativo. Os comandos que não são de contêiner e outras operações de personalização são executados antes da extração do código-fonte do aplicativo.

Os comandos de contêiner são executados no diretório de preparação, onde seu código-fonte é extraído antes de ser implantado no servidor de aplicativo. Quaisquer alterações que você fizer em seu código-fonte no diretório de preparação com um comando de contêiner serão incluídas quando a fonte for implantada em seu local final.

Para solucionar problemas com seus comandos de contêiner, você pode encontrar a saída deles nos logs da instância.

Use a opção leader_only para somente executar o comando em uma única instância ou configure test para somente executar o comando quando um comando de teste é avaliado como true. Os comandos de contêiner somente líderes são executados apenas durante a criação do ambiente e as implantações, enquanto outros comandos e operações de personalização de servidor são executados sempre que uma instância é provisionada ou atualizada. Os comandos de contêiner exclusivos do Leader não são executados devido a alterações na configuração do lançamento, como uma alteração no AMI ID ou no tipo de instância.

Sintaxe

container_commands: name of container_command: command: command to run

Opções

command

Uma string ou matriz de strings para execução.

env

(Opcional) Defina variáveis de ambiente antes de executar o comando, substituindo qualquer valor existente.

cwd

(Opcional) O diretório de trabalho. Por padrão, este é o diretório de preparação do aplicativo descompactado.

leader_only

(Opcional) Somente execute o comando em uma única instância escolhida pelo Elastic Beanstalk. Os comandos de contêiner somente líderes são executados antes dos outros comandos de contêiner. Um comando pode ser somente líder ou ter um test, mas não as duas coisas (leader_only tem precedência).

test

(Opcional) Execute um comando de teste que deve retornar true para executar o comando de contêiner. Um comando pode ser somente líder ou ter um test, mas não as duas coisas (leader_only tem precedência).

ignoreErrors

(Opcional) Não falhar implantações se o comando de contêiner retornar um valor diferente de 0 (êxito). Defina como true para habilitar.

waitAfterCompletion

(Opcional) Quantos segundos aguardar para executar o próximo comando depois que o comando é concluído. Se o sistema exigir reinicialização após a conclusão do comando, ele será reinicializado após o número de segundos especificado. Se o sistema for reinicializado como resultado de um comando, o Elastic Beanstalk recuperará até o ponto depois do comando no arquivo de configuração. O valor padrão é 60 segundos. Você também pode especificar forever, mas o sistema deve ser reinicializado antes de você executar outro comando.

Exemplo

O exemplo a seguir salva a saída do comando set no arquivo especificado. O Elastic Beanstalk executa o comando em uma instância e reinicializa a instância logo após o término do comando.

container_commands: foo: command: set > c:\\myapp\\set.txt leader_only: true waitAfterCompletion: 0