É aceitável incluir scripts do Powershell diretamente nos appspec.yml
arquivos?
version: 0.0
os: windows
files:
- source: ./MyWebsiteFiles
destination: /MyWebsite
hooks:
AfterInstall:
- location: /Scripts/MyScript.ps1
timeout: 300
Estou executando um ps1
arquivo que é executado instantaneamente por meio do console do Powershell na instância do EC2, mas minha implantação está travando ou falhando no ponto de execução do script do Powershell.
Não parece haver uma lista de tipos de arquivo aceitáveis que podem ser incluídos em um appspec.yml
arquivo, pelo que posso ver na documentação do CodeDeploy.
Obrigado pela ajuda.
SIM!
Embora eu não tenha conseguido encontrar uma lista definitiva dos tipos de script aceitáveis, parece que a resposta é
Yes
- os scripts do Powershell.ps1
são aceitáveis e serão executados se incluídos noappspec.yml
arquivo.Meu script Powershell não estava funcionando de forma consistente até que eu adicionei o código conforme recomendado na página de solução de problemas por @kafka, então meu script agora contém o seguinte acima dele:
Ainda não tenho certeza se meu script é compatível apenas com a versão de 64 bits do Powershell ou como descobrir, mas funciona com essa modificação.
Espero que isso ajude alguém.
Atualização: uma nota sobre a localização do arquivo
Gostaria de destacar um problema que enfrentei ao executar
.ps1
scripts. Pela minha experiência, osps1
scripts devem ser colocados na raiz do seu pacote de implantação (na mesma pasta que o arquivo appspec.yml). Caso contrário, a execução do script pode falhar e a implantação será exibida como 'Bem-sucedida' no CodeDeploy. Mais informações sobre isso aqui .Sim, pode, mas, a menos que você defina uma variável, os erros encontrados durante a execução do script não interromperão sua implantação.
Veja este link para mais detalhes:
https://aws.amazon.com/premiumsupport/knowledge-center/powershell-cmdlet-errors-codedeploy/