我有一个 NPM 包托管在私有 Bitbucket git 存储库(不在官方 NPM 注册表中)。
我在 package.json 中的“dependencies”键下有这个:
"a-private-package" git+ssh://git@bitbucket.org:myusername/a-private-package.git
Run Code Online (Sandbox Code Playgroud)
当我npm install使用 SSH 密钥在本地运行时,它可以工作。
但是当我用于gcloud app deploy部署到 node 的应用引擎标准环境时,我Host key verification failed从 Google Cloud Build得到了一个。
我试过了:
将自定义 SSH 密钥添加到 Cloud Build。
https://cloud.google.com/cloud-build/docs/access-private-github-repos
问题:无法访问cloudbuild.yamlGAE 标准;不能告诉 git 使用 SSH 密钥。
将我的私人 git 存储库添加到 Google Sources。
问题:无法访问cloudbuild.yamlGAE 标准;不能告诉 git 使用 SSH 密钥。
npm pack; npm install
问题:不保留回购历史/URL。
真的有可能吗?
google-app-engine npm google-appengine-node google-cloud-build
简而言之: 我们有在 Google App Engine Nodejs 运行时、flex 环境中运行的网络应用程序。从 5 天前开始,我们所有的部署都开始失败,原因如下:
ERROR: (gcloud.app.deploy) Error Response: [4] Timed out waiting for the app infrastructure to become healthy.
Run Code Online (Sandbox Code Playgroud)
完整的错误堆栈跟踪:
Updating service [default] (this may take several minutes)...\DEBUG: Operation [apps/PROJECT_ID/operations/45d6fec1-9261-41d2-943a-648976b971ed] not complete. Waiting to retry.
Updating service [default] (this may take several minutes)...-DEBUG: Operation [apps/PROJECT_ID/operations/45d6fec1-9261-41d2-943a-648976b971ed] complete. Result: {
"metadata": {
"user": "SOME_EMAIL@mail.com",
"target": "apps/PROJECT_ID/services/default/versions/release-0-6-3",
"@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1",
"insertTime": "2018-02-19T06:08:56.439Z",
"method": "google.appengine.v1.Versions.CreateVersion"
},
"done": true,
"name": "apps/PROJECT_ID/operations/45d6fec1-9261-41d2-943a-648976b971ed",
"error": {
"message": "Timed out waiting for the app …Run Code Online (Sandbox Code Playgroud) 大约每周一次,我们灵活的应用程序引擎节点应用程序将脱机,日志中会显示以下行:Restarting batch of VMs for version 20181008t134234 as part of rolling restart.我们将应用程序设置为使用以下设置自动缩放:
runtime: nodejs
env: flex
beta_settings:
cloud_sql_instances: tuzag-v2:us-east4:tuzag-db
automatic_scaling:
min_num_instances: 1
max_num_instances: 3
liveness_check:
path: "/"
check_interval_sec: 30
timeout_sec: 4
failure_threshold: 2
success_threshold: 2
readiness_check:
path: "/"
check_interval_sec: 15
timeout_sec: 4
failure_threshold: 2
success_threshold: 2
app_start_timeout_sec: 300
resources:
cpu: 1
memory_gb: 1
disk_size_gb: 10
Run Code Online (Sandbox Code Playgroud)
我理解GCP/GAE的滚动重启,但我很困惑为什么谷歌在使我们的主要离线之前没有启动另一个虚拟机.我们是否必须使用最少2个实例运行才能防止这种情况发生?是否有一种方法可以配置我app.yaml以确保在重新启动唯一正在运行的实例之前启动另一个实例?重新启动完成后,所有内容都恢复正常,但仍有10分钟的停机时间,这是不可接受的,特别是考虑到我们无法控制何时重新启动.
google-app-engine virtual-machine google-cloud-platform app-engine-flexible google-appengine-node
我使用nodejs8运行时部署到app引擎并获得了500.我正在部署next.js应用程序,并在查看StackDriver后得到.看来.next可能会被忽略.错误如下:
throw new Error("Could not find a valid build in the '".concat(this.distDir, "' directory! Try building your app with 'next build' before starting the server."));
Error: Could not find a valid build in the '/srv/build' directory! Try building your app with 'next build' before starting the server. at Server.readBuildId (/srv/node_modules/next/dist/server/next-server.js:753:15) at new Server (/srv/node_modules/next/dist/server/next-server.js:80:25) at module.exports (/srv/node_modules/next/dist/server/next.js:6:10) at Object.<anonymous> (/srv/server.js:10:13) at Module._compile (module.js:653:30) at Object.Module._extensions..js (module.js:664:10) at Module.load (module.js:566:32) at tryModuleLoad (module.js:506:12) at Function.Module._load (module.js:498:3) at Function.Module.runMain (module.js:694:10)
Run Code Online (Sandbox Code Playgroud)
我的package.json文件如下所示:
{ …Run Code Online (Sandbox Code Playgroud) 在PHP中,创建一个带有端点的上传URL非常容易,该端点在文件上传后会被点击.文档在这里
$options = ['gs_bucket_name' => $my_bucket];
$upload_url = CloudStorageTools::createUploadUrl('/upload/handler', $options);
Run Code Online (Sandbox Code Playgroud)
我想知道在Node中是否有办法这样做,因为我似乎无法弄清楚如何.
甚至一些关于如何通过http请求来完成它的文档就足够了.
google-app-engine node.js google-app-engine-php google-appengine-node
我有一个应用程序在后台执行一些工作,使用默认的云任务来计划/执行进程。
我希望该作业能够运行几分钟,或者至少了解实际的限制是什么以及我可以采取什么措施。
根据Push Queues 的文档(这似乎相当于现代的 Cloud Tasks?),自动缩放的截止日期是 10 分钟,基本缩放的截止日期是 24 小时。
然而,我的工作似乎在 2 分钟后就崩溃了。115秒还好,121秒就崩溃了。所有情况下的工作负载和资源消耗都是相同的。该消息始终是无用的“处理此请求的进程意外终止。这可能会导致应用程序的下一个请求使用新进程。(错误代码 203)”。
我使用自动扩展 F2 实例还是基本扩展 B2 都没有关系。2 分钟后终止。
根据Node request Handling 文档,“请求处理程序”有 60 秒的超时时间
最后超时是多少?是1分钟、2分钟还是10分钟?如果我希望我的工作运行 5 或 30 分钟,我可以做些什么来改变它吗?
google-app-engine google-cloud-platform google-appengine-node
我想将最大 1GB 的文件上传到 Google Cloud Storage。我正在使用灵活的 Google App Engine。据我了解,GAE 对文件上传有 32MB 的限制,这意味着我必须直接上传到 GCS 或将文件分成块。
几年前的这个答案建议使用 Blobstore API,但是似乎没有 Node.js 的选项,并且文档还建议使用 GCS 而不是 Blobstore 来存储文件。
经过一些搜索后,似乎使用签名网址直接上传到 GCS 可能是最好的选择,但我无法找到有关如何执行此操作的任何示例代码。这是最好的方法吗?是否有任何示例说明如何使用 App Engine 和 Node.js 来实现此目的?
对于所有其他 stackoverflow 问题,人们似乎都在询问私有 npm git 存储库或不同的技术堆栈。我很确定我可以在 GAE Flex 中使用私有 npm 注册表,但我想知道标准版本是否可以?
从GAE 标准文档来看,这似乎不可能。还有人想出其他办法吗?
google-app-engine node.js npm-install google-appengine-node npm-registry
我在 App Engine 标准版和灵活版上使用 Node.js。
在日志查看器中,是否可以显示嵌套在请求日志中的应用程序日志?