标签: gcloud

无法访问 [1:104] 处类型为 ARRAY<STRUCT<hitNumber INT64、时间 INT64、小时 INT64、...>> 的值的字段 customDimensions

我是 google bigquery 的新手。我正在尝试从 google bigquery 数据集之一获取数据,但出现以下错误屏幕截图

SQL查询:

SELECT  h.value
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801`,
UNNEST(hits.customDimensions) AS h
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

请让我知道我在这里犯了什么错误。

google-bigquery gcloud

0
推荐指数
1
解决办法
6995
查看次数

使用源存储库从命令行重新部署 Google Cloud Function

我有一个相当简单的 Google Cloud Function,它是从 Cloud Source Repositories 部署的。

我使用 Google Cloud Shell 作为我的开发机器。

当我在开发过程中对函数进行更新时,我使用 CLI 将更新推送到我的源存储库。然而,gcloud functions deploy ...从命令行运行该命令似乎并没有强制GCF 提取最新的源代码。

有时,deploy推送新源代码后的命令只会简单地指出“无需更新”。(这是不正确的。)

更常见的是,它将经历部署过程,但该函数仍将运行以前版本的代码。

发生这种情况时,我可以更新函数的唯一方法是使用仪表板,“编辑”函数,然后单击“部署”按钮(即使我没有更改任何内容。)

我是否忘记进行某种所需的版本控制或标记?有没有办法强制 CLI 从源存储库中提取最新的提交?

google-cloud-platform gcloud google-cloud-source-repos google-cloud-functions

0
推荐指数
1
解决办法
4926
查看次数

不使用 --ciphertext-file 的 gcloud kms 解密

能够使用以下命令在没有 --ciphertext-file 文件路径的情况下进行加密

echo -n mytext | gcloud kms encrypt --plaintext-file=- \
 --ciphertext-file=- --location=xxxx --keyring=xxx \
 --key=xxxx | base64
Run Code Online (Sandbox Code Playgroud)

上面的命令返回一个响应CiQALDSTqyFnlrxtK9phQqLb849IZTiIOvjsG2.....

现在我想解密 CiQALDSTqyFnlrxtK9phQqLb849IZTiIOvjsG2.....

以下是我尝试过但对我不起作用的

echo -n CiQALDSTqyFnlrxtK9phQqLb849IZTiIOvjsG2..... | \
 gcloud kms decrypt --plaintext-file=- \
 --ciphertext-file=- --location=xxx --keyring=xxx \
 --key=xxx | base64
Run Code Online (Sandbox Code Playgroud)

收到错误ERROR: (gcloud.kms.decrypt) INVALID_ARGUMENT: Decryption failed: the ciphertext is invalid.

谢谢,任何帮助将不胜感激

gcloud google-cloud-kms

0
推荐指数
1
解决办法
1884
查看次数

在使用 gcloud 控制台创建的容器优化操作系统 [COS] 上的 GCP 计算实例中安装磁盘

所以我使用这个 gcloud 控制台命令从容器映像创建一个实例

gcloud compute instances create-with-container test-instance \
--zone us-xx \
--container-image asia.gcr.io/my-project/my-docker-image \
--container-privileged \
--network my-network \
--subnet my-net-sub \
--create-disk name=test-data,device-name=test-data,auto-delete=yes,size=200GB,type=pd-ssd \
--container-mount-disk name=test-data,mount-path=/mnt/disks/data \
--service-account me@myproject.iam.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)

它工作正常并创建实例,但它不会安装数据磁盘。为什么?更准确地说,要添加我需要的数据磁盘

  • 创建整个磁盘的单个分区并创建ext4文件系统
  • 并将磁盘挂载到给定路径上

如何指定使用ext4创建分区,然后挂载分区部分?

google-compute-engine google-cloud-platform gcloud

0
推荐指数
1
解决办法
1729
查看次数

如何向 Google Cloud 上的用户帐户授予服务帐户访问权限

我在命令方面遇到问题gcloud,花了一周的时间来解决。当我运行 gcloud 命令时gcloud auth revoke,出现以下错误。

WARNING: This command is using service account impersonation. All API calls will be executed as [xxx@gmail.com]. // xxx@gmail.com is my user account which is the owner of the project.
ERROR: (gcloud.iam.service-accounts.create) Failed to impersonate [xxx@gmail.com]. Make sure the account that's trying to impersonate it has access to the service account itself and the "roles/iam.serviceAccountTokenCreator" role.
Run Code Online (Sandbox Code Playgroud)

为了解决此问题,我创建了一个具有“roles/iam.serviceAccountTokenCreator”角色的服务帐户,并将策略授予 xxx@gmail.com。但它不起作用。

详细错误如下(使用“--log-http”运行命令)。

=======================
==== request start ====
uri: https://oauth2.googleapis.com/token
method: POST
== headers start == …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform gcloud google-iam

0
推荐指数
1
解决办法
1702
查看次数

谷歌云跟踪在 Express 中不起作用

我正在尝试在托管于谷歌云平台的 MERN 项目中实现谷歌跟踪。

我已经按照 Google 提供的指南和示例进行操作,但我无法使其以任何方式工作。

import gCloudTrace from '@google-cloud/trace-agent';
// initialize gcloud trace
if (process.env.NODE_ENV === 'production') {
  console.log(`Starting google cloud trace...`);
  const tracer = gCloudTrace.start();
  console.log(JSON.stringify(tracer,null,2));
};

import express from 'express';
import apiRoute  from './api.js';
import indexRoute from './index/indexRoute.js';

try {

  // setup
  const host = process.env.HOST || '0.0.0.0';
  const port = process.env.PORT || 5050;
  const app = express();

  // routes
  app.use('/', indexRoute);
  app.use('/api', checkGloblalSettings, apiRoute);

  // create and run HTTP server
  app.listen(port, host, () => {
    console.log(`EXPRESS …
Run Code Online (Sandbox Code Playgroud)

google-app-engine gcloud stackdriver google-cloud-stackdriver

0
推荐指数
1
解决办法
903
查看次数

Windows 上的 Gcloud 命令(使用 git bash)正在记录错误:WindowsApps/python3:权限被拒绝

当我在 Windows 上运行它时,所有命令都可以正常工作PowerShell

起初,我无法gcloud.sh脚本文件或 Git Bash 终端运行任何命令。

好像git bash没找到SDKPython自带的捆绑安装gcloud

所以我也为 Windows 安装了 Python。

现在我可以从PowerShell,.sh fileGit bash.

PowerShell,我得到一个干净的日志,如下所示:

在此处输入图片说明

但是从我从.sh脚本文件或从Git bash窗口运行它。这被记录:

在此处输入图片说明

这似乎是工作的罚款,但这个Permission Denied错误的WindowsApps/python3

我怎样才能摆脱它?

python bash powershell git-bash gcloud

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

Google Cloud 不允许我使用管理员角色创建第一个项目

我正在尝试使用组织的管理员帐户在谷歌云中创建我的第一个项目。我可以访问管理员的电子邮件和密码,并且我正在使用该帐户登录来执行此操作。问题是,当我单击创建新项目时,我收到以下错误:

There was an error while loading /home/dashboard?project=proven-now-305315&authuser=1.

You are missing at least one of the following required permissions:
Project

resourcemanager.projects.get
Check that the project ID is valid and you have permissions to access it. Learn more

Send feedback
Run Code Online (Sandbox Code Playgroud)

详细信息是,在我的资源管理面板中,我已经授予了他们要求我访问资源的权限,如下图所示:在此输入图像描述

正如我所读到的,项目 IAM 管理员角色应该授予该resourcemanager.projects.get角色,正如您在图像中看到的那样,资源 rcv @ .. 是管理员已激活它,但是我一直尝试创建一个新项目,但它没有激活请允许我这样做。任何想法?

google-cloud-platform gcloud google-cloud-iam

0
推荐指数
2
解决办法
4757
查看次数

gcloud iam service-accounts add-iam-policy-binding ... NOT_FOUND:未知服务帐户

我正在创建一个新的服务帐户并尝试为其分配角色。分配部分无法找到我刚刚创建的帐户。

为什么?

*[master][~]$ gcloud iam service-accounts add-iam-policy-binding some-project --member="serviceAccount:some-name@some-project.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor"
ERROR: (gcloud.iam.service-accounts.add-iam-policy-binding) NOT_FOUND: Unknown service account

*[master][~]$ gcloud iam service-accounts add-iam-policy-binding some-project --member="some-name@some-project.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor"
ERROR: (gcloud.iam.service-accounts.add-iam-policy-binding) NOT_FOUND: Unknown service account

*[master][~]$ gcloud iam service-accounts list                                                                                                                                                           
DISPLAY NAME                            EMAIL                                                     DISABLED
Compute Engine default service account  01234567890-compute@developer.gserviceaccount.com         False
App Engine default service account      some-project@appspot.gserviceaccount.com                  False
Some Name                               some-name@some-project.iam.gserviceaccount.com            False
Run Code Online (Sandbox Code Playgroud)

有趣的是,新帐户也不会出现在门户的IAM 和管理 > 服务帐户中。当我从 CLI 中列出它们时,它仍然显示。呜呜……

gcloud google-iam

0
推荐指数
1
解决办法
5632
查看次数

用于批量元数据更新的 gcloud 命令

我正在尝试编写一个 gcloud 命令,对计算引擎实例进行批量元数据更新。

通常我可以通过管道传输gcloud compute instances listxargs gcloud compute instances add-metadata. 但是,这会受到阻碍,因为由于某些无法解释的原因,即使计算实例名称似乎是全局唯一的,也add-metadata需要实例名称区域。因此,现在我被迫尝试将两条数据(名称和区域)传输到 add-metadata 命令。如果我不提供两者,我会得到:

ERROR: (gcloud.compute.instances.add-metadata) Underspecified resource [worker-1]. Specify the [--zone] flag.
Run Code Online (Sandbox Code Playgroud)

我准备放弃 bash/xargs 咒语并切换到 python,但我想我应该先检查这里。

我有这个命令:

gcloud compute instances list \
        --filter="name~'worker' AND zone~'us-central1'" \
        --format 'value(name,zone)'
Run Code Online (Sandbox Code Playgroud)

它返回类似:

worker-1    us-central1-c
worker-2    us-central1-c
worker-3    us-central1-c
worker-4    us-central1-c
Run Code Online (Sandbox Code Playgroud)

然后我需要将它们通过管道传输到如下命令中:

gcloud compute instances add-metadata --zone=[zone goes here] --metadata myvalue=true [instance name goes here]
Run Code Online (Sandbox Code Playgroud)

但事实证明,单独使用 xargs 是很棘手/烦人的。有没有更好或更简单的方法来完成我正在尝试的事情?

bash xargs gcloud

0
推荐指数
1
解决办法
235
查看次数