小编den*_*dog的帖子

使用 github 操作从 monorepo 部署单个服务

我有大约 10 个单独的微服务,它们主要是用于各种数据处理作业的云功能,它们都位于一个 github 存储库中。

目标是在推送到分支时触发将这些服务有选择地部署到 Google Cloud Functions - 当单个功能已更新时。

我必须避免单个服务更新导致部署所有云功能的情况。

我当前的存储库结构:

/repo
--/service_A
----/function
----/notebook
--/service_B
----/function
----/notebook
Run Code Online (Sandbox Code Playgroud)

附带说明一下,使用 Github Actions VS Google Cloud Build 进行此类自动化的优缺点是什么?

continuous-integration github continuous-deployment google-cloud-build github-actions

22
推荐指数
3
解决办法
7653
查看次数

Webpack错误,加载块失败

堆栈:Webpack 4.16.0,Node8,Vuejs2

服务我的Vuejs应用程序时,我看到以下错误。

Error: Loading chunk 4 failed.
(missing: https://myapp.com/ui.chunk.bundle.js)
    at HTMLScriptElement.s (demo:1)
Run Code Online (Sandbox Code Playgroud)

此错误在各个版本中都是一致的,可以通过URL访问实际文件本身。

我正在使用通过进行代码拆分import(),初始应用可以很好地加载,但是当加载另一个块时,流程将中断,并且ui.chunk.bundle.js&之间也可能有所不同vendors~ui.chunk.bundle.js

为生产进行构建时,会显示一个新错误,但似乎也与加载模块有关:

demo:1 TypeError: Cannot read property 'call' of undefined
    at o (demo:1)
    at Object.349 (ui.chunk.bundle.js:1)
    at o (demo:1)
    at o.t (demo:1)
Run Code Online (Sandbox Code Playgroud)

我曾尝试升级webpack和babel,但由于之前运行得非常好,因此可能会失败。

在本地计算机而非Google App Engine上运行应用程序时,一切似乎都很好。

应用程序的加载方式: 通过脚本标签domainA.com将其加载到其他网站,因此运行脚本标签进行调用myapp.com/js并开始流程,即应用程序基于某种逻辑加载各种块。

在myapp.com上访问由webpack生成的索引页面包时,所有内容都会正确加载。

请帮忙!

javascript webpack vue.js babeljs

12
推荐指数
1
解决办法
1441
查看次数

使用transform-async-to-generator插件时,未定义Babel - regeneratorRuntime

我无法正确设置babel以使用async/await.

我正在使用babel 7和webpack 4.

如果可能的话,我不想使用babel-polyfill!

我的babelrc文件:

{
    "presets": [[
        "@babel/env",
        {"modules": false}
    ]],
    "plugins": [
      "syntax-dynamic-import",
      "transform-async-to-generator"
    ]
}
Run Code Online (Sandbox Code Playgroud)

码:

async function init() {
  const loaderData = await initLoader();
  initCmp(loaderData)
    .then(initApi(loaderData.key))
    .catch();
}
init();
Run Code Online (Sandbox Code Playgroud)

和错误:

refactor.main.js:18 Uncaught ReferenceError: regeneratorRuntime is not defined
    at eval (refactor.main.js:18)
    at eval (refactor.main.js:47)
    at Object../client/refactor.main.js (cmp.bundle.js:312)
    at __webpack_require__ (cmp.bundle.js:62)
    at eval (main.js:6)
    at Object../client/main.js (cmp.bundle.js:300)
    at __webpack_require__ (cmp.bundle.js:62)
    at cmp.bundle.js:179
    at cmp.bundle.js:182
Run Code Online (Sandbox Code Playgroud)

javascript babel async-await webpack babeljs

9
推荐指数
2
解决办法
1万
查看次数

将Visual Studio代码集成到Google Cloud中

我喜欢使用VS Code.

我喜欢Google Cloud代码编辑器中的小改动和调试的快速性.

如何与我最喜欢的编辑器(VS)上的Google App Engine实例上的代码进行交互

google-cloud-platform visual-studio-code

8
推荐指数
1
解决办法
5171
查看次数

在构建过程中将文件从 GCS 复制到 Cloud Run Docker 容器中

我试图gsutil在构建步骤期间将文件从 GCS 复制到运行容器中。

我尝试过的步骤:

RUN pip install gsutil
RUN gsutil -m cp -r gs://BUCKET_NAME $APP_HOME/artefacts
Run Code Online (Sandbox Code Playgroud)

错误:

ServiceException: 401 Anonymous caller does not have storage.objects.get access to the Google Cloud Storage object.
CommandException: 1 file/object could not be transferred.
The command '/bin/sh -c gsutil -m cp -r gs://BUCKET_NAME $APP_HOME/artefacts' returned a non-zero code: 1
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
Run Code Online (Sandbox Code Playgroud)

服务帐户(默认计算和cloudbuild)确实可以访问GCS,我也尝试过使用gsutil config -a各种其他标志,但没有成功!

我不确定应该如何进行身份验证才能成功访问存储桶。

google-cloud-storage docker google-cloud-platform google-cloud-run

7
推荐指数
2
解决办法
7929
查看次数

Vuejs Router,有条件加载JavaScript代码

我正在将Vue Router集成到我的应用程序中.

在我的一个组件中,我正在使用一些js代码,我不想加载或在另一个路由时出现?

compA.vue
<script>console.log('hello')</script>

app.com/a -> I should see console log Hello.

app.com/b -> when I access this I should not see hello in the console.
Run Code Online (Sandbox Code Playgroud)

编辑:根据回复澄清.

我有两个组件,每个组件都有自己的生命周期钩子,所以我不需要设置逻辑来基于组件触发函数...

如果用户访问compA并且函数触发并产生一些副作用,当我访问compB时,我希望没有类似于传统路由的工作方式的副作用,因为它将获得新代码并再次呈现页面.

javascript vue.js vue-router vuejs2

6
推荐指数
1
解决办法
425
查看次数

定义 apache beam 管道的正确方法

我是 Beam 新手,正在努力寻找许多好的指南和资源来学习最佳实践。

我注意到的一件事是有两种定义管道的方法:

with beam.Pipeline() as p:
# pipeline code in here
Run Code Online (Sandbox Code Playgroud)

或者

p = beam.Pipeline()
# pipeline code in here
result = p.run()
result.wait_until_finish()
Run Code Online (Sandbox Code Playgroud)

是否存在首选每种方法的特定情况?

python google-cloud-dataflow apache-beam

6
推荐指数
1
解决办法
694
查看次数

多个 Vue 应用程序,在 monorepo 中共享组件

我们的系统有两种关键用户类型,我们希望将应用程序分解到单个存储库中的两个单独的文件夹中。那么我们的想法是拥有一个两个项目都可以使用的共享组件库。

我正在寻找有关如何实现此类设置的最佳实践的一些指导,理想情况下我们可以满足以下条件:

  • 每个应用程序都位于单独的文件夹中
  • 共享库,也许使用 github 包
  • 共享配置文件
  • 在共享 lib 文件夹中运行的故事书

javascript vue.js vuejs2

6
推荐指数
1
解决办法
625
查看次数

WebCrypto API在哪里存储密钥?

我正在成功使用webcrypto API加密服务器和客户端之间的消息(假设我需要手动执行此操作)。

我的问题是我需要检查用户和服务器的密钥对是否已经存在,而不是一直生成新的密钥对。有没有办法检查它是否存在并检索它以解密服务器消息?

为了明确起见,我privateKey在浏览器上,publicKey并被发送到服务器。

我有一个nodejs服务器和普通的JS前端。

提前致谢。

javascript cryptography webcrypto-api

5
推荐指数
2
解决办法
2067
查看次数

Tensorflow GPU 分析

我正在使用 TF keras API 训练模型,我遇到的问题是我无法最大化 GPU 的使用,它在内存和处理方面都未得到充分利用。

在分析模型时,我可以看到许多标记为的操作,_Send我认为这些操作是在 GPU 和 CPU 之间跳跃的一些数据。

在此输入图像描述

由于我使用的是 keras,因此我没有直接在设备上放置变量,因此我不清楚为什么会发生这种情况或如何优化。

另一个有趣的副作用似乎是,较大的批次会使训练速度变慢,GPU 需要等待很长时间才能从 CPU 获取数据。

分析器还建议:

59.4 % of the total step time sampled is spent on 'Kernel Launch'. It could be due to CPU contention with tf.data. In this case, you may try to set the environment variable TF_GPU_THREAD_MODE=gpu_private.
Run Code Online (Sandbox Code Playgroud)

我已在笔记本顶部设置了此环境变量,但没有效果 - 我不清楚如何检查它是否具有预期效果。

非常感谢您在这里的帮助,我已阅读张量流文档上的所有可用指南。

tensorflow tensorboard tensorflow-datasets tensorflow2.0

5
推荐指数
0
解决办法
996
查看次数