我设计了一个简单的对话框流,并尝试通过在代码中提供用户名和密码来启用基本身份验证。它有效。如下所示(参考 check_auth 函数):
app.py
对话框流在给定的用户名和密码下工作正常。我尝试部署使用 cloudbuild.yaml 通过 CI/CD 运行 cloudrun,它工作正常。
现在,我想使用秘密管理器来存储用户名和密码,而不是在代码中提供。
因此,我在秘密管理器中创建了名称:secret-username、值:myuser 和名称:secret-password、值:mypassword。此外,我在 cloudrun 中引用了秘密,如下所示: 秘密管理器屏幕截图如下所示: 另外,我对代码进行了更改,如下所示(我将秘密名称称为用户名,而不是硬编码我的用户名值):
它已通过 cloudbuild 成功部署到 cloudrun。但是,Dialogflow 不接受我的用户名和密码。当我没有在 dialogflow 中提供任何预期的凭据时,它会给出未经身份验证的错误。但是,当我将用户名和密码设置为“”myuser”时和 secretmanager 值中提到的“mypassword”,它给出了 webhookcallfailed:error:unavailable,如下所示:
此外,我已在云构建设置中启用了所有必需的权限(秘密管理员、服务帐户、cloudrun)。你能帮我解决这个问题吗?这与任何权限问题或与代码有关吗?