Database Migration Service 提供了一个 REST API,用于以编程方式管理连接配置文件和迁移作业。REST API 由与创建和管理连接配置文件和迁移作业相关的资源定义。如需详细了解所有资源及其方法,请参阅 Database Migration Service API 参考文档。
当您直接向 Database Migration Service REST API 发送请求时,必须创建正确形式的请求,以经过身份验证的用户身份对请求进行授权,并处理返回的所有响应。本文档中的许多任务提供了使用 cURL 的 API 示例。
如需查看更多使用 API 的示例,请参阅 Database Migration Service API 参考文档中有关请求的页面。每个页面都有用几种编程语言调用 API 的示例以及特定于请求的浏览器,以帮助您了解格式良好的请求中包含哪些内容以及响应中应该包含哪些内容。
当您使用以下任一方式管理实例时,也会间接使用 Database Migration Service API:
Google Cloud CLI:可用于处理实例的命令行界面 (CLI)。
Google Cloud 控制台:图形化网页界面。
使用这些方法(尤其是 Google Cloud 控制台)的优势在于,它们可以大大简化连接配置文件和迁移作业的管理(具体取决于您的应用场景)。如果您刚开始使用 Database Migration Service,我们建议您先从其中一个工具开始,然后再直接使用 REST API。
启用 API
如需使用 Database Migration Service API,您需要启用该 API:
控制台
- 启用 Database Migration Service API。
- 选择您的项目。
- 选择继续。
gcloud
- 输入以下命令,以显示 Google Cloud项目的 ID:
gcloud projects list
- 设置默认项目:
gcloud config set project YOUR_PROJECT_ID
- 启用 Database Migration Service API:
gcloud services enable datamigration.googleapis.com
权限
您必须拥有必要的权限才能使用 Database Migration Service API。这些权限包括:
- Database Migration Admin:拥有此权限的用户可以访问用于管理连接配置文件和迁移作业的所有 Database Migration Service 资源。
- Database Migration Viewer:拥有此权限的用户对 Database Migration Service 中的连接配置文件和迁移作业具有只读权限。
- Cloud SQL Admin:拥有此权限的用户可以在 Database Migration Service 中为 Cloud SQL 创建和管理连接配置文件和迁移作业。
Google Cloud 提供 Identity and Access Management (IAM),可让您授予对特定 Google Cloud 资源的更细化访问权限,并防止对其他资源进行不必要的访问。您可以使用 Google Cloud 控制台、API 的 IAM 方法或 Google Cloud CLI 来获取和设置 Database Migration Service 的权限。如需了解详情,请参阅授予、更改和撤消对资源的访问权限。
通过文件提供 JSON 数据
使用 API 与 cURL 时,可以使用命令行提供属性值。如果您使用的是密码或安全密钥等敏感值,在命令行中提供这些值会带来安全风险。为了提高安全性,您可以创建包含用于 API 调用的 JSON 数据的文件,并在命令行中提供该文件的路径。
如需通过文件向您的 cURL API 调用提供 JSON 数据,请执行以下操作:
为
--data字段创建一个文件,用单引号将所有内容括起来。包含大括号,但不包含单引号。
在命令行中,提供以
@字符开头文件路径作为--data参数:--data @<path-to-file>/<filename>
示例:创建 PostgreSQL 源连接配置文件
如需为 PostgreSQL 源数据库创建连接配置文件,请创建一个名为 request.json 的文件,其中包含以下内容:
{ "displayName": "PostgreSQL source connection profile", "postgresql": { "host": "198.51.100.1", "port": 5432, "username": "migration_admin", "password": "MIGRATION_PASSWORD", "ssl": { "type": "SERVER_ONLY", "caCertificate": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----" } } }
然后,在命令行中发送以下 cURL 请求:
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @./request.json \ -X POST \ "https://datamigration.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/connectionProfiles?connectionProfileId=SOURCE_PROFILE_ID"
示例:创建 PostgreSQL 持续迁移作业
如需为 PostgreSQL 创建持续迁移作业,请创建一个名为 migration_job.json 的文件,其中包含以下内容:
{ "displayName": "PostgreSQL continuous migration job", "type": "CONTINUOUS", "source": "projects/PROJECT_ID/locations/REGION/connectionProfiles/SOURCE_PROFILE_ID", "destination": "projects/PROJECT_ID/locations/REGION/connectionProfiles/DESTINATION_PROFILE_ID" }
然后,在命令行中发送以下 cURL 请求:
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @./migration_job.json \ -X POST \ "https://datamigration.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/migrationJobs?migrationJobId=MIGRATION_JOB_ID"
处理长时间运行的 API 调用
某些 API 调用(如对象创建)可能需要一些时间才能完成。由于 API 是异步的,因此即使操作仍在进行中,调用也会立即返回。如果后续 API 调用使用新创建的对象,则必须等到第一个操作完成后才能继续。
您可以使用 Database Migration Service API 管理操作。其中包括:
Database Migration Service 和 Google APIs Discovery Service
Google APIs Discovery Service 是一项可用于发现 Google API 的服务。例如,当您使用 Google APIs Explorer 工具时,您使用的是 Discovery Service。
在 Discovery Service 中,Database Migration Service 表示为“datamigration”(例如:https://datamigration.googleapis.com/$discovery/rest?version=v1)。