概要
Neo4j Auraとは?AuraDB Freeで無料&手軽にグラフデータベースを使ってみようを参考に、Neo4j Auraに登録してアクセスしてみた。
ソースコード ※Testというかwrangler.tomlの設定がおかしい
Neo4j Auraの登録
https://neo4j.com/product/auradb/ にアクセスし、「Start Free」をクリック
登録したメールアドレスにVerifyのメールが来るので、「Verify my e-mail address」と書かれたボタンをクリック。
下記のようなページに飛ばされるので、最初の利用規約を読んで同意ボタンを押す。
無料のインスタンスを作成する。
パスワードをダウンロードする。うっかり消さないように注意。
下記のような内容が書かれたものが取得できる。
# Wait 60 seconds before connecting using these details, or login to https://console.neo4j.io to validate the Aura Instance is available
NEO4J_URI=neo4j+s://<your-instance-id>.databases.neo4j.io
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=<your-password>
AURA_INSTANCEID=<your-instance-id>
AURA_INSTANCENAME=Instance01
接続方法の確認
インスタンスの右上のConnectから。
今回はJSを選択。サンプルが確認できる。
ローカルで動作確認
js-driverを確認して記載。
worker-configuration.d.ts
interface Env {
Bindings: {
NEON_CONNECTION_STRING: string;
+ NEO4J_URL: string;
+ NEO4J_USER: string;
+ NEO4J_PASSWORD: string;
};
}
.dev.vars
NEON_CONNECTION_STRING=postgresql://<DB_USER_NAME>:<DB_PASSWORD>@<NEON_DB_DOMAIN>.us-west-2.aws.neon.tech/main?sslmode=require
+ NEO4J_URL=neo4j+s://<your-instance-id>.databases.neo4j.io
+ NEO4J_USER=neo4j
+ NEO4J_PASSWORD=<your-password>
src/index.ts
import { Hono } from 'hono';
import neo4j from 'neo4j-driver';
import type { Neo4jError } from 'neo4j-driver-core';
const app = new Hono<Env>();
app.get('/scenarios', async (c) => {
let driver;
try {
driver = neo4j.driver(c.env.NEO4J_URL, neo4j.auth.basic(c.env.NEO4J_USER, c.env.NEO4J_PASSWORD));
const session = driver.session();
const result = await session.run('match (s:Scenario) return (s)');
const data = result.records.map((record) => record.get('s').properties);
return c.json(data);
} catch (err) {
const neo4jError = err as Neo4jError;
console.log(`Connection error\n${err}\nCause: ${neo4jError.cause}`);
return c.text('Server Error', 500);
} finally {
if (driver) {
await driver.close();
}
}
});
export default app;
実行
npm run dev
下記URLで確認した。
http://127.0.0.1:8787/scenarios
Cloudflareにアップして確認。
secretを追加する。
wrangler secret put NEO4J_URL
wrangler secret put NEO4J_USER
wrangler secret put NEO4J_PASSWORD
Workersの更新は GithubActionsで行っている。
デプロイ後、下記URLから動作することを確認。