#amazon-s3 #aws-code-deploy #aws-codebuild #artifacts
#amazon-s3 #aws-code-deploy #aws-codebuild #артефакты
Вопрос:
У меня проблема, из-за которой каждый раз, когда я хочу использовать AWS CodeDeploy, мне приходится переходить на S3 и вручную делать файл ревизии общедоступным, поскольку CodeBuild создает артефакт, который не является общедоступным.
Есть ли способ заставить CodeBuild создать общедоступный артефакт в S3? Или есть способ развернуть непубличный артефакт с помощью CodeDeploy?
Я попытался запустить некоторые команды aws s3api на этапе post_build, но, похоже, они завершились неудачей с кодом выхода 255.
Ответ №1:
Вам необходимо обновить свою политику корзины для корзины S3.
{
"Version": "2012-10-17",
"Id": "Policy1sdhgshjg",
"Statement": [
{
"Sid": "Stmt1asdasdadasd",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket_name/*"
}
]
}
Это сделает все объекты в вашей корзине общедоступными.
Для получения дополнительной информации вы можете прочитать другие примеры политик корзины.
Примечание: я предполагаю, что вы заблокировали общедоступный доступ в своем ведре
Комментарии:
1. Пришлось добавить оба: политику для роли iam и политику для корзины
Ответ №2:
У каждого приложения Code Deploy будет еще одна группа развертывания. Каждой группе развертывания может быть назначена роль as service IAM.
Для этой служебной роли мы можем предоставить разрешение на чтение корзины S3, чтобы нам не приходилось создавать артефакт каждый раз, когда он создается.
Пример разрешения на чтение будет выглядеть следующим образом.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetObject*",
"s3:GetBucket*"
],
"Resource": [
"arn:aws:s3:::woohoo-auto-code-deploy/prod-QC-darpan-be/BuildArtif/*",
"arn:aws:s3:::woohoo-auto-code-deploy/prod-QC-darpan-ui/BuildArtif/*"
],
"Effect": "Allow"
}
]
}
Комментарии:
1. Вы имеете в виду CodeDeploy?
2. ДА.. Отредактированный ответ.
3. hmm добавил встроенную политику для чтения всех файлов в моем ведре, но она по-прежнему не развертывает новый код (такой же, как предыдущий). Когда я делаю артефакт общедоступным на s3, он развертывает новый код. Интересно, есть ли что-нибудь еще, кроме этой политики, которую необходимо включить
4. может ли быть так, что # wget нельзя использовать для частных артефактов?
5. Пришлось добавить оба: политику для роли iam и политику для корзины