企業級服務平台

更新時間:
Copy as MD

PolarDB Agent企業級服務平台是一個部署在您Virtual Private Cloud內的Web服務,用於集中建立和管理PolarDB Agent Express應用。通過該服務,您可以模板化PolarDB Agent Express應用的配置,並結合公司專屬應用程式(例如飛書/DingTalk/企業微信)實現團隊成員的統一認證和授權。本文將指導您完成從準備依賴憑證、建立應用執行個體、配置網路與訪問,到最終使用該應用的完整流程。

功能簡介

PolarDB Agent企業級服務平台本質上是一個部署在您阿里雲賬戶下的私人化管理平台。它將PolarDB Agent Express應用的複雜配置流程封裝在一個圖形化介面中,旨在解決以下問題:

  • 簡化部署:通過預設模板,團隊成員無需瞭解底層細節即可一鍵建立PolarDB Agent Express應用

  • 統一認證:與您公司專屬應用程式(例如飛書/DingTalk/企業微信)組織架構整合,實現基於公司專屬應用程式帳號的安全登入。

  • 許可權管控:企業級服務平台的管理員可以統一管理和維護PolarDB Agent Express應用的配置模板。

準備工作

在開始建立應用之前,您需準備好以下兩項關鍵憑證:

  • 一個具備特定許可權的RAM使用者訪問憑證(AccessKey)。

  • 一個已建立並發布的飛書/DingTalk/企業微信企業自建應用及其憑證。

準備一:擷取RAM使用者訪問憑證(AccessKey)

PolarDB Agent企業級服務平台需要使用AccessKey來調用阿里雲的API以建立和管理資源。請遵循最小許可權原則,選擇或建立一個專用的RAM使用者和AccessKey。

  1. 建立權限原則

    1. 登入RAM 控制台,在左側導覽列選擇 許可權管理 > 權限原則

    2. 單擊建立權限原則,切換到指令碼編輯標籤頁。

    3. 將以下JSON策略內容完整粘貼到策略編輯器中,然後單擊確定

      單擊展開查看詳細的JSON策略

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "polardb:DescribeDBClusters",
              "polardb:DescribeAIDBClusters",
              "polardb:DescribeDBClusterAttribute",
              "polardb:DescribeDBClusterEndpoints",
              "polardb:DescribeRegions",
              "polardb:DescribeHistoryEvents",
              "polardb:DescribePolarAgents",
              "polardb:DescribeApplications",
              "polardb:CreateApplication",
              "polardb:DeleteApplication",
              "polardb:DescribeApplicationAttribute",
              "polardb:OperateApplication",
              "polardb:UpgradeApplicationVersion",
              "polardb:DescribeApplicationParameters",
              "polardb:ModifyApplicationParameter",
              "polardb:ModifyApplicationDescription",
              "polardb:ModifyApplicationWhitelist",
              "polardb:CreateApplicationEndpointAddress",
              "polardb:DeleteApplicationEndpointAddress",
              "polardb:DescribePolarClawSkills",
              "polardb:ModifyPolarClawSkill",
              "polardb:DescribeApplicationPerformance",
              "polardb:DescribeApplicationBackupPolicy",
              "polardb:ModifyApplicationBackupPolicy",
              "polardb:DescribeApplicationBackups",
              "polardb:CreateApplicationBackup",
              "polardb:DeleteApplicationBackup",
              "polardb:RestoreApplicationByBackupSet",
              "polardb:DescribeApplicationPrompts",
              "polardb:CreateApplicationPrompt",
              "polardb:ModifyApplicationPrompt",
              "polardb:DeleteApplicationPrompt",
              "polardb:ApplyApplicationPrompts",
              "polardb:ModifyApplicationPromptStatus",
              "polardb:DescribeApplicationLogs",
              "polardb:DescribeApplicationSessionIds",
              "polardb:DescribeApplicationSessionLogs",
              "polardb:DescribePolarClawSkillsMarket",
              "polardb:DescribePolarClawSkillTemplates",
              "polardb:DescribePolarClawSkillTemplate",
              "polardb:DescribePolarClawSkillAssessment",
              "polardb:CreatePolarClawSkillTemplate",
              "polardb:DeletePolarClawSkillTemplate",
              "polardb:CreatePolarClawSkill",
              "polardb:GetPolarClawSkillRegion",
              "polardb:CheckPolarClawSkill",
              "polardb:DeletePolarClawSkill",
              "polardb:CreateBatchTask",
              "polardb:DescribeBatchTasks",
              "polardb:DescribeBatchTask",
              "polardb:DescribeGatewayList",
              "polardb:DescribeAIGatewayInstances",
              "polardb:DescribeAIGatewayAttribute",
              "polardb:ListAIGatewayModelApis",
              "polardb:GetAIGatewayModelApiCreationOptions",
              "polardb:CreateAIGatewayModelApi",
              "polardb:ModifyAIGatewayModelApi",
              "polardb:DeleteAIGatewayModelApi",
              "polardb:ListAIGatewayModelServices",
              "polardb:CreateAIGatewayModelService",
              "polardb:ListAIGatewayConsumerGroups",
              "polardb:CreateAIGatewayConsumerGroup",
              "polardb:DeleteAIGatewayConsumerGroup",
              "polardb:ModifyAIGatewayConsumerGroup",
              "polardb:ListAIGatewayConsumers",
              "polardb:DescribeAIGatewayConsumer",
              "polardb:CreateAIGatewayConsumer",
              "polardb:ResetAIGatewayConsumerApiKey",
              "polardb:DeleteAIGatewayConsumer",
              "polardb:ListAIGatewayRateLimitPolicies",
              "polardb:CreateAIGatewayRateLimitPolicy",
              "polardb:DeleteAIGatewayRateLimitPolicy",
              "polardb:ModifyAIGatewayRateLimitPolicy",
              "polardb:ListAIGatewayBudgetPolicies",
              "polardb:CreateAIGatewayBudgetPolicy",
              "polardb:DeleteAIGatewayBudgetPolicy",
              "polardb:ModifyAIGatewayBudgetPolicy",
              "polardb:DescribeGatewayAttribute",
              "polardb:DescribeBudgetStats",
              "polardb:DescribeCostRules",
              "polardb:CreateCostRule",
              "polardb:ModifyCostRule",
              "polardb:DeleteCostRule",
              "polardb:StartAIGateway",
              "polardb:StopAIGateway",
              "polardb:RestartAIGateway",
              "polardb:ReleaseAIGateway",
              "polardb:CreateAIGatewayPublicEndpoint",
              "polardb:DescribeAIGatewaySecurityGroups",
              "polardb:DescribeAIGatewayIPArrayList",
              "polardb:ModifyAIGatewaySecurityIPs",
              "polardb:DescribeAIGatewayPerformance",
              "polardb:ListAIGatewayEvents",
              "polardb:ListTagResourcesForRegion",
              "polardb:TagResources",
              "polardb:UntagResources",
              "polardb:DescribeModelServices",
              "polardb:DescribeModelApis",
              "polardb:DescribeConsumerGroups",
              "polardb:DescribeRateLimitPolicy"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "ecs:DescribeSecurityGroups"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "tag:ListTagKeys",
              "tag:ListTagValues"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "oss:PutBucketPolicy",
              "oss:GetBucketPolicy",
              "oss:PutObject"
            ],
            "Resource": "*"
          },  
          {
            "Effect": "Allow",
            "Action": [
              "bss:Refund*"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "bss:Renew*"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "bss:ModifyInstance"
            ],
            "Resource": "*"
          }
        ]
      }
    4. 為該策略命名(例如PolarDB Agent ExpressSaaSMinimalAccess)並完成建立。

  2. 建立RAM使用者並授權

    1. 在左側導覽列選擇身份管理 > 使用者,選擇或建立一個RAM使用者。

      1. 選擇一個原有使用者:進入使用者詳情頁,在AccessKey標籤頁下,您可使用已有的AccessKey或建立一個新的AccessKey。建立一個新的AccessKey,請選擇本地開發環境中使用,並妥善保管產生的AccessKey(AccessKey ID 和 AccessKey Secret)。

      2. 建立一個新使用者:在建立使用者頁面填寫基本資料以及選擇使用永久 AccessKey 訪問。完成建立後,儲存當前RAM使用者的AccessKey(AccessKey ID 和 AccessKey Secret)。

    2. 在使用者詳情頁面,切換到許可權管理標籤頁,單擊新增授權,將上一步建立的PolarDB Agent ExpressSaaSMinimalAccess策略授予該使用者。

準備二:擷取公司專屬應用程式憑證(App ID/App Secret)

PolarDB Agent企業級服務平台通過公司專屬應用程式(例如飛書/DingTalk/企業微信)自建應用來實現使用者認證。

DingTalk

  1. 建立DingTalk應用

    1. 訪問DingTalk開放平台,單擊上方導覽列應用開發。在應用開發的左側導覽列中,單擊企業內部應用 > DingTalk應用,在頁面右上方單擊建立應用

    2. 建立應用面板,依次填入應用程式名稱、應用描述與應用表徵圖(可選),單擊儲存完成建立。

  2. 添加相關許可權:在左側導覽列單擊開發配置 > 許可權管理,添加許可權擷取使用者個人資訊許可權(Contact.User.Read)

  3. 發布DingTalk應用:應用建立完成後,如果需要將應用供企業內其他使用者使用,需要發布一個版本。

    1. 單擊左側導覽列中的應用發布 > 版本管理與發布,單擊建立新版本

    2. 進入版本詳情頁面,輸入應用版本號碼和版本描述資訊,選擇合適的應用可見範圍,完成後單擊儲存。並在彈窗中單擊確認發布

  4. 應用發布完成後,進入憑證與基礎資訊頁面,記錄Client IDClient Secret,後續配置PolarDB Agent企業級服務平台時需要使用。

飛書

  1. 登入飛書開放平台,在右上方單擊開發人員後台。進入後台後單擊建立企業自建應用,填入應用程式名稱應用描述應用表徵圖,單擊建立。

  2. 在左側導覽列單擊許可權管理,進入頁簽後單擊開通許可權

  3. 搜尋並選中以下許可權。單擊確認開通許可權,並確認

    重要

    添加許可權後需單擊確認儲存變更,否則許可權不會生效。

    許可權標識

    說明

    contact:user.employee:readonly

    擷取使用者的員工資訊

    contact:user.phone:readonly

    擷取使用者手機號

    contact:user.base:readonly

    擷取使用者基本資料

    contact:user.email:readonly

    擷取使用者郵箱地址

  4. 完成上述配置後,需要發布應用使其生效。在左側導覽列單擊版本管理與發布,單擊右上方建立新版本

  5. 修改可用範圍全部成員,並填寫版本號碼和更新說明等資訊後,在頁面底部單擊儲存確認發布

  6. 應用發布完成後,進入憑證與基礎資訊頁面,記錄App IDApp Secret,後續配置PolarDB Agent企業級服務平台時需要使用。

企業微信

  1. 建立企業微信應用

    1. 登入企業微信管理後台,在左側導覽列選擇應用管理 > 自建,單擊建立應用

    2. 填寫應用程式名稱、應用Logo和可見範圍等資訊,單擊建立應用完成建立。

  2. 擷取應用憑證

    • 擷取Agent IDSecret:單擊進入已建立的應用,在應用詳情頁擷取AgentIdSecret

    • 擷取Corp ID:在左側導覽列選擇我的企業,在公司資訊頁面擷取企業ID(即Corp ID)。

  3. 記錄Corp IDAgent IDSecret,後續配置PolarDB Agent企業級服務平台時需要使用。

操作步驟

完成所有準備工作後,您可以按照以下步驟建立和配置應用。

步驟一:建立PolarDB Agent企業級服務平台

  1. 登入PolarDB控制台,在左側導覽列單擊PolarDB AI > PolarDB Agent Express,並在頂部導覽列中切換至您的目標地區。

  2. PolarDB Agent Express頁面,切換至企业级服务平台標籤頁,單擊立即创建

  3. 在建立頁面,配置以下核心參數:

    • 阿里云账号 AK/SK:填入您在準備工作中準備好的AccessKey IDAccessKey Secret

    • VPC 网络可用区及交换机:選擇PolarDB Agent企業級服務平台將要部署的專用網路和交換器。

    • 安全组:選擇一個安全性群組,並確保該安全性群組的入方向規則已允許存取8080連接埠。

    • SaaS服务登录方式应用类型選擇飞书钉钉企业微信,並填寫準備工作中準備好的對應公司專屬應用程式憑證。

  4. 單擊確定開始建立。

步驟二:配置網路與訪問

PolarDB Agent企業級服務平台建立後,預設僅可通過VPC內網訪問。為了讓PolarDB Agent企業級服務平台能與公網上的飛書/DingTalk/企業微信認證服務通訊,並允許通過公網訪問,您需要配置網路。

  1. 建立公網NAT Gateway:請前往NAT Gateway - 公網 NAT Gateway購買頁進行建立。在建立過程中,請確保選擇與PolarDB Agent企業級服務平台相同的VPC和交換器。

  2. 配置SNAT條目:前往公網 NAT Gateway頁面。單擊目標網關操作列的設定SNAT,單擊建立SNAT條目。參數請按如下配置:

    • SNAT條目粒度VPC粒度

    • 選擇Elastic IP Address地址:在下拉式清單中選擇提供公網訪問的EIP。

    說明

    開通公網訪問能力將產生相關的公網NAT Gateway及公網流量費用。相關費用說明,請參見NAT Gateway計費

  3. (可選)申請公網訪問地址
    如果您希望能通過公網訪問該管理應用,請返回PolarDB控制台PolarDB Agent企業級服務平台詳情頁,單擊开通公网地址為其申請一個公網地址。

步驟三:配置公司專屬應用程式回調地址

DingTalk

  1. 擷取回調地址
    PolarDB Agent企業級服務平台的詳情頁,在PolarDB Agent企业级服务平台 使用流程 > 应用安全设置地區複製系統產生的DingTalk重新導向 URL。

  2. 配置DingTalk安全設定
    返回DingTalk開放平台,進入您的自建應用,在安全設定頁面,將複製的回調地址添加到重新導向URL(回調網域名稱)中。

飛書

  1. 擷取回調地址
    PolarDB Agent企業級服務平台的詳情頁,在PolarDB Agent企业级服务平台 使用流程 > 应用安全设置地區複製系統產生的飛書重新導向 URL。

  2. 配置飛書安全設定
    返回飛書開放平台,進入您的自建應用,在安全設定頁面,將複製的回調地址添加到重新導向 URL中,並將回調地址中的IP地址填寫至IP白名單中。

企業微信

  1. 設定可信網域名稱
    登入企業微信管理後台,進入您的自建應用,在開發人員介面 > 網頁授權及JS-SDK地區設定可信網域名稱。該網域名稱需綁定到企業級服務平台的公網地址。

    說明

    設定可信網域名稱時,需要下載校正檔案並部署到網域名稱對應伺服器的根路徑下,確保校正檔案可通過公網訪問後再提交驗證。如需擷取企業級服務平台的公網地址,請提交工單聯絡我們為您提供。

  2. 配置企業可信IP
    在應用詳情頁的開發人員介面 > 企業可信IP地區,添加企業級服務平台的公網出口IP地址。如需擷取該IP地址,請提交工單聯絡我們為您提供。

步驟四:訪問並使用企業級服務平台

  1. 配置訪問白名單
    PolarDB Agent企業級服務平台的白名單設定中,添加允許訪問該應用的用戶端IP地址。

    • 如果通過公網訪問,請添加您本網的公網出口IP。

    • 如果通過內網訪問,請添加您VPC內的用戶端IP。

  2. 訪問應用
    PolarDB Agent企業級服務平台的詳情頁,找到私網地址或您已申請的公網地址,通過瀏覽器訪問。

  3. 登入並建立PolarDB Agent Express模板
    首次登入的使用者將自動獲得管理員權限。您可以在帳號管理頁面中,為PolarDB Agent Express應用(小龍蝦模組)建立配置模板。例如,指定模型來源為百鍊(Bailian),並填入對應的ModelFromModelApiKey

  4. 團隊成員建立PolarDB Agent Express
    模板配置完成後,其他團隊成員登入企業級服務平台後,即可在PolarDB Agent Express 管理頁面,通過選擇模板一鍵建立自己的PolarDB Agent Express應用。