aba*_*haw 35 google-cloud-platform google-cloud-functions
在使用HTTP触发器时,我无法在任何地方看到为我的Google云功能设置自定义域的任何选项.似乎是一个相当重大的遗漏.有没有办法使用自定义域而不是他们的location-project.cloudfunctions.net
域或某些解决方法达到相同的效果?
我读了一篇文章,建议在函数前面使用CDN,并将功能URL指定为拉区.这可行,但会带来不必要的成本 - 在我的场景中,没有任何内容能够被缓存,因此使用CDN远非理想.
Fra*_*len 17
如果您将Cloud项目与Firebase 连接,则可以将HTTP触发的云功能连接到Firebase托管以获取虚URL.
zo.*_*.ol 13
另一种避免 Firebase 的方法是将负载均衡器放在 Cloud Function 或 Cloud Run 前面,并使用“无服务器网络端点组”作为负载均衡器的后端。
设置负载均衡器后,只需修改域的 DNS 记录以指向负载均衡器即可。
https://cloud.google.com/load-balancing/docs/https/setting-up-https-serverless
这个答案已经有一段时间了。
是的,现在您可以为您的 GCP 功能使用自定义域。
转到 firebase 并将您的项目与 firebase 相关联。我们在这里感兴趣的是托管。按照 firebase文档安装 Firebase CLI - (这里是非常好的和甜蜜的文档)
现在创建您的项目,正如您可能在文档中注意到的那样,要将 firebase 添加到您的项目中,请键入firebase init
. 选择托管,就是这样。
完成后,查找firebase.json
文件。然后像这样自定义
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "myfunction/custom",
"function": "myfunction"
},
]
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,您会获得一个类似的域,https://project-name.web.app
但您可以在控制台上添加自己的域。
现在部署您的站点。由于您对网络托管不感兴趣,因此您可以按原样离开。现在你的函数将像这样执行
要执行的函数 > myfunction
自定义网址 > https://example.com/myfunction/custom
使用 Cloudflare Workers(CDN、反向代理)
为什么?因为它不仅允许您通过 Cloud Function 设置反向代理,还允许您配置诸如 - CDN 边缘位置的服务器端渲染 (SSR)、初始 (SPA) 网页加载的 API 响应、CSRF保护、DDoS 保护、高级缓存策略等。
DNS
设置,添加A
指向192.0.2.1
该记录启用 Cloudflare 代理的记录(橙色图标)。例如:function handleRequest(request) {
const url = new URL(request.url);
url.protocol = "https:";
url.hostname = "us-central1-example.cloudfunctions.net";
url.pathname = `/app${url.pathname}`;
return fetch(new Request(url.toString(), request));
}
addEventListener("fetch", (event) => {
event.respondWith(handleRequest(event.request));
});
Run Code Online (Sandbox Code Playgroud)
Workers
在 Cloudflare 仪表板中打开选项卡,并添加一个新路由,将您的域 URL(模式)映射到此工作脚本,例如example.com/*
=> proxy
(脚本)有关完整示例,请参阅GraphQL API Starter Kit(参见参考资料web/proxy
)。
此外,投票支持允许我在 GCF 问题跟踪器中的云函数上放置自定义域 。
归档时间: |
|
查看次数: |
9957 次 |
最近记录: |