我观察到Google Cloud Functions对网络出口收取了令人惊讶的费用,我试图理解为什么会发生这种情况,以及如何避免这种情况。
堆栈驱动程序监视表明,有问题的函数是我的ingest函数,它从GCS存储桶中读取文件,对其进行处理,并将行插入到Cloud SQL实例中。在这里查看来自云函数的网络出口与SQL实例的接收字节之间的相关性。

函数和云SQL实例都在us-central1中(尽管该区域中有不同的区域)。该函数通过提供的unix套接字连接到SQL实例。SQL实例具有公有IP地址。
根据到目前为止的费用,我似乎为每个GiB支付了0.1美元,这看起来像是一般的互联网出口价格。
我现在唯一的理论是,由于公共IP,我被收取到SQL实例的流量的公共互联网出口价格。这是合理的吗?收费还有其他原因吗?如果这是真的,我假设如果我关闭SQL实例的公网IP,费用将会取消?
发布于 2020-04-19 16:24:58
我能够解决这个问题,方法是为SQL实例添加一个私有IP地址、一个Serverless VPC Connector,并更改数据库连接代码以显式使用该私有IP地址。
请注意,如果实例同时具有公网IP地址和内网IP地址,则/cloudsql/<instance_connection_name>的connecting via the unix socket仍会产生出口费用。如果实例只有内网IP,则unix套接字方式使用内网,不会产生任何费用。因此,为了保留公网IP并且不产生云函数的出口费用,您需要使用内网IP而不是unix套接字。
https://stackoverflow.com/questions/61296741
复制相似问题