前提条件
CodeBuildへの権限
CodeBuildに対してフル権限があること。
AWS CLIのバージョン
以下のバージョンで動作確認済
- AWS CLI 1.11.57
コマンド
aws --version
結果(例):
aws-cli/1.11.70 Python/2.7.12 Linux/4.4.11-23.53.amzn1.x86_64 botocore/1.5.33
バージョンが古い場合は最新版に更新しましょう。
コマンド
sudo -H pip install -U awscli
- 準備
=======
まず変数の確認をします。
変数の確認
cat << ETX
AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
AWS_DEFAULT_REGION: (0.2) ${AWS_DEFAULT_REGION}
ETX
結果(例):
AWS_DEFAULT_PROFILE: (0.1) <CodeBuildにフル権限のあるプロファイル>
AWS_DEFAULT_REGION: (0.2) ap-northeast-1
変数が入っていない、適切でない場合は、それぞれの手順番号について作業を
行います。
0.1. プロファイルの指定
プロファイルの一覧を確認します。
コマンド
cat ~/.aws/credentials \
| grep '\[' \
| sed 's/\[//g' | sed 's/\]//g'
結果(例):
iamFull-prjz-mbpr13
<CodeBuildにフル権限のあるプロファイル>
変数の設定
export AWS_DEFAULT_PROFILE='<CodeBuildにフル権限のあるプロファイル>'
0.2. リージョンの指定
変数の設定
export AWS_DEFAULT_REGION='ap-northeast-1'
最終確認
変数の確認
cat << ETX
AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
AWS_DEFAULT_REGION: (0.2) ${AWS_DEFAULT_REGION}
ETX
結果(例):
AWS_DEFAULT_PROFILE: (0.1) <CodeBuildにフル権限のあるプロファイル>
AWS_DEFAULT_REGION: (0.2) ap-northeast-1
- 事前作業
===========
1.1. プロジェクト名の指定
変数の設定
CODEB_PROJECT_NAME='codebuild-demo-java-20170417'
変数の設定
ARRAY_CODEB_PROJECT_NAMES="${CODEB_PROJECT_NAME}" \
&& echo ${ARRAY_CODEB_PROJECT_NAMES}
コマンド
aws codebuild batch-get-projects \
--names "${ARRAY_CODEB_PROJECT_NAMES}"
結果(例):
{
"projectsNotFound": [],
"projects": [
{
"name": "codebuild-demo-java-20170417",
"serviceRole": "arn:aws:iam::XXXXXXXXXXXX:role/hoge",
"tags": [],
"artifacts": {
"namespaceType": "NONE",
"packaging": "NONE",
"type": "S3 ",
"location": "artifact-20170417-XXXXXXXXXXXX",
"name": "codebuild-demo-java-20170417"
},
"lastModified": 14xxxxxxxx.000,
"timeoutInMinutes": 60,
"created": 14xxxxxxxx.000,
"environment": {
"computeType": "BUILD_GENERAL1_SMALL",
"image": "aws/codebuild/java:openjdk-8",
"type": "LINUX_CONTAINER",
"environmentVariables": []
},
"source": {
"type": "S3",
"location": "src-20170417-XXXXXXXXXXXX/MessageUtil.zip"
},
"encryptionKey": "arn:aws:kms:ap-northeast-1:XXXXXXXXXXXX:alias/aws/s3",
"arn": "arn:aws:codebuild:ap-northeast-1:XXXXXXXXXXXX:project/codebuild-demo-java-20170417",
"description": "codebuild demo (java)"
}
]
}
- プロジェクトの削除
=====================
変数の確認
cat << ETX
CODEB_PROJECT_NAME: ${CODEB_PROJECT_NAME}
ETX
コマンド
aws codebuild delete-project \
--name ${CODEB_PROJECT_NAME}
結果(例):
(戻り値なし)
- 事後作業
===========
同名のプロジェクトの不存在確認します。
コマンド
aws codebuild batch-get-projects \
--names "${ARRAY_CODEB_PROJECT_NAMES}"
結果(例):
{
"projectsNotFound": [
"codebuild-demo-java-20170417"
],
"projects": []
}