unytics/bigfunctions

[bug]: `get`: The database (default) does not exist for project

dmustafic-datafin opened this issue ยท 16 comments

Check the bug has not already been reported

Edit function_name and the short error description in title above

  • I wrote the correct function name and a short error description in the title above

What happened and what did you expect?

The get function can not be executed after being deployed to the cloud. This is a log item from Cloud Run.

debug_error_string = "UNKNOWN:Error received from peer ipv4:172.253.120.95:443 {created_time:"2023-05-29T13:08:01.432297163+00:00", grpc_status:5, grpc_message:"The database (default) does not exist for project bigquery-310412 Please visit https://console.cloud.google.com/datastore/setup?project=bigquery-310412 to add a Cloud Datastore or Cloud Firestore database.

Hi,

Thanks for creating this issue.

I am using firestore in datastore mode for quota management.

But this seems to complexify the deployment for people in their GCP project:

  • deployer needs to have enabled firestore
  • deployer needs to have his firestore in datastore mode.
  • This is impossible to do if the deployer is already using firestore in native mode...
  • service account used in the function needs to have the permission to write to firestore

That's why I am considering removing quota management by default.
What do you think?

What's more, I am not very happy with the scalability of how quota management is done for now. I am considering changing that in the future..

I would rather not have quota management than enable additional services.

In my case, firestore will be just another thing to worry about. And to be honest - a dealbreaker.

Sounds good.
I will add an option to choose the quota manager backend (with none by default).

So it should work for you.

I'll let you know.

@dmustafic-datafin I pushed to main branch the updates.
Can you tell me if it works for you?

Here is the commit:
5f72e80

Hey, I pulled the commit, reinstalled the function and now I get this:
image

Sorry.
Can you repull and retry please?

You nailed it man, it works! Thank you so much!

Hey, another issue :(

I am executing a stored procedure that queries a lot of data from an API. I changed the code so it uses my get function. But I'm getting the error.

bq function seems to be deployed correctly.

You can change quota or disable them in the yaml of the function before deploying it.

Now, as you don't use Firestore, the only quota that is taken into consideration is the number of rows per query.

For instance in geocode function you have:

image

If you deploy with this config, users can call it on table of 10 rows maximum.

Remove the quotas entries in this yaml before redeploying

The email address given in error is configured in your config.yaml at field quota_contact

When you deploy for the first time (since I made the modification) it will ask you this parameter and save it in config.yaml

If I make the max_row_per_query parameter in the top of yaml file, like this, is it ok? I still get the same error but with my email this time:

image

Simply remove max_rows_per_query from the yaml file where you don't want it to be applied and redeploy the function of the yaml file.

It does nothing if you put it in config.yaml.

That's it. After I changed max_rows_per_query in get.yaml everything is working fine. Thank you so much for your help!