J'ai créé un projet CodeBuild qui utilise une image docker pour node8 . Le but de ce projet CodeBuild est de faire des tests unitaires. Il faut un artefact d'entrée de CodeCommit. Et dans le buildspec.yml, il exécute une commande de test.
Ceci est mon (simple) fichier buildspec:
version: 0.2
phases:
install:
commands:
- echo "install phase started"
- npm install
- echo "install phase ended"
pre_build:
commands:
- echo "pre_build aka test phase started"
- echo "mocha unit test"
- npm test
- echo "mocha unit test ended"
build:
commands:
- echo "build phase started"
- echo "build complete"
La construction échoue à la phase DOWNLOAD_SOURCE avec les éléments suivants:
PHASE - DOWNLOAD_SOURCE
Heure de début Il y a 2 minutes
Heure de fin Il y a 2 minutes
Message Accès refusé
Les seuls journaux dans les journaux de construction sont les suivants
[Conteneur] 2018/01/12 11:30:22 En attente de l'agent ping
[Conteneur] 2018/01/12 11:30:22 En attente de DOWNLOAD_SOURCE
Merci d'avance.
Capture d'écran des stratégies CodeBuild.
J'ai trouvé un correctif. C'était un problème avec mes permissions. J'ai ajouté ceci pour le faire fonctionner.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Resource": [
"arn:aws:logs:eu-west-1:723698621383:log-group:/aws/codebuild/project",
"arn:aws:logs:eu-west-1:723698621383:log-group:/aws/codebuild/project:*"
],
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
]
},
{
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::codepipeline-eu-west-1-*"
],
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectVersion"
]
},
{
"Effect": "Allow",
"Action": [
"ssm:GetParameters"
],
"Resource": "arn:aws:ssm:eu-west-1:723698621383:parameter/CodeBuild/*"
}
]
}
J'ai eu une erreur similaire et publierai mon correctif au cas où cela aiderait quelqu'un d'autre. J'utilisais CodePipeline et j'avais deux versions distinctes en cours. La construction n ° 1 achève sa construction et l'artefact de sortie correspondant à l'artefact d'entrée de la construction n ° 2. La construction n ° 2 échouait dans la phase DOWNLOAD_SOURCE avec l'erreur suivante:
AccessDenied: Access Denied status code: 403
Le problème était que dans mes spécifications de construction pour la construction n ° 1, les artefacts n'étaient pas définis. Après avoir appelé les fichiers/dossiers d'artefact dans la construction n ° 1, la construction n ° 2 a été en mesure de télécharger la source sans problème.