python - Rest API Google Cloud - 创建/编辑/列出 API 密钥
问题描述
我正在尝试创建一个 API 来从 VM 实例内部管理 API 密钥,因此我正在寻找一种编程和/或使用 Google REST APIS 方式来创建、删除和列出 Google Cloud API 管理凭据,尤其是 API 密钥。
使用 Google Cloud SDK,您可以使用以下命令(“gcloud alpha services api-keys”文档)创建 API 密钥:
$ gcloud alpha services api-keys create --display-name="test name"
在仔细搜索了 Google 的 Cloud文档后,我没有找到一种编程方式(示例 1),也没有使用 cURL(示例 2)来调用 Google API 来管理 API 密钥。
以编程方式创建存储桶的示例 1:
from google.cloud import storage
def create_bucket_class_location(bucket_name):
"""Create a new bucket in specific location with storage class"""
# bucket_name = "your-new-bucket-name"
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
bucket.storage_class = "COLDLINE"
new_bucket = storage_client.create_bucket(bucket, location="us")
print(
"Created bucket {} in {} with storage class {}".format(
new_bucket.name, new_bucket.location, new_bucket.storage_class
)
)
return new_bucket
使用 REST API 创建存储桶的示例 2:
curl -X POST --data-binary @create-bucket.json \
-H "Authorization: Bearer OAUTH2_TOKEN" \
-H "Content-Type: application/json" \
"https://storage.googleapis.com/storage/v1/b?project=PROJECT_ID"
解决方案
AFAIK,API-KEYS REST 文档尚未发布。
免责声明:alpha
状态 API 可能会发生变化。您的代码将来可能会中断。
我建议创建一个新的 Google Cloud 项目来进行测试。
以下示例适用于 Windows。Linux 和 macOS 的概念相同。
我们需要几个变量设置:
# Your Project ID
set GCP_PROJECT=my-project-123456
# Google OAuth Access Token
# Fancy DOS batch stuff to fetch a token
call gcloud auth print-access-token > token
set /p GCP_TOKEN=<token
del token
示例 #1:创建 API KEY:
set URL=https://apikeys.googleapis.com/v2alpha1/projects/%GCP_PROJECT%/keys?alt=json
curl -X POST %URL% ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer %GCP_TOKEN%" ^
-d "{\"displayName\": \"test key\", \"restrictions\": {}}"
示例 #2 - 列出 API 密钥:
curl https://apikeys.googleapis.com/v2alpha1/projects/%GCP_PROJECT%/keys?alt=json ^
-H "Accept: application/json" ^
-H "Authorization: Bearer %GCP_TOKEN%"
示例 #3 - 删除和 API KEY
注意:您将需要 KEY 名称。使用列表示例。name
使用列表 json键的最后一部分。
set URL=https://apikeys.googleapis.com/v2alpha1/projects/%GCP_PROJECT%/keys
set KEY=2be9ee20-955c-4405-ac0c-e9f8ae1a3839
curl -X DELETE %URL%/%KEY% ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer %GCP_TOKEN%"
补充说明:
有一个v2beta1
API。我没有用这个版本测试过。
示例端点:
https://apikeys.googleapis.com/v2beta1/projects/development-219304/keys
推荐阅读
- r - ggplot2 - 带有单独图例的 facet_wrap
- python - 使用 MNE 包计算 Stockwell 变换的语法?
- spring-mvc - 从 url 参数 Spring MVC 中的下拉列表中发送项目
- azure - 从 DevOps 管道中的服务主体生成 SAS 令牌(自托管)
- python - python中的for循环-我可以循环一个变量吗?
- tfs - 完全卸载 TFS 2013
- ffmpeg - Ffmpeg 从具有 fullPath 的图像创建 gif
- sql - 如何编写带有检查约束的新列以仅允许值 Y、N?
- python - 使用 Python/Flask/Waitress 进行多线程处理导致重复输出
- python - 在 Python 中使用 OpenCV 轮廓分析荧光细胞图像