0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudflareWorkers+HonoでグラフDB ( Neo4jAura 無料版 ) にアクセスしてみたメモ

Last updated at Posted at 2024-12-28

概要

Neo4j Auraとは?AuraDB Freeで無料&手軽にグラフデータベースを使ってみようを参考に、Neo4j Auraに登録してアクセスしてみた。

ソースコードTestというかwrangler.tomlの設定がおかしい

Neo4j Auraの登録

https://neo4j.com/product/auradb/ にアクセスし、「Start Free」をクリック
image.png

今回はメールアドレスで登録した。
image.png

登録したメールアドレスにVerifyのメールが来るので、「Verify my e-mail address」と書かれたボタンをクリック。

image.png

image.png

下記のようなページに飛ばされるので、最初の利用規約を読んで同意ボタンを押す。

image.png

image.png

無料のインスタンスを作成する。

image.png
image.png

パスワードをダウンロードする。うっかり消さないように注意。

image.png

下記のような内容が書かれたものが取得できる。

# 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から。

image.png
Driversを選択。

image.png

今回はJSを選択。サンプルが確認できる。

image.png

ローカルで動作確認

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から動作することを確認。

参考

GraphDB KuzuのWebAssemblyをブラウザ上で動かしneo4j-nvlで可視化してみたメモ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?