透過對帳程序,您可以將現有 Apigee Edge for Private Cloud 機構的所有 API 中繼資料 (Proxy、環境等) 重新同步至 API 中心。如果您懷疑資料不一致,或需要完整重新同步所有 API 定義,通常會使用這個程序。
這個程序包含兩項主要動作:
- 修改連結器的設定,暫時退出特定機構
- 立即重新啟用
對帳步驟
如要比對機構,請修改連接器的設定檔兩次,並在每次修改後重新啟動連接器服務。
- 備份目前的設定檔。
- 從要停用的機構中,只移除 runtimeDataPubsub 和 metadataPubsub。
- 重新啟動 uapim 連接器服務。
- 將原始 uapim 連接器設定還原至步驟 1 中建立的備份,即可選擇加入目前的機構。
- 重新啟動 uapim 連接器服務。
退出機構 (移除 Pub/Sub 主題)
在這個步驟中,您將從 Pub/Sub 主題中移除機構。暫時向連接器發出信號,停止同步處理目標機構的中繼資料。
- 編輯連接器設定:在連接器 VM 上開啟設定檔:
/opt/apigee/customer/application/uapim-connector.properties - 修改 conf_uapim_connector.uapim.settings.json:在 connectorConfig 部分中,針對您要比對的機構 (例如 organization1),移除 runtimeDataPubsub 和 metadataPubsub 的值。請務必保留 serviceAccount 和 pluginInstanceId。
- 修改前 (範例):
{ "connectorConfig" : { "organization1" : { "runtimeDataPubsub" : "projects/p1/topics/rt-topic-org1", "metadataPubsub":"projects/p1/topics/md-topic-org1", "serviceAccount": "mysa1@in.myfirstProject", "pluginInstanceId":"aaaa" }, "organization2" : { "runtimeDataPubsub" : "projects/p2/topics/rt-topic-org2", "metadataPubsub":"projects/p2/topics/md-topic-org2", "serviceAccount": "mysa2@in.mySecondProject", "pluginInstanceId":"bbbbb" } }, "runtimeDataPath":"/the/nfs/mounted/path", "managementServer": "hostname" } 修改後 (選擇不加入機構 1):
{ "connectorConfig" : { "organization1" : { "runtimeDataPubsub" : "", "metadataPubsub":"", "serviceAccount": "mysa1@in.myfirstProject", "pluginInstanceId":"aaaa" }, "organization2" : { "runtimeDataPubsub" : "projects/p2/topics/rt-topic-org2", "metadataPubsub":"projects/p2/topics/md-topic-org2", "serviceAccount": "mysa2@in.mySecondProject", "pluginInstanceId":"bbbbb" } }, "runtimeDataPath":"/the/nfs/mounted/path", "managementServer": "hostname" }重新啟動連接器服務 (選擇不採用):
如要套用變更,請重新啟動 Apigee API Hub for Private Cloud 連接器:
apigee-service edge-uapim-connector restart
- 編輯連接器設定:在連接器 VM 上開啟設定檔:
選擇加入機構 (還原 Pub/Sub 主題)
在這個步驟中,您會將機構還原至 Pub/Sub 主題。向連接器發出信號,開始全新完整地同步處理中繼資料。
- 編輯連結器設定:再次開啟設定檔:
/opt/apigee/customer/application/uapim-connector.properties - 修改 conf_uapim_connector.uapim.settings.json:在 connectorConfig 區段中,針對您要調解的機構 (例如 organization1),還原 runtimeDataPubsub 和 metadataPubsub 的值。
- 修改後 (選擇加入的機構 1):
{ "connectorConfig" : { "organization1" : { "runtimeDataPubsub" : "projects/p1/topics/rt-topic-org1", "metadataPubsub":"projects/p1/topics/md-topic-org1", "serviceAccount": "mysa1@in.myfirstProject", "pluginInstanceId":"aaaa" }, "organization2" : { "runtimeDataPubsub" : "projects/p2/topics/rt-topic-org2", "metadataPubsub":"projects/p2/topics/md-topic-org2", "serviceAccount": "mysa2@in.mySecondProject", "pluginInstanceId":"bbbbb" } }, "runtimeDataPath":"/the/nfs/mounted/path", "managementServer": "hostname" }
- 編輯連結器設定:再次開啟設定檔:
已還原設定
重新啟動連接器服務 (選擇加入):
再次重新啟動連接器服務,觸發完整的中繼資料重新同步:
apigee-service edge-uapim-connector restart
連接器現在會為目標機構完整啟用所有 API 中繼資料。您可以使用狀態端點 curl localhost:8080/v1/uapim/status 監控進度。