1 つのローカル管理クラスターを MongoDB Atlas に移行

POST /api/atlas/v2/groups/{groupId}/liveMigrations

Cloud Manager または Ops Manager が管理する 1 つのクラスターを MongoDB Atlas に移行します。

移行を開始する前には、必ず移行を検証してください。

この API エンドポイントは、プッシュ ライブ移行にのみ使用できます。このリソースを正常に呼び出すには、API キーに組織オーナー ロールが必要です。

注意: 時系列コレクションの移行は、MongoDB 6.0 以降ではまだサポートされていません。MongoDB 6.0 以降での移行では、ソースクラスター上の時系列コレクションはすべてスキップされます。非推奨バージョン: v2-{2023-01-01}

移行を検証する

path パラメータ

  • グループ ID string 必須

    プロジェクトを識別する一意の 24 桁の 16 進数文字列。 認証済みユーザーがアクセスできるすべてのプロジェクトを取得するには、 /groups エンドポイントを使用します。

    : グループとプロジェクトは同義語です。そのため、グループ ID はプロジェクト ID と同じです。既存のグループの場合、グループ/プロジェクト ID は同じままです。リソースおよび対応するエンドポイントでは、グループという用語が使用されます。

    形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

クエリ パラメータ

  • envelope ブール値

    アプリケーションがレスポンスを envelope JSON オブジェクトにラップするかどうかを示すフラグ。一部の API クライアントは、HTTP レスポンス ヘッダーまたはステータス コードにアクセスできません。これを修正するには、クエリで envelope=true を設定します。結果のリストを返すエンドポイントは、結果オブジェクトをエンベロープとして使用します。アプリケーションは、レスポンス本体にステータス パラメータを追加します。

    デフォルト値はfalseです。

  • pretty ブール値

    レスポンス本体を pretty-print 形式にするかどうかを示すフラグ。

    デフォルト値はfalseです。

    Prettyprint
application/vnd.atlas.2024-05-30+json

body 必須

1 つの移行が作成されます。

  • destination オブジェクト 必須

    移行の宛先を説明するドキュメント。

    宛先属性の非表示 宛先属性の表示 オブジェクト
    • clusterName string 必須

      宛先クラスターを識別するラベル。

      最小長は 1 です。

    • グループ ID string 必須

      宛先プロジェクトを識別する一意の 24 桁の 16 進数文字列。

      形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

    • hostnameSchemaType string 必須

      移行ホストと宛先クラスター間で使用するネットワークのタイプ。

      最小長は 1 です。値は、PUBLICPRIVATE_LINK、または VPC_PEERING です。

    • privateLinkId string

      ホストスキーマタイプが PRIVATE_LINK の場合に使用するエンドポイントを表します。

  • dropDestinationData ブール値

    移行を開始する前に、移行プロセスが宛先クラスターからすべてのコレクションを削除するかどうかを示すフラグ。

    デフォルト値はfalseです。

  • migrationHosts array[string]

    この移行に使用された移行ホストのリスト。

    以上かつ 1 以上、1 以下の要素。各 の最小長は 1 です。

  • シャーディング オブジェクト

    レプリカセット ソースから MongoDB 6.0 以降のシャーディングされたクラスターの宛先に移行する場合に、宛先クラスターでシャーディングを構成するドキュメント。宛先クラスターでコレクションをシャーディングしない場合は、これを空のままにします。

    シャーディング属性の非表示 シャーディング属性の表示 オブジェクト
    • createSupportIndexes ブール値 必須

      指定されたシャードキーと互換性のあるインデックスも必要であるため、移行によってシャードキーのサポート用インデックスを作成できるようにするフラグ(存在しない場合)。

    • shardingEntries array[オブジェクト]

      シャード先コレクションへのシャード構成のリスト。 Atlas は、シャーディングエントリ配列に含まれるコレクションのみをシャーディングします。

      宛先クラスターでシャーディングされるコレクションのシャーディング構成。

      shardingEntries 属性を非表示にする shardingEntries 属性を表示する オブジェクト
      • コレクション string 必須

        宛先クラスターでシャーディングするコレクションを識別する、人間が判読可能なラベル。

      • database string 必須

        宛先クラスターでシャーディングするコレクションを含むデータベースを識別する、人間が判読可能なラベル。

      • shardCollection オブジェクト 必須

        宛先クラスターのシャードキーを構成するドキュメント。

        shardCollection 属性を非表示 shardCollection 属性の表示 オブジェクト
        • キー array[オブジェクト]

          シャードキーに使用するフィールドのリスト。

          キー属性を非表示 キー属性を表示 オブジェクト
          • * オブジェクト additionalProperties
  • ソース オブジェクト 必須

    移行の移行元を説明するドキュメント。

    ソース属性の非表示 ソース属性の表示 オブジェクト
    • caCertificatePath string

      ソースクラスターへの認証に使用される SSL 証明書で署名された CA 証明書へのパス。

    • clusterName string 必須

      ソースクラスター名を識別するラベル。

      最小長は 1 です。

    • グループ ID string 必須

      ソース プロジェクトを識別する一意な 24 桁の 16 進数のstring 。

      形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

    • ManagedAuthentication ブール値 必須

      MongoDB Automation がソースクラスターへの認証を管理するかどうかを示すフラグ。 true の場合、ユーザー名とパスワードの値を指定しないでください。

    • パスワード string

      ソースクラスターに対してユーザー名を認証するパスワード。

    • ssl ブール値 必須

      SSL が有効になっているかどうかを示すフラグ。

    • username string

      ソースクラスターに接続する SCRAM-SHA ユーザーを識別するラベル。

応答

  • 201 application/vnd.atlas.2024-05-30+json

    作成済み

    応答属性の非表示 応答属性の表示 オブジェクト
    • _id string

      移行ジョブを識別する一意の 24 桁の 16 進数文字列。

      形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

    • LakeTimeSeconds 整数(int64) | null

      ソースクラスターと宛先クラスター間のレプリケーションラグ。 Atlas は、アクティブな移行中にのみ、カットオーバーのフェーズの前にこの設定を返します。

    • migrationHosts array[string]

      MongoDBエージェントを実行中ホストのリスト。これらのエージェントは、1 つのソースクラスターと 1 つの宛先クラスター間でMongoDBデータを転送できます。

      各 の形式は次のパターンと一致する必要があります: ^([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-f]{1,4}:){7}([0-9a-f]{1,4})|(([a-z0-9]+\.){1,10}[a-z]+)?$

    • readyForCutover ブール値

      移行されたクラスターをMongoDB Atlasにカットオーバーできることを示すフラグ。

    • 状態 string

      1 つのクラスターをMongoDB Atlasに移行する進行状況。

      NEW: MongoDB Atlasへのローカルクラスターの移行をスケジュールしたユーザー。

      FAILED: MongoDB Atlasへのクラスターの移行に失敗しました。

      COMPLETE: MongoDB Atlasへのクラスター移行が成功しました。

      EXPIRED: MongoDB Atlas は、ソースクラスターと宛先クラスターがほぼ同期したときに、移行クラスターのカットオーバーを開始する準備をします。 "readyForCutover" : true の場合、この同期により 120 時間のタイマーが開始されます。このタイマーは延長できます。タイマーが期限切れになると、 MongoDB Atlas はこのステータスを返します。

      WORKING: MongoDB Atlasへのクラスター移行は、次のいずれかのタスクを実行しています。

      • ソースクラスターと宛先クラスターへの接続を準備しています。
      • ソースから宛先へのデータのレプリケート。
      • MongoDB Atlas接続設定を検証しています。
      • カットオーバー後にレプリケーションを停止する。

      値は、NEWWORKINGFAILEDCOMPLETE、または EXPIRED です。

  • 400 application/ JSON

    無効なリクエストです。

    応答属性の非表示 応答属性の表示 オブジェクト
    • validRequestDetail オブジェクト

      無効なリクエストの詳細。

      validRequestDetail 属性を非表示にする validRequestDetail 属性の表示 オブジェクト
      • フィールド array[オブジェクト]

        クライアントリクエストにおけるすべての違反を説明します。

        フィールド属性を非表示にする フィールド属性の表示 オブジェクト
        • 説明 string 必須

          リクエスト要素が禁止されている理由の説明。

        • フィールド string 必須

          リクエスト本文内のフィールドにつながるパス。

    • 詳細 string

      各タイプのエラーの原因となる特定の条件または理由について説明します。

    • エラー integer(int32) 必須

      このエラーで返された HTTP ステータス コード。

      外部ドキュメント
    • errorCode string 必須

      このエラーで返されたアプリケーション エラー コード。

    • パラメーター array[オブジェクト]

      エラーに関する詳細情報を提供するために使用されるパラメーター。

    • 理由 string

      このエラーで返されたアプリケーション エラー メッセージ。

  • 401 application/ JSON

    許可されていません。

    応答属性の非表示 応答属性の表示 オブジェクト
    • validRequestDetail オブジェクト

      無効なリクエストの詳細。

      validRequestDetail 属性を非表示にする validRequestDetail 属性の表示 オブジェクト
      • フィールド array[オブジェクト]

        クライアントリクエストにおけるすべての違反を説明します。

        フィールド属性を非表示にする フィールド属性の表示 オブジェクト
        • 説明 string 必須

          リクエスト要素が禁止されている理由の説明。

        • フィールド string 必須

          リクエスト本文内のフィールドにつながるパス。

    • 詳細 string

      各タイプのエラーの原因となる特定の条件または理由について説明します。

    • エラー integer(int32) 必須

      このエラーで返された HTTP ステータス コード。

      外部ドキュメント
    • errorCode string 必須

      このエラーで返されたアプリケーション エラー コード。

    • パラメーター array[オブジェクト]

      エラーに関する詳細情報を提供するために使用されるパラメーター。

    • 理由 string

      このエラーで返されたアプリケーション エラー メッセージ。

  • 403 application/ JSON

    Forbidden.

    応答属性の非表示 応答属性の表示 オブジェクト
    • validRequestDetail オブジェクト

      無効なリクエストの詳細。

      validRequestDetail 属性を非表示にする validRequestDetail 属性の表示 オブジェクト
      • フィールド array[オブジェクト]

        クライアントリクエストにおけるすべての違反を説明します。

        フィールド属性を非表示にする フィールド属性の表示 オブジェクト
        • 説明 string 必須

          リクエスト要素が禁止されている理由の説明。

        • フィールド string 必須

          リクエスト本文内のフィールドにつながるパス。

    • 詳細 string

      各タイプのエラーの原因となる特定の条件または理由について説明します。

    • エラー integer(int32) 必須

      このエラーで返された HTTP ステータス コード。

      外部ドキュメント
    • errorCode string 必須

      このエラーで返されたアプリケーション エラー コード。

    • パラメーター array[オブジェクト]

      エラーに関する詳細情報を提供するために使用されるパラメーター。

    • 理由 string

      このエラーで返されたアプリケーション エラー メッセージ。

  • 404 application/ JSON

    見つかりません。

    応答属性の非表示 応答属性の表示 オブジェクト
    • validRequestDetail オブジェクト

      無効なリクエストの詳細。

      validRequestDetail 属性を非表示にする validRequestDetail 属性の表示 オブジェクト
      • フィールド array[オブジェクト]

        クライアントリクエストにおけるすべての違反を説明します。

        フィールド属性を非表示にする フィールド属性の表示 オブジェクト
        • 説明 string 必須

          リクエスト要素が禁止されている理由の説明。

        • フィールド string 必須

          リクエスト本文内のフィールドにつながるパス。

    • 詳細 string

      各タイプのエラーの原因となる特定の条件または理由について説明します。

    • エラー integer(int32) 必須

      このエラーで返された HTTP ステータス コード。

      外部ドキュメント
    • errorCode string 必須

      このエラーで返されたアプリケーション エラー コード。

    • パラメーター array[オブジェクト]

      エラーに関する詳細情報を提供するために使用されるパラメーター。

    • 理由 string

      このエラーで返されたアプリケーション エラー メッセージ。

  • 500 application/ JSON

    内部サーバーエラー。

    応答属性の非表示 応答属性の表示 オブジェクト
    • validRequestDetail オブジェクト

      無効なリクエストの詳細。

      validRequestDetail 属性を非表示にする validRequestDetail 属性の表示 オブジェクト
      • フィールド array[オブジェクト]

        クライアントリクエストにおけるすべての違反を説明します。

        フィールド属性を非表示にする フィールド属性の表示 オブジェクト
        • 説明 string 必須

          リクエスト要素が禁止されている理由の説明。

        • フィールド string 必須

          リクエスト本文内のフィールドにつながるパス。

    • 詳細 string

      各タイプのエラーの原因となる特定の条件または理由について説明します。

    • エラー integer(int32) 必須

      このエラーで返された HTTP ステータス コード。

      外部ドキュメント
    • errorCode string 必須

      このエラーで返されたアプリケーション エラー コード。

    • パラメーター array[オブジェクト]

      エラーに関する詳細情報を提供するために使用されるパラメーター。

    • 理由 string

      このエラーで返されたアプリケーション エラー メッセージ。

atlas api cloudMigrationService createGroupLiveMigration --help
import (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20241023001/admin"
)

func main() {
	ctx := context.Background()
	clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
	clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")

	// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
	client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))

	if err != nil {
		log.Fatalf("Error: %v", err)
	}

	params = &sdk.CreateGroupLiveMigrationApiParams{}
	sdkResp, httpResp, err := client.CloudMigrationServiceApi.
		CreateGroupLiveMigrationWithParams(ctx, params).
		Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "Accept: application/vnd.atlas.2024-10-23+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations" \
  -d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
  --digest --include \
  --header "Accept: application/vnd.atlas.2024-10-23+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations" \
  -d '{ <Payload> }'
リクエスト例
{
  "destination": {
    "clusterName": "string",
    "groupId": "32b6e34b3d91647abb20e7b8",
    "hostnameSchemaType": "PUBLIC",
    "privateLinkId": "string"
  },
  "dropDestinationData": false,
  "migrationHosts": [
    "vm001.example.com"
  ],
  "sharding": {
    "createSupportingIndexes": true,
    "shardingEntries": [
      {
        "collection": "string",
        "database": "string",
        "shardCollection": {
          "key": [
            {
              "additionalProperty1": {},
              "additionalProperty2": {}
            }
          ]
        }
      }
    ]
  },
  "source": {
    "caCertificatePath": "string",
    "clusterName": "string",
    "groupId": "32b6e34b3d91647abb20e7b8",
    "managedAuthentication": true,
    "password": "string",
    "ssl": true,
    "username": "string"
  }
}
応答の例(201)
{
  "_id": "32b6e34b3d91647abb20e7b8",
  "lagTimeSeconds": 42,
  "migrationHosts": [
    "vm001.example.com"
  ],
  "readyForCutover": true,
  "status": "NEW"
}
応答の例(400)
{
  "error": 400,
  "detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
  "reason": "Bad Request",
  "errorCode": "VALIDATION_ERROR"
}
応答の例(401)
{
  "error": 401,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Unauthorized",
  "errorCode": "NOT_ORG_GROUP_CREATOR"
}
応答の例(403)
{
  "error": 403,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Forbidden",
  "errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
応答の例(404)
{
  "error": 404,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
  "reason": "Not Found",
  "errorCode": "RESOURCE_NOT_FOUND"
}
応答の例(500)
{
  "error": 500,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Internal Server Error",
  "errorCode": "UNEXPECTED_ERROR"
}