使用CodeBuild来操作DocumentDB
总结
使用 CodeBuild 操作 DocumentDB(提取、插入、删除)的方法。
在以下的步骤中,对方法进行简述:
1. 在与DocumentDB相同的VPC内创建CodeBuild。
2. 在buildspec.yml文件中编写用于操作DocumentDB的命令。
3. 执行CodeBuild。
预先准备
我试一试
在与DocumentDB相同的VPC内创建CodeBuild。
在VPC上创建CodeBuild项目时,请注意以下事项。
-
- 必ずprivate subnetに作成する
(参考:Amazon Virtual Private Cloud で AWS CodeBuild を使用する)
セキュリティグループを適切に設定
在buildspec.yml 文件中编写用于操作DocumentDB的命令。
version: 0.2
phases:
install:
commands:
# mongo-shellをインストールする
- echo -e "[mongodb-org-4.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc" | tee /etc/yum.repos.d/mongodb-org-4.0.repo
- yum install -y mongodb-org-shell
build:
commands:
# SSL接続のために公開鍵をダウンロードしておく
- wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
# 対話シェルが使えないので、script.jsを読み込ませてる
# TODO: ${}にはそれぞれ適当な値を入れること
- mongo --ssl --host ${HOST} ${DB_NAME} --sslCAFile rds-combined-ca-bundle.pem --username ${USERNAME} --password ${PASSWORD} < script.js
script.js文件中的代码示例(详细说明在其他文章中)。
/* --------------------------------- */
/* コレクション一覧 */
/* --------------------------------- */
db.getCollectionNames();
/* --------------------------------- */
/* ドキュメント内容 */
/* --------------------------------- */
// collectionを参照。存在しない場合は勝手に作成される。
collection = db.getCollection(<collection_name>);
collection.find();
/* --------------------------------- */
/* データを挿入 */
/* --------------------------------- */
collection = db.getCollection(<collection_name>);
doc_1 = {
name: "bar",
favarite: "foo"
};
collection.insert(doc_1);
/* --------------------------------- */
/* データを削除 */
/* --------------------------------- */
collection = db.getCollection(<collection_name>);
collection.remove({name: "bar"});
暂且先说一応,CodeCommit的文件夹结构。
./
- buildspec.yml
- script.js
3. 执行CodeBuild
buildspec.yml文件中的内容将被执行,
然后会对DocumentDB执行script.js的操作。