你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用 Petrel DDMS API 处理 Petrel 数据记录

使用 Postman 中的 Petrel 域数据管理服务 (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 应用程序(客户端)ID 3dfxxxxxxxxxxxxxxxxxxxxxx
CLIENT_SECRET 客户端机密 _fl******************
TENANT_ID 目录(租户)ID 72fxxxxxxxxxxxx
SCOPE 应用程序(客户端)ID 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 生成的令牌,必须使用响应中 Bearer 后的值更新 Collection 变量中的 access_token

使用 Petrel DDMS API 来处理 Petrel 项目

成功完成以下 Petrel DDMS API 中所述的 Postman 请求后,即可成功与保存的 Petrel 项目进行交互。 虽然 API 提供了一种上传数据的途径,但我们建议通过 DELFI Petrel Project Explorer 来上传项目。 以下所有 API 调用都假定你已将项目上传到 Petrel Project Explorer。

创建一个自动添加到你的 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 权利组。 此调用会将用户添加到适当的组。

本例中的用户是用于身份验证的令牌中的客户端 ID 或 OID。 例如,如果使用 8cdxxxxxxxxxxxx 的客户端 ID 生成令牌,则必须将 8cdxxxxxxxxxxxx 添加到 users.datalake.admins 组。

API:“设置”>“将用户添加到 DATALAKE 管理员”

方法:POST

Screenshot that shows the API that adds user to entitlements.

获取项目

使用项目 ID 后,会返回 Azure Data Manager for Energy 实例中相应的 Petrel 项目记录。

API:“项目”>“获取项目”

方法:GET

Screenshot that shows the API that gets a project.

删除项目

使用项目 ID 删除 Azure Data Manager for Energy 实例中的项目和相关 Petrel 项目记录数据。

API:“项目”>“删除项目”

方法:DELETE

Screenshot that shows the API that deletes a project.

获取项目版本

使用项目 ID 和版本 ID 获取与 Azure Data Manager for Energy 实例中的项目和版本关联的 Petrel 版本记录。

API:“项目”>“获取项目版本”

方法:GET

Screenshot that shows the API that gets a project version.

获取项目下载 URL

使用项目 ID 获取共享访问签名 (SAS) URL,以便下载 Azure Data Manager for Energy 实例中相应项目的数据。

API:“项目”>“获取项目下载”

方法:GET

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

获取项目上传 URL

使用项目 ID 获取两个 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 存储。

更新项目

使用项目 ID 和 SAS 上传 URL 将 Azure Data Manager for Energy 中的 Petrel 项目记录更新为新值。 如果需要,还可以将数据上传到项目。

API:“项目”>“更新项目”

方法:PUT

Screenshot that shows the API that updates a project.

搜索项目

可以使用许多字段来搜索 Petrel 项目。 该调用会返回所有匹配的项目 ID。 该 API 支持:

  • 针对字符串字段的全文搜索。
  • 基于日期、数字或字符串字段的范围查询。
  • 地理空间搜索。

API:“项目”>“搜索项目”

方法:POST

Screenshot that shows the API that deletes a well record.

使用以下 DELFI 链接阅读涉及 Petrel Project Explorer 和 Petrel 工作流的其他教程: