首页 > 解决方案 > 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);
?>

感谢您的帮助...我不知道该尝试什么了:-(

标签: phpgoogle-app-enginegoogle-secret-manager

解决方案


好的,所以我设法完成了这项工作。作为一个典型的菜鸟,我说了很多废话^^ 长话短说:首先,我(有?)一个坏习惯是从 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 无法打开流/ 谢谢你们试图帮助我。我在这个问题上学到了一两个有趣的东西......每天都是上学日^^


推荐阅读