gpt4 book ai didi

google-cloud-platform - 围绕创建 VPC 访问连接器的困惑

转载 作者:行者123 更新时间:2023-12-03 14:40:52 25 4
gpt4 key购买 nike

我正在尝试 set up Serverless VPC access

Serverless VPC Access enables you to connect from your Cloud Functions directly to Compute Engine VM instances, Memorystore instances, Cloud SQL instances,



听起来很棒。但是文档对初学者并不是 super 友好。第 2 步是创建一个连接器,对此我有几个问题:

In the Network field, select the VPC network to connect to.



我的下拉列表仅包含“默认”。这是正常的吗? IO 应该在这里看到什么?

In the IP range field, enter an unused CIDR /28 IP range. Addresses in this range are used as source addresses for traffic sent through the connector. This IP range must not overlap with any existing IP address reservations in your VPC network.



我不知道在这里做什么。我尝试使用 linked document 中的信息首先)输入我选择的地区的 IP,然后)输入该地区以外的 IP。两者都导致创建时出现错误的连接器。 “ Connector is in a bad state, manual deletion is recommended

如果创建失败,文档将继续执行几个故障排除步骤:

Specify an IP range that does not overlap with any existing IP address reservations in the VPC network.



我不知道这是什么意思。也许就像,如果我有其他连接器,我应该确保新连接器的 IP 范围不与那些重叠。这只是一个猜测,但无论如何我都没有。

Grant your project permission to use Compute Engine VM images from the project with ID serverless-vpc-access-images. See Setting image access constraints for information on how to update your organization policy accordingly.



这将我引向 another document关于更新我的组织的“图像政策”。这个让我如此深不可测,我什至认为我不应该在这里。

这一切都始于 wanting to connect to a SQL Server instance from Firebase .创建 VPC 连接器似乎是一个很好的步骤,但我遇到了每一个障碍。云居民可以帮我解决这些困惑中的一些问题吗?

最佳答案

我认为您已经解决了这个问题,但我会写一个答案来总结所有步骤以供将来引用。
1. 创建Serverless VPC访问
我认为最好的引用是按照 doc 中的步骤进行操作。 .在步骤 7 ,它说:

In the IP range field, enter an unreserved CIDR /28 IP range.


例如,您可以使用的 IP 是 10.8.0.0/28 甚至 10.64.0.0/28,条件是它不用于任何其他网络。您可以前往 查看正在使用的 IP。 VPC 网络 > VPC 网络 .在网络字段中,您将拥有“默认”选项,所以没关系。
这可能需要几分钟时间,因此您可以同时创建 SQL Server/MySQL/PostgreSQL 实例。
2.创建CloudSQL实例
创建所需的实例( MySQL/ PostgreSQL/ SQL Server )。在您的情况下,它将是一个 SQL Server 实例。还要检查这些 steps在创建时为您的实例配置私有(private) IP,或者如果您已创建实例,您可以查看 this .记下专用 IP,因为稍后您将使用它。
3.创建云函数
在创建 Cloud Function 之前,您必须授予 CF 服务帐户使用 VPC 的权限。请关注这些 steps .
然后按照这些 steps配置函数的连接器以使用 VPC。在第 5 步中,它说明了以下内容:

In the VPC connector field, enter the fully-qualified name of your connector in the following format:

projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME

无需使用此格式添加您的 VPC。已经有一个列表,您可以在其中选择您的 VPC。最后部署您的功能。
我写了一个小函数来测试连接。我更喜欢使用 Python,但它需要比 NodeJS 更多的系统依赖项。
index.js :
var express = require('express');
var app = express();
var sql = require("mssql");

exports.helloWorld = (req, res) => {
var config = {
user: 'sqlserver',
password: 'password',
server: 'Your.SQL.Priavte.IP',
database: 'dbname'
};

// connect to your database
sql.connect(config, function (err) {
if (err) console.log(err);

// create Request object
var request = new sql.Request();

// query to the database and get the records
request.query('select * from a_table', function (err, recordset) {
if (err) console.log(err)

// send records as a response
res.send(recordset);
});
});
};
包.json :
{
"name": "sample-http",
"version": "0.0.1",
"dependencies": {
"express": "4.17.1",
"mssql": "6.0.1"
}
}
就这样! :D
值得一提的是,此过程更多是关于将 Cloud Functions 连接到 SQL Server,因为已经有一种更简单的方法可以将 CF 连接到 PostgreSQL 和 MySQL。

关于google-cloud-platform - 围绕创建 VPC 访问连接器的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59582390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com