标签: google-cloud-shell

如何从Cloud Shell连接到Cloud SQL?

我想使用Cloud Shell在我的第二代Cloud Sql实例上运行数据库迁移.

在文档中找到了如何使用连接的示例gcloud.但是当我运行命令我得到一个错误:

$ gcloud beta sql connect my-instance --user=root
ERROR: (gcloud.beta.sql.connect) Invalid instance property.
Run Code Online (Sandbox Code Playgroud)

但是,即使这确实有效,我也不确定如何从执行迁移的python脚本连接.我会使用什么连接字符串?我是否需要手动将Cloud Shell IP列入白名单以进行访问?

google-cloud-sql google-cloud-platform google-cloud-shell

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

为什么 google cloud shell 1小时后自动断开连接

我使用Google Cloud Shell在实例上运行Jupyter Notebook,但之后1 hours连接断开。

我重新连接到实例,什么也没有,与重置实例相同。

那么,请告诉我如何设置,使cloud shell的连接保持连接。

谢谢!

restart disconnect google-cloud-shell

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

从Google Cloud Shell中的VI复制选定的文本

尝试从Google Cloud Shell中在VI中打开的文件中复制所选文本,并将其粘贴到另一个Shell选项卡中。如果我以可视模式选择文本,则无法使用。在本地终端上,我将使用xclipshift(+ctrl)选择之前。

有没有办法做到这一点?

google-cloud-shell

5
推荐指数
1
解决办法
359
查看次数

错误:(gcloud.services.enable) 用户没有访问项目的权限(或者它可能不存在):调用者没有权限

我希望将一个脚本放在一起,我可以从 Cloud Shell 运行该脚本以在所有项目中启用 API。它成功地通过了每个项目,但我收到了每个项目的许可被拒绝消息。我是所有者,所以不应该有任何许可问题。

作为权限测试,如果我只运行“gcloud services enable cloudresourcemanager.googleapis.com”,API 将成功启用。

我错过了什么?

#!/bin/bash
for project in  $(gcloud projects list --format="value(projectId)")
do
    echo "ProjectId:  $project"
    for enableapi in $(gcloud services enable cloudresourcemanager.googleapis.com list --project $project --format=list)
     do
        echo "    -> Enabled $enableapi"
    done
done
Run Code Online (Sandbox Code Playgroud)

bash google-cloud-platform google-cloud-shell

5
推荐指数
1
解决办法
5455
查看次数

如何更改 Google Cloud Shell 中的键盘布局?

目前,键盘布局不适用于丹麦语键盘布局,所有特殊字符都不会显示为|

如何更改键盘布局?

google-cloud-shell

5
推荐指数
1
解决办法
696
查看次数

使用Cloud Shell访问GCP中的私有Kubernetes集群

以下链接https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters讨论了如何在单独的自定义VPC中设置私有GKE集群。可从https://github.com/rajtmana/gcp-terraform/blob/master/k8s-cluster/main.tf获得用于创建集群和VPC的Terraform代码。集群创建已经完成,我想使用Google Cloud Shell。我使用了以下命令

$ gcloud container clusters get-credentials mservice-dev-cluster --region europe-west2
$ gcloud container clusters update mservice-dev-cluster \
>     --region europe-west2 \
>     --enable-master-authorized-networks \
>     --master-authorized-networks "35.241.216.229/32"
Updating mservice-dev-cluster...done.
ERROR: (gcloud.container.clusters.update) Operation [<Operation
clusterConditions: []
detail: u'Patch failed'

$ gcloud container clusters update mservice-dev-cluster \
>     --region europe-west2 \
>     --enable-master-authorized-networks \
>     --master-authorized-networks "172.17.0.2/32"
Updating mservice-dev-cluster...done.
Updated [https://container.googleapis.com/v1/projects/protean- 
XXXX/zones/europe-west2/clusters/mservice-dev-cluster].
To inspect the contents of your cluster, go to: 
https://console.cloud.google.com/kubernetes/workload_/gcloud/europe- 
west2/mservice-dev-cluster?project=protean-XXXX

$ kubectl config current-context …
Run Code Online (Sandbox Code Playgroud)

vpc google-cloud-platform kubernetes google-kubernetes-engine google-cloud-shell

5
推荐指数
1
解决办法
791
查看次数

如何让 google cloud shell 在 vi​​m 中正确识别 Esc 键

Esc 键在 vim 中大量使用,用于从插入、命令或可视模式返回正常模式。当您在云 shell 上的 vim 内按 Esc 键时,光标会改变形状并且 vim 会阻塞。如果你连续按 Esc 键或者点击光标本身,那么 vim 会再次工作。我习惯在 vim 中使用 Esc 键恢复正常,因此这使得在云 shell 上使用 vim 非常痛苦。

我不必使用 Esc 键(我可以使用 Ctrl+c 或 Ctrl+[,除了横幅提示仍然声称 vim 在切换到正常模式时处于 INSERT 模式之外),但很难改变我的习惯。

vim 光标在按 Esc 键之前处于 INSERT 模式

vim 光标在按下 Esc 后立即变空,但仍处于 INSERT 模式

再按 Esc 两到三下并等待即可进入 NORMAL 模式

我已经研究过在 vim 中重新映射 Esc 键,但这会使 vim 变得混乱,并且出现奇怪的行为(请参阅如何在 vim 中禁用 Esc 和光标键中不要更改 Esc 键映射的警告)。

退格键在 vim 中也不起作用,但可以在 .vimrc 中修复:

inoremap <bs> <left><del>
Run Code Online (Sandbox Code Playgroud)

如果 Esc 键映射没有修复,那么我将不得不强迫自己学会不使用 Esc 键。云 shell …

vim google-cloud-shell

5
推荐指数
1
解决办法
2282
查看次数

错误:(gcloud.builds.submit) 错误 403:&lt;SERVICE ACCOUNT&gt; 没有对 Google Cloud Storage 对象的 storage.objects.get 访问权限

我正在尝试从 Google 上的 Pub/Sub 教程(链接此处)构建一个 docker 映像。我正在运行此命令:gcloud builds submit --tag gcr.io/project_id/pubsub但由于某种原因我收到标题中提到的错误:ERROR: (gcloud.builds.submit) INVALID_ARGUMENT: could not resolve source: googleapi: Error 403: <SERVICE ACCOUNT> does not have storage.objects.get access to the Google Cloud Storage object., forbidden。我向服务帐户授予了该roles/storage.admin角色,但这不起作用。我什至将服务帐户设置为所有者,但仍然遇到相同的错误。

google-cloud-storage service-accounts google-cloud-platform google-cloud-shell google-cloud-build

5
推荐指数
1
解决办法
2228
查看次数

如何让 gsutil 在 docker 容器中使用 gcloud 凭据

[更新]

为什么 gsutil 在 Cloud Shell 上的 docker 容器中运行时不使用 Gcloud 凭据?

根据 [1] gsutil 应在可用时使用 gcloud 凭据:

通过 gcloud auth 配置凭据后,无论用户是否有任何 boto 配置文件(除非在 BOTO_CONFIG 环境变量中指定了不同的路径,否则这些文件位于 ~/.boto 中)都将使用这些凭据。但是,如果需要一种未存储在 gcloud 凭据存储中的非 GCS 凭据(例如,S3 帐户的 HMAC 凭据),gsutil 仍会在 boto 配置文件中查找凭据。

这似乎在 gcloud 安装中运行良好,但在 docker 镜像中不起作用。我在 Cloud Shell 中使用的流程是:

docker run -ti --name gcloud-config google/cloud-sdk gcloud auth login
docker run --rm -ti --volumes-from gcloud-config google/cloud-sdk gcloud compute instances list --project my_project
... (works ok)

docker run --rm -ti --volumes-from gcloud-config google/cloud-sdk gsutil ls gs://bucket/ …
Run Code Online (Sandbox Code Playgroud)

gsutil docker google-cloud-platform gcloud google-cloud-shell

4
推荐指数
1
解决办法
3260
查看次数

google cloudshell 在哪个地区?

给定一个 google cloudshell,有没有办法找出它位于哪个区域?

非常感谢,马克斯

ps 我知道我可以四处寻找 IP 地址并对其进行地理定位,例如,这 curl freegeoip.net/xml/$(curl ifconfig.co)声称该机器位于列支敦士登的瓦杜兹。不过,我有点希望有一个类似 IP 地址的东西,我可以通过curl 来获取cloudconfig,并且其中包含区域和可用区域。

gcloud google-cloud-shell

4
推荐指数
1
解决办法
3271
查看次数