【问题标题】:Link a dialogflow agent to a Google Cloud Console project and inherit all the team members i assigned to the project?将对话流代理链接到 Google Cloud Console 项目并继承我分配给该项目的所有团队成员?
【发布时间】:2020-01-22 22:01:15
【问题描述】:

如何创建一个对话流代理并将其与我创建的 Google Cloud Console 项目相关联,并让它继承我分配给该项目的所有团队成员? 我正在开发一个对话流项目。我在 Google Cloud Console 中创建了一个新项目并添加了一些团队成员。但是,当我切换到 dialogflow 控制台时,我看不到我的项目和我添加到其中的人。当我在 dialogflow 中创建新代理时,它似乎与我在云控制台中创建的项目无关,我必须明确与团队共享代理。所以谷歌云控制台项目有点没用。 例如,在 Azure 认知服务中,我可以将所有内容链接到我的根项目。

最佳 CK

【问题讨论】:

    标签: dialogflow-es google-cloud-console


    【解决方案1】:

    Google 可以做得更好,使这些资源(例如项目)更加清晰。

    实际上(据我所知)所有 Google 项目都代表相同的底层项目资源,例如,您可以从 Google Cloud Console 查看 DialogFlow 项目,反之亦然。

    我怀疑 (!) 您创建了 2 个不同的项目:一个使用 (Google Cloud Platform) Console,另一个使用 DialogFlow Console

    如果您安装了 Cloud SDK(又名 gcloud),您应该能够使用以下方式列出您的所有项目(Cloud、DialogFlow 等):

    gcloud projects list
    

    现在,回答您的问题。 Google (!) 项目的用户是 Google 帐户用户和组,还包括服务帐户。您可以列出给定项目的用户:

    gcloud projects get-iam-policy ${PROJECT}
    

    理想情况下,您要做的是确保此政策在两个项目中都得到体现。我不愿意提供脚本,因为服务帐户使这种共享变得复杂。服务帐户跨项目工作,但它们是在项目中自动创建的。一个简单的帐户复制和粘贴可能会破坏您的某些东西。

    也就是说,这是一个gcloud 命令,用于从一个项目${SRC} 中枚举${ROLE} (roles/owner) 的列表:

    PSRC=...
    ROLE="roles/owner"
    MEMBERS=$(gcloud projects get-iam-policy ${PSRC} \
    --flatten=bindings \
    --filter=bindings.role:${ROLE} \
    --format="value(bindings.members)") && echo ${MEMBERS}
    

    注意如果需要,可能有一种方法可以拆分user:some@email.com

    然后您可以遍历此列表并将这些帐户添加(!)到${PDST}

    for MEMBER in ${MEMBERS}
    do
      gcloud projects add-iam-policy-binding ${DST} \
      --member=${MEMBER} \
      --role=${ROLE}
    done
    

    最后,当您创建 DialogFlow 项目时,您可以选择使用现有的 Google(云)项目。下一次,你按照这个流程,请寻找“新建或使用现有项目”提示。您将能够选择您之前创建的项目来重用您的用户。

    【讨论】:

    • 感谢您的推荐
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 2019-04-11
    • 2013-12-17
    相关资源
    最近更新 更多