问题描述
我是 Secret manager 的新手,我正在尝试使用 PHP 应用程序显示测试密钥。 部署应用程序时,我得到的只是错误 500。 我根据 gcp 文档(Secret Manager Secret Accessor + Storage Object Admin)为我的 [email protected] 服务帐户提供了所需的角色 我还从云外壳安装了 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-failed-to-open-stream/ 谢谢你们试图帮助我。我在这个问题上学到了一两件有趣的事情......每天都是上学日^^