{"id":55311,"date":"2026-05-28T11:16:31","date_gmt":"2026-05-28T18:16:31","guid":{"rendered":"https:\/\/www.griddb.net\/?p=55311"},"modified":"2026-05-28T11:16:31","modified_gmt":"2026-05-28T18:16:31","slug":"connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering","status":"publish","type":"post","link":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/","title":{"rendered":"Connecting to GridDB Cloud v3.2 from Your Local Dev Environment (No VPN, No VNet Peering)"},"content":{"rendered":"<p>\nWith the release of GridDB Cloud v3.2, we now get the ability to connect to GridDB Cloud from your local machine using the native NoSQL clients (Java, Python, etc.) \u2014 without having to spin up a VNet peering, without configuring a VPN, and without needing to use the Web API.\n<\/p>\n<p>\nIf you&#8217;ve followed along with our previous blogs covering the <a href=\"https:\/\/www.griddb.net\/en\/blog\/griddb-cloud-azure-marketplace\/\">Azure Marketplace signup<\/a>, the <a href=\"https:\/\/www.griddb.net\/en\/blog\/griddb-cloud-v3-1-how-to-use-the-native-apis-with-azures-vnet-peering\/\">VNet peering setup<\/a>, or the various <a href=\"https:\/\/www.griddb.net\/en\/blog\/azure-connected-services-with-griddb-cloud\/\">Azure Connected Services integrations<\/a>, you know that getting the native API working from outside the cloud used to be a bit tricky. You either had to host your code inside an Azure VNet peered to GridDB Cloud, set up a VPN to tunnel in, or resign yourself to the Web API. For local dev iteration, none of those options were super easy.\n<\/p>\n<p>\nWith v3.2, that changes. You can now point your local Python or Java client directly at your cloud instance over the public internet, authenticate, and run queries.\n<\/p>\n<p>\nYou can follow the <a href=\"https:\/\/www.toshiba-sol.co.jp\/pro\/griddbcloud\/docs-en\/v3_2\/cloud_quickstart_guide_html\/GridDB_Cloud_QuickStartGuide.html#running-a-sample-program\">official quick start guide<\/a> but I will summarize and give some helpful tips that worked for me.\n<\/p>\n<p>\nGridDB Cloud v3.2 is available via the Azure Marketplace. If you haven&#8217;t signed up yet, grab either the <a href=\"https:\/\/azuremarketplace.microsoft.com\/en-us\/marketplace\/apps\/2812187.griddb_cloud_payasyougo?tab=Overview\">Pay-As-You-Go plan<\/a> or the <a href=\"https:\/\/marketplace.microsoft.com\/en-us\/product\/2812187.griddb_cloud_shared_instance_with_1month_trial?tab=Overview\">Fixed Monthly plan<\/a>. Our <a href=\"https:\/\/www.griddb.net\/en\/blog\/griddb-cloud-azure-marketplace\/\">Azure Marketplace signup blog<\/a> walks through the whole process.\n<\/p>\n<h2 id=\"the-checklist\">The Checklist<\/h2>\n<p>\nHere&#8217;s the short version of what you need to do, in order. I&#8217;ll go deeper on each step below.\n<\/p>\n<p>\nFirst, we need to prepare our environment.\n<\/p>\n<h3 id=\"preparation\">Preparation<\/h3>\n<ol>\n<li>Generate your notification provider URL from the Cloud dashboard <strong>before<\/strong> whitelisting<\/li>\n<li>Whitelist your local machine&#8217;s IP in the GridDB access area<\/li>\n<li>Download the EE-only library jars from the Cloud help page (they&#8217;re not on Maven)<\/li>\n<li>Extract <code>gridstore-advanced.jar<\/code> from the RPM if you&#8217;re not on Rocky Linux<\/li>\n<li>Install the Python client<\/li>\n<li>Add all the jars \u2014 including <code>gridstore-advanced<\/code> \u2014 to your <code>CLASSPATH<\/code><\/li>\n<li>Append <code>connectionRoute=PUBLIC<\/code> to your connection details<\/li>\n<\/ol>\n<p>\nThat last one is the whole reason this works. Without it, the client tries to connect over the private route and will timeout.\n<\/p>\n<h3 id=\"1-generate-the-notification-provider-url-do-this-first\">1. Generate the Notification Provider URL (Do This First!)<\/h3>\n<p>\nBefore you do anything else in the Cloud dashboard, head to the cluster settings and manually generate the notification provider URL.\n<\/p>\n<p><a href=\"\/wp-content\/uploads\/2026\/05\/empty-notification.png\"><img fetchpriority=\"high\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/empty-notification.png\" alt=\"\" width=\"610\" height=\"482\" class=\"aligncenter size-full wp-image-55318\" srcset=\"\/wp-content\/uploads\/2026\/05\/empty-notification.png 610w, \/wp-content\/uploads\/2026\/05\/empty-notification-300x237.png 300w, \/wp-content\/uploads\/2026\/05\/empty-notification-570x450.png 570w, \/wp-content\/uploads\/2026\/05\/empty-notification-600x474.png 600w\" sizes=\"(max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<p>\nIf you whitelist your IP first, it will fail with a strange warning.\n<\/p>\n<p><a href=\"\/wp-content\/uploads\/2026\/05\/error-ip-address.png\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/error-ip-address.png\" alt=\"\" width=\"1231\" height=\"863\" class=\"aligncenter size-full wp-image-55319\" srcset=\"\/wp-content\/uploads\/2026\/05\/error-ip-address.png 1231w, \/wp-content\/uploads\/2026\/05\/error-ip-address-300x210.png 300w, \/wp-content\/uploads\/2026\/05\/error-ip-address-1024x718.png 1024w, \/wp-content\/uploads\/2026\/05\/error-ip-address-768x538.png 768w, \/wp-content\/uploads\/2026\/05\/error-ip-address-600x421.png 600w\" sizes=\"(max-width: 1231px) 100vw, 1231px\" \/><\/a><\/p>\n<p>\nSave that URL somewhere \u2014 you&#8217;ll need it for your connection string.\n<\/p>\n<h3 id=\"2-whitelist-your-ip\">2. Whitelist Your IP<\/h3>\n<p>\nNow go to the access control area of the Cloud dashboard and add your local machine&#8217;s public IP to the whitelist. If you click &#8216;Add my IP&#8217;, it will automatically add your curren&#8217;t machine&#8217;s public IP Address.\n<\/p>\n<p><a href=\"\/wp-content\/uploads\/2026\/05\/whitelisted-ip.png\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/whitelisted-ip.png\" alt=\"\" width=\"1221\" height=\"444\" class=\"aligncenter size-full wp-image-55317\" srcset=\"\/wp-content\/uploads\/2026\/05\/whitelisted-ip.png 1221w, \/wp-content\/uploads\/2026\/05\/whitelisted-ip-300x109.png 300w, \/wp-content\/uploads\/2026\/05\/whitelisted-ip-1024x372.png 1024w, \/wp-content\/uploads\/2026\/05\/whitelisted-ip-768x279.png 768w, \/wp-content\/uploads\/2026\/05\/whitelisted-ip-600x218.png 600w\" sizes=\"(max-width: 1221px) 100vw, 1221px\" \/><\/a><\/p>\n<h3 id=\"3-download-the-ee-library-files\">3. Download the EE Library Files<\/h3>\n<p>\nHead into cloud dashboard&#8217;s help\/downloads\/support section and grab the Enterprise Edition library bundle labeled as: <code>GridDB Cloud Library and Plugin download <\/code>. These jars are not available on Maven Central or anywhere else \u2014 they ship exclusively with the EE build of GridDB, which is what the Cloud runs on. You need these to be able to make SSL connections to the cloud.\n<\/p>\n<p><a href=\"\/wp-content\/uploads\/2026\/05\/download-library-and-plugin.png\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/download-library-and-plugin.png\" alt=\"\" width=\"880\" height=\"1081\" class=\"aligncenter size-full wp-image-55316\" srcset=\"\/wp-content\/uploads\/2026\/05\/download-library-and-plugin.png 880w, \/wp-content\/uploads\/2026\/05\/download-library-and-plugin-244x300.png 244w, \/wp-content\/uploads\/2026\/05\/download-library-and-plugin-834x1024.png 834w, \/wp-content\/uploads\/2026\/05\/download-library-and-plugin-768x943.png 768w, \/wp-content\/uploads\/2026\/05\/download-library-and-plugin-600x737.png 600w\" sizes=\"(max-width: 880px) 100vw, 880px\" \/><\/a><\/p>\n<h3 id=\"4-extract-gridstore-advancedjar-from-the-rpm\">4. Extract <code>gridstore-advanced.jar<\/code> from the RPM<\/h3>\n<p>\nThe EE download is distributed as an RPM. If you&#8217;re running Rocky Linux (or any RHEL-compatible distro), you can install it normally. But if you&#8217;re on Ubuntu, Debian, or pretty much anything else, you need to manually crack the RPM open to pull the jar out:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ rpm2cpio griddb-ee-java-lib-5.9.0-linux.x86_64.rpm | cpio -idmv<\/code><\/pre>\n<\/div>\n<p>\nThis drops the contents into your current directory. The jar you want is <code>gridstore-advanced.jar<\/code> \u2014 it lives inside <code>usr\/share\/java\/<\/code> or similar after extraction. Without this jar on your classpath, your SSL handshake to the cloud will fail.\n<\/p>\n<h3 id=\"5-install-the-python-client\">5. Install the Python Client<\/h3>\n<p>\nStandard Python client install \u2014 nothing new here. Follow the <a href=\"https:\/\/docs.griddb.net\/gettingstarted\/python.html\">official Python client getting started guide<\/a> for the full walkthrough (install Java, clone the <code>python_client<\/code> repo, <code>mvn install<\/code>, then <code>pip install .<\/code>).\n<\/p>\n<h3 id=\"6-add-everything-to-classpath\">6. Add Everything to CLASSPATH<\/h3>\n<p>\nOnce you have all your jars in one place (<code>gridstore.jar<\/code>, <code>gridstore-jdbc.jar<\/code>, <code>gridstore-arrow.jar<\/code>, <code>arrow-memory-netty.jar<\/code>, and <strong>critically<\/strong>  <code>gridstore-advanced.jar<\/code>), export your <code>CLASSPATH<\/code>:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ export CLASSPATH=\/path\/to\/lib\/gridstore.jar:\/path\/to\/lib\/gridstore-jdbc.jar:\/path\/to\/lib\/gridstore-arrow.jar:\/path\/to\/lib\/arrow-memory-netty.jar:\/path\/to\/lib\/gridstore-advanced.jar<\/code><\/pre>\n<\/div>\n<p>\nIf <code>gridstore-advanced.jar<\/code> isn&#8217;t on this path, the connection will fail.\n<\/p>\n<h3 id=\"7-add-connectionroutepublic\">7. Add <code>connectionRoute=PUBLIC<\/code><\/h3>\n<p>\nThis is the magic parameter that tells the client to use the new public route introduced in v3.2. In your Python code, your factory config should include it:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-python\">self.gridstore = None\r\ntry:\r\n    self.gridstore = GridDB.factory.get_store(\r\n        notification_provider=self.notification_provider,\r\n        cluster_name=self.cluster_name,\r\n        username=self.username,\r\n        password=self.password,\r\n        database=self.database,\r\n        connection_route=&#x27;PUBLIC&#x27; #NOTE, PUBLIC must be in ALL CAPS\r\n    )\r\n    print(f&quot;Successfully connected to {self.cluster_name}.&quot;)\r\nexcept Exception as e:\r\n    print(f&quot;Failed to connect to GridDB: {e}&quot;)<\/code><\/pre>\n<\/div>\n<p>\nWithout this, the client will try to use the internal route and you&#8217;ll be stuck waiting.\n<\/p>\n<h2 id=\"python-example\">Python Example<\/h2>\n<p>\nWith all the pieces in place, here&#8217;s what a basic connect-and-query looks like from your local machine:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ (venv) israel@griddb:~\/development\/griddb-university\/python$ export CLASSPATH=$CLASSPATH:.\/gridstore.jar:.\/gridstore-arrow.jar:.\/arrow-memory-netty.jar:.\/gridstore-advanced.jar\r\n$ (venv) israel@griddb:~\/development\/griddb-university\/python$ export GRIDDB_NOTIFICATION_PROVIDER=&quot;URL&quot;\r\n$ export GRIDDB_CLUSTER_NAME=&quot;gs_clustermfcloud87&quot;\r\n$ export GRIDDB_USERNAME=&quot;admin&quot;\r\n$ export GRIDDB_PASSWORD=&quot;password&quot;\r\n$ export GRIDDB_DATABASE=&quot;nSt&quot;\r\n$ (venv) israel@griddb:~\/development\/griddb-university\/python$ python3 main.py \r\n$ JVM already started.\r\n$ Attempting to connect to GridDB...\r\n$ Successfully connected to gs_clustermfcloud8737.\r\n$ Successfully created TimeSeries: SamplePython_timeseries1\r\n$ Successfully put row into SamplePython_timeseries1: [datetime.datetime(2025, 10, 1, 15, 0, tzinfo=datetime.timezone.utc), 10.21]\r\n\r\n$ --- Reading from SamplePython_timeseries1 ---\r\n$ [datetime.datetime(2025, 10, 1, 15, 0), 10.21]<\/code><\/pre>\n<\/div>\n<p>\nThat&#8217;s it. No Azure Function wrapping, no container, no VPN client running in the background; just your script, talking directly to GridDB Cloud.\n<\/p>\n<p>\nThe full sample python source code along with Java sample code is included with this article.\n<\/p>\n<h2 id=\"java-from-your-local-machine\">Java from Your Local Machine<\/h2>\n<p>\nAs java is the native interface for GridDB, let&#8217;s also take a look at connecting via Java.\n<\/p>\n<p>\nThe steps are largely the same, including the adding the new <code>connectionRoute<\/code> property and having the special library for making SSL requests to GridDB Cloud.\n<\/p>\n<h3 id=\"gotcha-1-url-encode-the-notification-provider-value\">Gotcha #1: URL-encode the Notification Provider Value<\/h3>\n<p>\nWhen you pass the notification provider URL into Java&#8217;s <code>GridStoreFactory<\/code>, you need to URL-encode the value. If you don&#8217;t, Java&#8217;s property parser will see the <code>&connectionRoute=PUBLIC<\/code> portion as a separate parameter and silently drop it \u2014 and you&#8217;ll be left wondering why your connection is timing out even though everything looks right.\n<\/p>\n<p>\nThe fix is to encode the full URL before passing it in:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-java\">String notificationProvider = URLEncoder.encode(\r\n    &quot;https:\/\/&lt;your-provider-url&gt;?clusterName=&lt;name&gt;&amp;connectionRoute=PUBLIC&quot;,\r\n    StandardCharsets.UTF_8.toString()\r\n);<\/code><\/pre>\n<\/div>\n<h3 id=\"gotcha-2-manually-install-gridstore-advancedjar-to-your-local-maven-repo\">Gotcha #2: Manually Install <code>gridstore-advanced.jar<\/code> to Your Local Maven Repo<\/h3>\n<p>\nSame jar as before, same reason \u2014 not on Maven Central. To use it with Maven, you have to install it to your local <code>.m2<\/code> repository manually:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ mvn install:install-file \\\r\n$     -Dfile=\/path\/to\/your\/python\/gridstore-advanced.jar \\\r\n$     -DgroupId=com.github.griddb \\\r\n$     -DartifactId=gridstore-advanced \\\r\n$     -Dversion=5.9.0 \\\r\n$     -Dpackaging=jar<\/code><\/pre>\n<\/div>\n<p>\nThen add it as a dependency in your <code>pom.xml<\/code>:\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-xml\">&lt;dependency&gt;\r\n    &lt;groupId&gt;com.github.griddb&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;gridstore-advanced&lt;\/artifactId&gt;\r\n    &lt;version&gt;5.9.0&lt;\/version&gt;\r\n&lt;\/dependency&gt;<\/code><\/pre>\n<\/div>\n<p>\nNow Maven will resolve it like any other dependency when you build your project.\n<\/p>\n<h3 id=\"java-example\">Java Example<\/h3>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ (venv) israel@griddb:~\/development\/griddb-university\/java$ java -jar target\/java-samples-1.0-SNAPSHOT-jar-with-dependencies.jar\r\n$ jdbc:gs:\/\/\/gs_clustermfcloud8737\/nl7QftSt?notificationProvider=https%3A%2F%2Fdbaasshare&amp;connectionRoute=PUBLIC\r\n$ CREATE TABLE IF NOT EXISTS exampleJdbc (id integer, value string);\r\n$ INSERT INTO exampleJdbc values  (0, &#x27;test0&#x27;),(1, &#x27;test1&#x27;),(2, &#x27;test2&#x27;),(3, &#x27;test3&#x27;),(4, &#x27;test4&#x27;)\r\n$ SELECT * FROM exampleJdbc\r\n$ id\tvalue\t0\ttest0\t1\ttest1\t2\ttest2\t3\ttest3\t4\ttest4\t0\ttest0\t1\ttest1\t2\ttest2\t3\ttest3\t4\ttest4\t\r\n$ Running SQL: SELECT ts, AVG(temp) as avg_temp FROM device WHERE ts BETWEEN TIMESTAMP(&#x27;2020-07-12T00:01:20Z&#x27;) AND TIMESTAMP(&#x27;2020-07-12T00:14:00Z&#x27;) GROUP BY RANGE (ts) EVERY(20, SECOND) \r\n$ java.sql.SQLException: [280005:SQL_DDL_TABLE_NOT_EXISTS] Parse SQL failed, reason = GET TABLE failed. (reason=GET TABLE failed. (reason=Specified table &#x27;device&#x27; is not found)) on executing query (sql=&quot;SELECT ts, AVG(temp) as avg_temp FROM device WHERE ts BETWEEN TIMESTAMP(&#x27;2020-07-12T00:01:20Z&#x27;) AND TIMESTAMP(&#x27;2020-07-12T00:14:00Z&#x27;) GROUP BY RANGE (ts) EVERY(20, SECOND) &quot;) (db=&#x27;nl7QftSt&#x27;) (user=&#x27;S01K7vrCuF-israel&#x27;) (clientId=&#x27;c761d357-ec46-4e5c-8f80-405e69635810:4&#x27;) (source={clientId=155, address=172.22.5.69:46422}) (connection=PUBLIC) (address=20.205.145.126:20001, partitionId=8289)\r\n$ Testing GridDB NoSQL\r\n$ Creating Container<\/code><\/pre>\n<\/div>\n<p>\nAnd again, the sample code will be shared here. In this case, we are connecting to GridDB Cloud via the NoSQL interface AND the SQL interface through JDBC. Both work here once the above steps are adhered to.\n<\/p>\n<h3 id=\"c-client\">C Client<\/h3>\n<p>\nPlease note, that if you would like to use the C Client, you will also need to follow the same procedure as the Java code but for the C Client. That is, you will need to include the &#8216;public route&#8217; to your connection details and will need to extract the <code>.rpm<\/code> called <code>griddb-ee-c-lib-5.8.0-linux.x86_64.rpm<\/code> (assuming you are not using CentOS\/Rocky Linux) and grab the library files <code>libgridstore.so.0.0.0 and libgridstore_advanced.so.0.0.0<\/code> and the header (gridstore.h).\n<\/p>\n<p>\nOnce you have those in place, add the public route to your connection details\n<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-c\">const GSPropertyEntry props[] = {\r\n    { &quot;notificationProvider&quot;, &quot;https:\/\/&lt;url-encoded-provider-url&gt;&quot; },\r\n    { &quot;clusterName&quot;,          &quot;&lt;your cluster name&gt;&quot; },\r\n    { &quot;database&quot;,             &quot;public&quot; },\r\n    { &quot;user&quot;,                 &quot;&lt;user&gt;&quot; },\r\n    { &quot;password&quot;,             &quot;&lt;password&gt;&quot; },\r\n    { &quot;sslMode&quot;,              &quot;PREFERRED&quot; },\r\n    { &quot;connectionRoute&quot;,      &quot;PUBLIC&quot; }\r\n};<\/code><\/pre>\n<\/div>\n<p>\nAnd you should be good to go for the C Client as well!\n<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>\nBeing able to hit GridDB Cloud directly from your local dev machine is a genuinely big deal for iteration speed.\n<\/p>\n<p>\nIf you haven&#8217;t signed up for GridDB Cloud v3.2 yet, it&#8217;s exclusively on the Azure Marketplace \u2014 you can grab the <a href=\"https:\/\/marketplace.microsoft.com\/en-us\/product\/2812187.griddb_cloud_payasyougo?tab=Overview\">Pay-As-You-Go plan here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the release of GridDB Cloud v3.2, we now get the ability to connect to GridDB Cloud from your local machine using the native NoSQL clients (Java, Python, etc.) \u2014 without having to spin up a VNet peering, without configuring a VPN, and without needing to use the Web API. If you&#8217;ve followed along with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":55315,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-55311","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Connecting to GridDB Cloud v3.2 from Your Local Dev Environment (No VPN, No VNet Peering) | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"With the release of GridDB Cloud v3.2, we now get the ability to connect to GridDB Cloud from your local machine using the native NoSQL clients (Java,\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Connecting to GridDB Cloud v3.2 from Your Local Dev Environment (No VPN, No VNet Peering) | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"With the release of GridDB Cloud v3.2, we now get the ability to connect to GridDB Cloud from your local machine using the native NoSQL clients (Java,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/\" \/>\n<meta property=\"og:site_name\" content=\"GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/griddbcommunity\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-28T18:16:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.griddb.net\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1376\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Israel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:site\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Israel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/\"},\"author\":{\"name\":\"Israel\",\"@id\":\"https:\/\/www.griddb.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\"},\"headline\":\"Connecting to GridDB Cloud v3.2 from Your Local Dev Environment (No VPN, No VNet Peering)\",\"datePublished\":\"2026-05-28T18:16:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/\"},\"wordCount\":1114,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.griddb.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/\",\"url\":\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/\",\"name\":\"Connecting to GridDB Cloud v3.2 from Your Local Dev Environment (No VPN, No VNet Peering) | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/www.griddb.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png\",\"datePublished\":\"2026-05-28T18:16:31+00:00\",\"description\":\"With the release of GridDB Cloud v3.2, we now get the ability to connect to GridDB Cloud from your local machine using the native NoSQL clients (Java,\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png\",\"contentUrl\":\"\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png\",\"width\":1376,\"height\":768},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.griddb.net\/en\/#website\",\"url\":\"https:\/\/www.griddb.net\/en\/\",\"name\":\"GridDB: Open Source Time Series Database for IoT\",\"description\":\"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL\",\"publisher\":{\"@id\":\"https:\/\/www.griddb.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.griddb.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.griddb.net\/en\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\/\/www.griddb.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.griddb.net\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"contentUrl\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"width\":200,\"height\":83,\"caption\":\"Fixstars\"},\"image\":{\"@id\":\"https:\/\/www.griddb.net\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/griddbcommunity\/\",\"https:\/\/x.com\/GridDBCommunity\",\"https:\/\/www.linkedin.com\/company\/griddb-by-toshiba\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.griddb.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\",\"name\":\"Israel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.griddb.net\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g\",\"caption\":\"Israel\"},\"url\":\"https:\/\/www.griddb.net\/en\/author\/israel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Connecting to GridDB Cloud v3.2 from Your Local Dev Environment (No VPN, No VNet Peering) | GridDB: Open Source Time Series Database for IoT","description":"With the release of GridDB Cloud v3.2, we now get the ability to connect to GridDB Cloud from your local machine using the native NoSQL clients (Java,","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/","og_locale":"en_US","og_type":"article","og_title":"Connecting to GridDB Cloud v3.2 from Your Local Dev Environment (No VPN, No VNet Peering) | GridDB: Open Source Time Series Database for IoT","og_description":"With the release of GridDB Cloud v3.2, we now get the ability to connect to GridDB Cloud from your local machine using the native NoSQL clients (Java,","og_url":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2026-05-28T18:16:31+00:00","og_image":[{"width":1376,"height":768,"url":"https:\/\/www.griddb.net\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png","type":"image\/png"}],"author":"Israel","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"Israel","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#article","isPartOf":{"@id":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/"},"author":{"name":"Israel","@id":"https:\/\/www.griddb.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740"},"headline":"Connecting to GridDB Cloud v3.2 from Your Local Dev Environment (No VPN, No VNet Peering)","datePublished":"2026-05-28T18:16:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/"},"wordCount":1114,"commentCount":0,"publisher":{"@id":"https:\/\/www.griddb.net\/en\/#organization"},"image":{"@id":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/","url":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/","name":"Connecting to GridDB Cloud v3.2 from Your Local Dev Environment (No VPN, No VNet Peering) | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/www.griddb.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#primaryimage"},"image":{"@id":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png","datePublished":"2026-05-28T18:16:31+00:00","description":"With the release of GridDB Cloud v3.2, we now get the ability to connect to GridDB Cloud from your local machine using the native NoSQL clients (Java,","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.griddb.net\/en\/blog\/connecting-to-griddb-cloud-v3-2-from-your-local-dev-environment-no-vpn-no-vnet-peering\/#primaryimage","url":"\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png","contentUrl":"\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_nqr8a6nqr8a6nqr81.png","width":1376,"height":768},{"@type":"WebSite","@id":"https:\/\/www.griddb.net\/en\/#website","url":"https:\/\/www.griddb.net\/en\/","name":"GridDB: Open Source Time Series Database for IoT","description":"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL","publisher":{"@id":"https:\/\/www.griddb.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.griddb.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.griddb.net\/en\/#organization","name":"Fixstars","url":"https:\/\/www.griddb.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.griddb.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","contentUrl":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","width":200,"height":83,"caption":"Fixstars"},"image":{"@id":"https:\/\/www.griddb.net\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/griddbcommunity\/","https:\/\/x.com\/GridDBCommunity","https:\/\/www.linkedin.com\/company\/griddb-by-toshiba"]},{"@type":"Person","@id":"https:\/\/www.griddb.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740","name":"Israel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.griddb.net\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g","caption":"Israel"},"url":"https:\/\/www.griddb.net\/en\/author\/israel\/"}]}},"_links":{"self":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/55311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/comments?post=55311"}],"version-history":[{"count":2,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/55311\/revisions"}],"predecessor-version":[{"id":55320,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/55311\/revisions\/55320"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media\/55315"}],"wp:attachment":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media?parent=55311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/categories?post=55311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/tags?post=55311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}