php - GCE Secret Manager 通过 php 应用程序显示测试秘密
问题描述
我是 Secret manager 的新手,我正在尝试使用 php 应用程序显示测试秘密。部署应用程序时我得到的只是错误 500。根据 gcp 文档(Secret Manager Secret Accessor + Storage Object Admin),我为我的 xxxx@appspot.gserviceaccount.com 服务帐户提供了所需的角色我还从云 shell 安装了 composer所以我真的无法发现我做错了什么。
这是我的 composer.json
{
"require-dev": {
"paragonie/random_compat": "^9.0.0"
},
"require": {
"google/cloud-secret-manager": "^1.2"
}
}
这就是我的代码的样子:
<?php
use Google\Cloud\SecretManager\V1\SecretManagerServiceClient;
$projectId = 'myproject';
$secretId = 'mysecret';
$versionId = '1';
$client = new SecretManagerServiceClient();
$name = $client->secretVersionName($projectId, $secretId, $versionId);
$response = $client->accessSecretVersion($name);
$payload = $response->getPayload()->getData();
printf('Plaintext: %s', $payload);
?>
感谢您的帮助...我不知道该尝试什么了:-(
解决方案
好的,所以我设法完成了这项工作。作为一个典型的菜鸟,我说了很多废话^^ 长话短说:首先,我(有?)一个坏习惯是从 google shell(不是 sdk)构建我的应用程序。我猜这没什么问题(除了它实际上不太方便),但在这个用例中,您需要将包含访问密钥的 json 文件链接到您的 GOOGLE_APPLICATION_CREDENTIALS 环境变量,以便它有权查询秘密管理器。我不知道如何在没有 SDK 的情况下做到这一点。因此,一旦使用 sdk 和正确分配的 json 文件部署了应用程序,那就更好了。然后我遇到了一个 autoload.php 错误,我设法使用这篇法语文章修复了:https ://www.journaldunet.fr/web-tech/developpement/1441107-comment-corriger-l-erreur-require-vendor-autoload- php 无法打开流/ 谢谢你们试图帮助我。我在这个问题上学到了一两个有趣的东西......每天都是上学日^^
推荐阅读
- apache-spark - 在启用了推测的情况下,如何在 Spark 中管理写入?
- numpy - 从包含 ma.masked 的列表创建屏蔽数组
- java - Python 程序如何调用 Maven Central 工件中的 Java 类?
- django - 如何在仍然能够使用 Django Rest Framework 写入该字段的同时显示 StringRelatedField 而不是主键?
- javascript - Http 重定向循环 Node/Express
- javascript - 使用express的html模板问题
- python-3.x - 我应该在 Python 中使用什么数据结构来表示 Poker - NL Texas Holdem 中的翻牌前树?
- java - 如何测试应用程序与 Google Cloud Storage 的集成?
- haskell - 了解haskell中的循环/递归数据类型
- html - 使用纯 CSS 的出现和消失动画