Amazon web services 代码构建YML格式和语法
我已经在ubuntu服务器上建立并运行了一个codebuild项目,用于从快照克隆rds数据库服务器。它的很多功能都如预期的那样工作,但是当我尝试在buildspec.yml中包含以下类似的内容时,工作失败了,它不喜欢这个命令 猜测这份工作不喜欢格式,但却有点不知所措Amazon web services 代码构建YML格式和语法,amazon-web-services,aws-codebuild,Amazon Web Services,Aws Codebuild,我已经在ubuntu服务器上建立并运行了一个codebuild项目,用于从快照克隆rds数据库服务器。它的很多功能都如预期的那样工作,但是当我尝试在buildspec.yml中包含以下类似的内容时,工作失败了,它不喜欢这个命令 猜测这份工作不喜欢格式,但却有点不知所措 -while[$(aws rds描述数据库集群——数据库集群标识符mysql-dev-20201009 | grep-c'“状态”:“可用”)-eq 0];做呼应“睡眠60秒”;睡眠60;完成 以下是完整的buildspec文件:
-while[$(aws rds描述数据库集群——数据库集群标识符mysql-dev-20201009 | grep-c'“状态”:“可用”)-eq 0];做呼应“睡眠60秒”;睡眠60;完成
以下是完整的buildspec文件:
Version: 0.2
phases:
install:
runtime-versions:
python: 3.7
pre_build:
commands:
- pip install --upgrade pip
- pip3 install awscli --upgrade --user
- export SOURCEDBENV=mysql-dev
- export DATE=`date +%Y%m%d`
- export TARGETDBENV=$SOURCEDBENV-$DATE
- echo $TARGETDBENV
- export PREARNSNAP=$(aws rds describe-db-cluster-snapshots --db-cluster-identifier $SOURCEDBENV --query="reverse(sort_by(DBClusterSnapshots, &SnapshotCreateTime))[0]|DBClusterSnapshotArn" )
- export ARNSNAP=`echo $PREARNSNAP | tr -d '"'`
- echo $ARNSNAP
- aws rds restore-db-cluster-from-snapshot --snapshot-identifier $ARNSNAP --db-cluster-identifier $TARGETDBENV --engine aurora-mysql
- aws rds create-db-instance --db-instance-identifier $TARGETDBENV --db-instance-class db.t3.medium --db-subnet-group-name db_subnet_grp_2019 --engine aurora-mysql --db-cluster-identifier $TARGETDBENV
- while [ $(aws rds describe-db-cluster-endpoints --db-cluster-identifier $DBNAME | grep -c available) -eq 0 ]; do echo "sleep 60s"; sleep 60; done
- echo "Temp db ready"
- export ENDPOINT=$(aws rds describe-db-cluster-endpoints --db-cluster-identifier $DBIDENTIFIER| grep "\"Endpoint\"" | grep -v "\-ro\-" | awk -F '\"' '{print $4}')
- echo $ENDPOINT
build:
commands:
- echo Build started on `date`
- echo proceed db connection to $ENDPOINT
- echo proceed db migrate update, DDL proceed here
- echo proceed application test, CRUD test run here
post_build:
commands:
- echo Build completed on `date`
- echo $DBNAME
也许您可以利用AWS cli中的命令 而不是使用
while
循环,只是为了让db实例可用
aws rds wait db实例可用--filters Name=db cluster id,value=$TARGETDBENV
你能分享更多你的
buildspec.yml
文件吗,这样我们就可以看到这个文件在你的模板中的什么地方运行了?更新了原始帖子