我在Google Cloud Functions(https://europe-west1-myproject-name.cloudfunctions.net/api/v1/ical.ics)上设置了一个API。这工作得很好,但我希望为API设置一个“友好”的域名。:)
根据谷歌documentation的说法,这似乎很容易,但它似乎不适用于美国以外的云功能,例如。欧洲西部1.
我已经根据文档用下面的代码更新了firebase.json
文件。
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "/api/**",
"function": "api"
},
{
"source": "**",
"destination": "/index.html"
}
]
}
当访问https://myproject-name.web.app/api/v1/ical.ics时,我被重定向到https://us-central1-myproject-name.cloudfunctions.net/api/api/v1/cal.ics,错误403和下面的错误消息。
Error: Forbidden
Your client does not have permission to get URL /api/api/ical.ics from this server.
我一定是忽略了一些非常基本的东西,因为这似乎是一个非常简单的操作?:)
亲切问候/K
2条答案
按热度按时间j8ag8udp1#
如文档中所述(见蓝色文本框):
如果您使用HTTP函数为Firebase Hosting提供动态内容,则必须使用us-central 1。
您还可以在您关于“使用云函数提供动态内容和托管微服务”的问题中提到的doc中找到类似的警告(也请参见蓝色文本块):
Firebase Hosting仅支持us-central 1中的云功能。
ecbunoof2#
这并不是你想要的答案,因为Firebase Hosting不可能。但是,可以通过使用
Cloud Run
在托管在欧盟的云功能之前获得自定义域。我遵循了这个指南:https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-functions在此之后,我在Cloud Run上的
Manage custom domains
下添加了自定义域。