Quack bereitstellen
Diese Seite sammelt Deployment-Rezepte für einen öffentlich erreichbaren Quack-Server. Derzeit gibt es ein Rezept (AWS EC2); weitere folgen mit der Zeit.
Auf AWS EC2
Der schnellste Weg zu einem öffentlich erreichbaren Quack-Server ist das One-Click-AWS-CloudFormation-Template, das zusammen mit der Erweiterung gepflegt wird. Es stellt eine kleine EC2-Instanz bereit, auf der DuckDB und die Quack-Erweiterung hinter nginx und Let’s-Encrypt-TLS laufen. Als Ausgabe liefert es das instanzspezifische Token und die Verbindungs-URI.
One-Click-Start
- Öffnen Sie die Launch-Stack-URL.
- Klicken Sie unten rechts auf Create stack.
- Warten Sie etwa zwei Minuten auf
CREATE_COMPLETE. - Öffnen Sie den Tab Outputs des Stacks.
- Klicken Sie auf den Wert
ConnectURL, um eine shell.duckdb.org-Sitzung zu öffnen, die bereits mit der neuen Instanz verdrahtet ist, oder kopieren SieQuackURIundToken, um sich aus einer lokalen DuckDB-Sitzung zu verbinden (siehe unten).
Der Stack verwendet standardmäßig eine Instanz t3.micro; andere Größen sind auf der Parameters-Seite beim Start wählbar. Unterstützte Regionen: us-east-1, us-east-2, us-west-1, us-west-2, eu-west-1, eu-central-1, ap-northeast-1, ap-southeast-1.
Aus einer lokalen DuckDB verbinden
Kopieren Sie QuackURI und Token aus dem Tab Outputs des Stacks und setzen Sie sie unten ein:
-- Register the credentials once per session.CREATE SECRET quack_credentials ( TYPE quack, SCOPE '⟨uri⟩', -- e.g., 'quack:54.1.2.3.nip.io:443' TOKEN '⟨token⟩');
-- Who did I just launch?FROM quack_query('⟨uri⟩', 'FROM whoami()');
-- Anything else you'd normally run, shipped verbatim to the remote.FROM quack_query('⟨uri⟩', 'SELECT 1 + 1');Haftende Sitzung über ATTACH
ATTACH behält serverseitigen Zustand (temporäre Tabellen, SET-Variablen) über Aufrufe hinweg, was quack_query allein nicht tut.
ATTACH '⟨uri⟩' AS remote (TYPE quack);
-- Temp table lives on the remote.FROM quack_query_by_name('remote', 'CREATE TEMP TABLE t AS SELECT range AS x FROM range(10)');FROM quack_query_by_name('remote', 'SELECT sum(x) FROM t');
-- Session settings stick.FROM quack_query_by_name('remote', 'SET threads = 8');FROM quack_query_by_name('remote', 'SELECT current_setting(''threads'')');Abbauen
Wenn Sie mit der Instanz fertig sind, löschen Sie den Stack:
aws cloudformation delete-stack --stack-name quack-demo --region us-east-1Oder nutzen Sie die Schaltfläche Delete in der CloudFormation-Konsole.
Was der Stack bereitstellt
- Eine
AWS::EC2::Instanceaus einem öffentlichen AMI (regionspezifische Zuordnung im Template) mit DuckDB und der Quack-Erweiterung hinter nginx und Let’s-Encrypt-TLS. - Eine
AWS::EC2::SecurityGroup, die die Ports80(ACME-Challenge) und443(HTTPS) öffnet. - Eine
AWS::CloudFormation::WaitCondition, die die Instanz signalisiert, sobald der RPC-Server bereit ist. - CFN-
Outputsmit der fertigen URI, dem instanzspezifischen Token und zwei teilbaren shell.duckdb.org-URLs (QueryURL,ConnectURL).
Für Maintainer
Das CloudFormation-Template, der AMI-Buildprozess und die regionsweise AMI-Veröffentlichung liegen unter duckdblabs/duckdb-quack-infra. AMI-Updates oder die Erweiterung der unterstützten Regionenlisten geschehen dort.