Kinesis Data FirehoseからMongoDB Cloudにデータを流してみる

Amazon Kinesis Data Firehose が MongoDB Cloud へのデータ配信のサポートを開始 したそうなので試してみましたが、色々と「ん?」と思う点があったので書き残します。 MongoDB Atlas でClusterを作成 MongoDB Atlas、MongoDB Realmという単語が登場しますが、AtlasはDBaaSとしてのMongoDBそのもの、RealmはAtlasを操作するためのインターフェースとなるサービスのようです。 まずはAtlasでCluster, Database, Collectionを作成します。 Get Started with Atlas MongoDB Realm Functionsを実装 てっきりGUIポチポチで連携完了するものかとおもってましたが、FirehoseからのWebhookエンドポイントとなるサーバーレス関数を自前で実装する必要があります。 だったらKinesis Data Streams + Lambdaでよくね…? MongoDB Realm Functions リリースノートのリンク先のサンプルコードの冒頭はこんな感じ。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 exports = function(payload, response) { /* Using Buffer in Realm causes a severe performance hit this function is ~6 times faster */ const decodeBase64 = (s) => { var e={},i,b=0,c,x,l=0,a,r='',w=String....

February 2, 2022

Github ActionsでAWS Lambdaにデプロイする

GitHubでreleaseが作成された時、Lambdaにコードを反映させバージョンを更新するワークフローの単純な実装です サンプルディレクトリ構成 1 2 3 4 5 6 7 some-lambda-function-repo ├── .github │ └── workflows │ └── lambda-cd.yml ├── README.md ├── bootstrap └── handler.sh GitHubのSecretsに以下を設定 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY 必要なPolicyに関しては割愛します Github Actions 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 name: Lambda Continuous Delivery on: push: tags: - '*' jobs: lambda-cd: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - run: chmod u+x * - run: zip -r /tmp/some-lambda-function....

November 28, 2019