embalagem sam contra embalagem de turvação aws
- META-INF
- com / example / etc, class files Logback.groovy, outros recursos Lib, que contém todos os meus frascos.
aws cloudformation
, Eu tenho esta estrutura zip( que é essencialmente o meu git acordo de recompra):
- README.md
- construir/
- construir.gradle Buildspec.yml
- eventos
- gradle /
- gradlew Gradlew.bat
- src /
- modelo.yml
Nota: Esta estrutura alternativa acontece mesmo fora do CodeBuild, por isso duvido que tenha alguma coisa a ver com o que está em buildspec.yml
. Eu posso reproduzir as duas estruturas simplesmente invocando os dois comandos de pacote diferentes no meu desktop.
qualquer ideias por que há uma diferença? Gostaria de compreendê-lo, especialmente porque os médicos dizem que devem ser iguais, antes de mudar o meu buildspec.yml
para usar sam deploy
.
1 answers
O "pacote sam" é tão estúpido como o "pacote de formação de nuvens aws". A diferença vem de 'Sam build' que irá construir um novo modelo.yaml e colocar em ' {app_dir}/.aws-sam / build / template.yaml com as dependências.
Este novo ' modelo.o yaml é usado por ' pacote sam '(em vez de ' {app_dir}/template.yaml') adicionando assim as dependências necessárias no Pacote. Investigue por favor a pasta ' {app_dir}/.aws-sam/ build / ' para saber mais.
Se fizeres "cloudformation" pacote 'na pasta' {app_dir}/.aws-sam / build 'você terá o mesmo resultado que'Pacote sam'.
Usar o 'pacote sam' com o --debug para ver qual o ficheiro de modelo que está a ler:
$ sam package --output-template-file packaged.yaml --s3-bucket {bucket_name} --debug
Using SAM Template at /home/ec2-user/sam-app/.aws-sam/build/template.yaml
O 'pacote de formação de nuvens aws' irá ler o ficheiro do modelo a partir do qual você especifica:
$ aws cloudformation package --template-file template.yaml --output-template-file packaged.yaml --s3-bucket {my-bucket}