分享方式:


教學課程:使用 Petrel DDMS API 處理 Petrel 資料記錄

在 Postman 中使用 Petrel Domain Data Management Services (DDMS) API,在 Azure Data Manager for Energy 執行個體中處理 Petrel 資料。

在本教學課程中,您會了解如何:

  • 設定 Postman 以使用 Petrel DDMS 集合。
  • 設定 Postman 以使用 Petrel DDMS 環境。
  • 透過 Postman 傳送要求。
  • 產生授權權杖。
  • 使用 Petrel DDMS API 處理 Petrel 資料記錄和專案。

如需 DDMS 的詳細資訊,請參閱 DDMS 概念

必要條件

取得 Azure Data Manager for Energy 執行個體的詳細資料

第一個步驟是從 Azure 入口網站中的 Azure Data Manager for Energy 執行個體取得下列資訊:

參數 範例
CLIENT_ID 應用程式 (用戶端) 識別碼 3dfxxxxxxxxxxxxxxxxxxxxxx
CLIENT_SECRET 用戶端密碼 _fl******************
TENANT_ID 目錄 (租用戶) 識別碼 72fxxxxxxxxxxxx
SCOPE 應用程式 (用戶端) 識別碼 3dfxxxxxxxxxxxxxxxxxxxxxxx
HOSTNAME URI <instance>.energy.azure.com
DATA_PARTITION_ID 資料磁碟分割 <instance>-<data-partition-name>

您稍後會在教學課程中使用這項資訊。

設定 Postman

  1. 下載並安裝 Postman 桌面應用程式。

  2. 在 Postman 中匯入下列檔案:Petrel DDMS Postman 集合

  3. 使用您先前取得的值建立 Postman 環境。 環境看起來應該會像這個範例:

    Screenshot that shows an example Postman environment.

產生要用於 API 中權杖

Petrel DDMS 的 Postman 集合包含可用來與 Petrel 專案互動的要求。 其中也包含可在 Azure Data Manager for Energy 執行個體中查詢目前 Petrel 專案和記錄的要求。

  1. 在 Postman 的左側功能表中,選取 [集合],然後選取 [Petrel DDMS]。 在 [設定] 底下,選取 [取得權杖]

  2. 在右上角的環境下拉式清單中,選取 [Petrel DDMS 環境]

  3. 若要傳送要求,請選取 [傳送]

此要求會產生存取權杖,並將其指派為未來要求的授權方法。

您也可以產生權杖,方法是在 Postman 或終端機中使用 cURL 命令產生持有人權杖。 使用來自 Azure Data Manager for Energy 執行個體的值。

      curl --location --request POST 'https://login.microsoftonline.com/{{TENANT_ID}}/oauth2/v2.0/token' \
          --header 'Content-Type: application/x-www-form-urlencoded' \
          --data-urlencode 'grant_type=client_credentials' \
          --data-urlencode 'client_id={{CLIENT_ID}}' \
          --data-urlencode 'client_secret={{CLIENT_SECRET}}' \
          --data-urlencode 'scope={{SCOPE}}'  

若要使用此 cURL 產生的權杖,您必須將 Collection 變數中的 access_token 更新為回應中 Bearer 之後的值。

使用 Petrel DDMS API 處理 Petrel 專案

成功完成下列 Petrel DDMS API 中所述的 Postman 要求,表示成功與已儲存的 Petrel 專案互動。 雖然 API 提供上傳資料的方法,但建議您透過 DELFI Petrel 專案總管上傳您的專案。 下列所有 API 呼叫會假設您已將專案上傳至 Petrel 專案總管。

為符合資料合規性,請建立會自動新增至 Petrel DDMS 環境的法律標籤。

API: [設定]>[為 PDS 建立法律標籤]

方法: POST

Screenshot that shows the API that creates a legal tag.

如需詳細資訊,請參閱管理法律標籤

將使用者新增至權利群組

若要讓使用者有適當的權限可以發出 Petrel DDMS API 呼叫,使用者必須屬於 users.datalake.admins@{data-partition-id}.dataservices.energy 權利群組。 此呼叫會將使用者新增至適當的群組。

在此情況下,在用於驗證的權杖中,使用者是用戶端識別碼或 OID。 例如,如果您使用 8cdxxxxxxxxxxxx 的用戶端識別碼產生權杖,則您必須將 8cdxxxxxxxxxxxx 新增至 users.datalake.admins 群組。

API: [設定]>[將使用者新增至 DATALAKE 管理員]

方法: POST

Screenshot that shows the API that adds user to entitlements.

取得專案

使用專案識別碼傳回 Azure Data Manager for Energy 執行個體中對應的 Petrel 專案記錄。

API: [專案]>[取得專案]

方法: GET

Screenshot that shows the API that gets a project.

刪除專案

使用專案識別碼刪除 Azure Data Manager for Energy 執行個體中的專案及相關聯的 Petrel 專案記錄資料。

API: [專案]>[刪除專案]

方法: DELETE

Screenshot that shows the API that deletes a project.

取得專案版本

使用專案識別碼和版本識別碼取得 Azure Data Manager for Energy 執行個體中與該專案和版本相關聯的 Petrel 版本記錄。

API: [專案]>[取得專案版本]

方法: GET

Screenshot that shows the API that gets a project version.

取得專案下載 URL

使用專案識別碼取得共用存取簽章 (SAS) URL,以便您從 Azure Data Manager for Energy 執行個體下載對應的專案資料。

API: [專案]>[取得專案下載]

方法: GET

Screenshot that shows the API that gets a project download URL.

取得專案上傳 URL

使用專案識別碼取得兩個 SAS URL。 一個 URL 將資料上傳至 Azure Data Manager for Energy 執行個體中對應的專案。 另一個 URL 將資料從 Azure Data Manager for Energy 執行個體中對應的專案下載資料。

API: [專案]>[取得簽署的上傳 URL]

方法: POST

Screenshot that shows the API that gets a project upload URL.

您的 SAS 上傳 URL 看起來應該會像這個範例:

https://{storage-account}.z15.blob.storage.azure.net/projects/{data-partition-id}/{projectID}.staging/{versionID}?{SAS-token-info}

您可以修改此 URL 以包含您要上傳的資料檔案名稱:

https://{storage-account}.z15.blob.storage.azure.net/projects/{data-partition-id}/{projectID}.staging/{versionID}/{FILENAME}?{SAS-token-info}

對此 URL 發出 PUT 呼叫會將 body 的內容上傳至所提供 FILENAME 值下的 Blob 儲存體。

更新專案

使用專案識別碼和 SAS 上傳 URL,將 Azure Data Manager for Energy 中的 Petrel 專案記錄更新為新值。 如有需要,您也可以將資料上傳至專案。

API: [專案]>[上傳專案]

方法: PUT

Screenshot that shows the API that updates a project.

在專案中搜尋

您可以利用許多欄位搜尋 Petrel 專案。 呼叫會傳回所有相符的專案識別碼。 API 支援:

  • 字串欄位的全文檢索搜尋。
  • 根據日期、數值或字串欄位的範圍查詢。
  • 地理空間搜尋。

API: [專案]>[搜尋專案]

方法: POST

Screenshot that shows the API that deletes a well record.

如需閱讀其他涉及 Petrel 專案總管和 Petrel 工作流程的教學課程,請利用下列 DELFI 連結: