我们的电子商务网站上存在一个问题,即用户偶尔会两次点击"结帐",并且会对其卡进行两次充值.
这是一个常见的错误,容易修复,但我想在我们的水豚设置中测试解决方案.一旦我调用click_button('checkout'),我是否可以假装我是用户点击浏览器后退按钮然后再次调用click_button('checkout')?
我正在探索一些PHP框架,目前的领跑者是Kohana.
拥有Rails背景我已经习惯了rails社区所谓的"RESTful"路由.因此,"GET/posts"显示所有帖子,并由帖子控制器的索引方法处理."POST/posts"创建一个新的post对象,并由Posts Controller的不同方法处理.
由于这两个请求中的路径相同,因此路由器需要根据HTTP方法做出决策.
Kohana的路由器是否能够做到这一点?
我希望我的pod中的容器共享临时(缓存)数据的卷.我不介意当pod终止时数据是否丢失(实际上,我希望删除数据并回收空间).
该kubernetes文档做出emptyDir听起来像我想要的东西:
将Pod分配给节点时,首先会创建一个emptyDir卷,只要Pod在该节点上运行,就会存在
..和
默认情况下,emptyDir卷存储在支持节点的任何介质上 - 可能是磁盘或SSD或网络存储,具体取决于您的环境.但是,您可以将emptyDir.medium字段设置为"Memory",以告知Kubernetes为您安装tmpfs(RAM支持的文件系统)
这听起来像默认行为是将卷存储在磁盘上,除非我明确请求内存.
但是,如果我在GKE集群上创建以下pod:
apiVersion: v1
kind: Pod
metadata:
name: alpine
spec:
containers:
- name: alpine
image: alpine:3.7
command: ["/bin/sh", "-c", "sleep 60m"]
volumeMounts:
- name: foo
mountPath: /foo
volumes:
- name: foo
emptyDir: {}
Run Code Online (Sandbox Code Playgroud)
..然后在pod上打开一个shell并将2Gb文件写入卷:
kubectl exec -it alpine -- /bin/sh
$ cd foo/
$ dd if=/dev/zero of=file.txt count=2048 bs=1048576
Run Code Online (Sandbox Code Playgroud)
然后我可以在GKE Web控制台中看到容器的RAM使用量增加了2Gb:
在我看来emptyDir,默认情况下,GKE将内存卷存储在内存中.我计划运行的工作负载需要大量内存,所以我希望emptyDir磁盘支持卷 - 这可能吗?该GKE存储文档没有太多在这个问题上说.
另一种方法可能是使用一个本地SSD为我的缓存数据,但是如果我将它们安装在与GKE文档他们由同一个节点上运行的所有豆荚共享和数据不上荚终止清理建议,这不符合我自动管理资源的目标.
这是df -h容器内部的输出:
# …Run Code Online (Sandbox Code Playgroud) docker google-cloud-platform kubernetes google-kubernetes-engine
Google API 客户端通常会识别GOOGLE_APPLICATION_CREDENTIALS环境变量。如果找到,它应该指向带有服务帐户或用户凭据的 JSON 文件。
可以从 GCP Web 控制台下载服务帐户凭据,如下所示:
{
"type": "service_account",
"project_id": "...",
"private_key_id": "...",
"private_key": "...",
"client_email": "...",
"client_id": "...",
"auth_uri": "...",
"token_uri": "...",
"auth_provider_x509_cert_url": "...",
"client_x509_cert_url": "..."
}
Run Code Online (Sandbox Code Playgroud)
用户凭据通常可用~/.config/gcloud/application_default_credentials.json,如下所示:
{
"client_id": "...",
"client_secret": "...",
"refresh_token": "...",
"type": "authorized_user"
}
Run Code Online (Sandbox Code Playgroud)
这是官方 google rubygem检测通过环境 var 提供的凭据类型的示例。
我想使用两种类型的凭据对未配置的 gcloud 安装进行身份验证。在我们的例子中,我们碰巧将GOOGLE_APPLICATION_CREDENTIALS变量和路径传递到 docker 容器中,但我认为这对于 docker 外部的干净安装也是一个有效的问题。
如果凭据文件是服务帐户类型,我可以这样做:
gcloud auth activate-service-account --key-file=${GOOGLE_APPLICATION_CREDENTIALS}
Run Code Online (Sandbox Code Playgroud)
但是,我看不到任何方法来处理凭据属于真实用户的情况。
问题:
GOOGLE_APPLICATION_CREDENTIALS在可用时使用?我希望在我的django进程启动时运行一些环境检查,并在发生错误时大声死亡.我在想数据库的编码不正确,或者机器有我们不支持的python版本.
我宁愿我们的团队面临他们必须解决的致命错误,而不是能够忽略它.
我写这些支票很好,但我很好奇最好放的地方在哪里.如何让它们作为django启动过程的一部分执行?我以为可能有一个我可以听的信号,但我在文档中找不到相关的信号.
我想在 GCP 上配置我们公司的容器注册表:
目标是避免使用latest标签 - 或任何其他可变标签 - 并始终为新图像使用新的、不可变的标签。
是否有一组 IAM 角色或权限可以实现此行为?
我想写一个简单的Linux CLI应用程序,可以拍摄2个视频源(1个演示者讲话,1个幻灯片,没有音频)并合并它们.
我希望整个输出视频是两个原创视频,并排.如果做不到这一点,我的第二个最佳选择将是"画中画"风格的视频,主持人在角落里的一个小框架中.
从几个小时研究,GStreamer的看起来可能能够做到这一点.任何人都可以在我花更多时间尝试之前确认吗?
如果不能,那么我可以使用其他API吗?