ERROR: (gcloud.services.enable) User does not have permission to access project (or it may not exist): The caller does not have permission
ERROR: (gcloud.services.enable) User does not have permission to access project (or it may not exist): The caller does not have permission
我正在寻找一个脚本,我可以 运行 来自 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
Lucas,这个方法可行:
#!/bin/bash
for project in $(gcloud projects list --format="value(projectId)")
do
echo "ProjectId: $project"
gcloud config set project $project
gcloud services enable cloudresourcemanager.googleapis.com --project $project
done
我正在关注 this doc。
如果您使用 --project 标志启用服务,则不必设置项目配置。真正的问题是您想在 bash 脚本中启用多个服务,包括一个名为“列表”的服务,该服务不存在。以下是同时正确启用多个 api 的方法:
#!/bin/bash
# Make sure this is a valid bash array!
services=(service1 service2 service3)
# Option 1
for project in $(gcloud projects list --format="value(projectId)")
do
gcloud services enable $services --project $project
done
# Option 2
for project in $(gcloud projects list --format="value(projectId)")
do
for service in $services
do
gcloud services enable $service --project $project
done
done
请参阅 this 文档。
我正在寻找一个脚本,我可以 运行 来自 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
Lucas,这个方法可行:
#!/bin/bash
for project in $(gcloud projects list --format="value(projectId)")
do
echo "ProjectId: $project"
gcloud config set project $project
gcloud services enable cloudresourcemanager.googleapis.com --project $project
done
我正在关注 this doc。
如果您使用 --project 标志启用服务,则不必设置项目配置。真正的问题是您想在 bash 脚本中启用多个服务,包括一个名为“列表”的服务,该服务不存在。以下是同时正确启用多个 api 的方法:
#!/bin/bash
# Make sure this is a valid bash array!
services=(service1 service2 service3)
# Option 1
for project in $(gcloud projects list --format="value(projectId)")
do
gcloud services enable $services --project $project
done
# Option 2
for project in $(gcloud projects list --format="value(projectId)")
do
for service in $services
do
gcloud services enable $service --project $project
done
done
请参阅 this 文档。