cloud functions - docs update

This commit is contained in:
justinschuldt 2022-03-14 14:03:04 -05:00 committed by Justin Schuldt
parent 69c41d901e
commit d95e82b00b
3 changed files with 49 additions and 39 deletions

View File

@ -1,40 +1,8 @@
## Initializing a cloud BigTable instance
# Event Database
Once you've created a BigTable instance and a Service Account key, these Go scripts can create the table and column families to save event data.
Contents
Pass your BigTable connection info via args:
- the Google Cloud projectID
- BigTable instance name
- the path to a GCP Service Account with appropriate permissions
Invoke the script with the DB config options and `-setupDB` to create the table and column families, if they do not already exist. If they do already exists when the script runs, it will do nothing.
```bash
go run . \
-project your-GCP-projectID \
-instance your-BigTable-instance-name \
-keyFilePath ./service-account-key.json \
-setupDB
```
## Querying cloud BigTable
Lookup a row by the `EmitterChain:TxID`:
```bash
go run . \
-project wormhole-315720 \
-instance wormhole \
-keyFilePath ./bigtable-admin.json \
-queryRowKey 2:000000000000000000000000e982e462b094850f12af94d21d470e21be9d0e9:6
```
Lookup all rows with a timestamp >= `queryPreviousMinutes` ago:
```bash
go run . \
-project wormhole-315720 \
-instance wormhole \
-keyFilePath ./bigtable-admin.json \
-queryPreviousMinutes 120
```
- `cloud_functions` functions that interact with BigTable.
- `functions_server` an HTTP server for hosting cloud_functions locally. Used for development and running the functions for tilt devnet.
- `initialize_db` script for initializing a table and column families.
- `schema-docs` design documents.

View File

@ -1,7 +1,30 @@
## Google Cloud function for reading BigTable
## Google Cloud functions for BigTable
This is a reference implementaion for getting data out of BigTable.
## Contents
This directory holds GCP Cloud Functions, one per file, along with shared utilities in `shared.go`. The file names correspond to the hosted endpoints. ie endpoint `.../*-notionaltvl` is the file `notional-tvl.go`
## Debugging with VSCode
### prereqs
- Golang >= 1.16 installed and available on your path.
- The Go VSCode extension, and gopls installed.
### IDE setup
- open a new VSCode window
- File menu --> "Open Workspace from File..."
- Select `event_database/cloud_functions/workspace.code-workspace`
Opening the workspace file as described above will open both `cloud_functions` and `functions_server`, so that you get all the VSCode goodness of intellesense, ability to run the code with the Go debugger, set breakpoints, etc.
Add your environment variables to `functions_server/.vscode/launch.json`
Start the debug server by pressing `F5`. You can check your server is up by requesting http://localhost:8080/readyz.
### deploying
First deploy (creation) must include all the flags to configure the environment:

View File

@ -0,0 +1,19 @@
## Initializing a cloud BigTable instance
Once you've created a BigTable instance and a Service Account key, these Go scripts can create the table and column families to save event data.
Pass your BigTable connection info via args:
- the Google Cloud projectID
- BigTable instance name
- the path to a GCP Service Account with appropriate permissions
Invoke the script with the DB config options and `-setupDB` to create the table and column families, if they do not already exist. If they do already exists when the script runs, it will do nothing.
```bash
go run . \
-project your-GCP-projectID \
-instance your-BigTable-instance-name \
-keyFilePath ./service-account-key.json \
-setupDB
```