首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从云运行连接到使用using

无法从云运行连接到使用using
EN

Stack Overflow用户
提问于 2021-05-20 22:29:27
回答 1查看 708关注 0票数 0

我已经创建了一个连接到Cloud实例的R闪亮应用程序。它在我的本地服务器上运行良好,但是当我上传到shinyapps.io或通过Dockerfile运行到云时,它无法连接。

下面是我使用RPostgres包连接的代码:

代码语言:javascript
运行
复制
conn <- dbConnect(
    drv=RPostgres::Postgres(),
    dbname='postgres',
    sslrootcert=path to 'server-ca.pem',
    sslcert=path to 'client-cert.pem',
    sslkey=path to 'client-key.pem',
    host='xxxxxxxxxxxxxxxxxxx',
    port=5432,
    user='username',
    password='password_string',
    sslmode='verify-ca')

我在云运行中检查了日志,我看到的错误消息如下:

警告:错误:无法为函数“dbGetQuery”找到用于签名“字符”、“字符”的继承方法

dbGetQuery()函数是在dbConnect函数之后调用的,由于它在本地服务器上运行良好,所以我非常确信所看到的是连接问题,而不是包命名空间问题。但可能是错的。

我通过添加0.0.0.0/0作为允许的网络向所有up开放。奇怪的是,偶尔我可以从shinyapps.io连接,但大多数情况下都失败了。我还没有让它在云运行中工作一次。这使我认为这可能是一个动态IP地址或类似的问题?

我是否需要通过Cloud代理来直接连接Cloud和Cloud?或者我可以通过上面的dbConnect方法连接吗?我认为0.0.0.0/0也包括云运行it,但我可能不明白它是如何工作的。如有任何解释,将不胜感激。

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2021-05-21 14:55:52

我通过添加0.0.0.0/0作为允许的网络向所有up开放。

从安全的角度来看,这是一个可怕的,可怕的,没有好主意。这实际上意味着整个世界都可以尝试连接到您的数据库。

正如@john在评论中所说,将云运行连接到Cloud文档详细介绍了如何连接。有两种选择:

  1. 通过公共IP ( internet)在/cloudsql/CLOUD_SQL_CONNECTION_NAME上使用Unix域套接字
  2. 通过私有IP,使用Serverless VPC访问通过VPC进行连接

如果库不支持Unix域套接字,则必须使用不同的库或选择选项2并通过TCP连接。请注意,Serverless VPC访问连接器有与使用它相关的额外成本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67628747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档