移行を実行する

適切な IAM 権限があり、必須の組織のポリシーが適用されている場合、Resource Manager API を使用して、組織リソース間でプロジェクト リソースを移行できます。

gcloud

プロジェクトを別の組織リソースに移行するには、次のコマンドを実行します。

gcloud beta projects move PROJECT_ID \
    --organization ORGANIZATION_ID

次のコマンドで、対象リソースとしてフォルダを指定することもできます。

gcloud beta projects move PROJECT_ID \
    --folder FOLDER_ID

次のフィールドを置き換えます。

  • PROJECT_ID は、移行するプロジェクトの ID または番号です。
  • ORGANIZATION_ID は、プロジェクトの移行先となる組織リソースの ID です。1 つの組織リソースまたはフォルダのどちらか 1 つの対象のみを指定できます。
  • FOLDER_ID は、プロジェクトの移行先フォルダの ID です。1 つのフォルダまたは組織リソースのどちらか 1 つの対象のみを指定できます。

API

v1 Resource Manager API を使用して、parent フィールドを移行先リソースの ID に設定することで、組織リソース間でプロジェクトを移行できます。

プロジェクトの移行は、次の手順で行います。

  • projects.get() メソッドを使用して project オブジェクトを取得します。
  • parent フィールドを組織リソースの組織リソース ID か、移行先のフォルダのフォルダ ID に設定します。
  • projects.update() メソッドを使用して、project オブジェクトを更新します。

次のコード スニペットは、上記の手順を示しています。

    project = crm.projects().get(projectId=flags.projectId).execute()
    project['parent'] = {
        'type': 'organization',
        'id': flags.organizationId
    }

    project = crm.projects().update(
    projectId=flags.projectId, body=project).execute()

移行のロールバック

プロジェクトを誤って移行した場合は、古いソースを新しい移行先、元の移行先を新しいソースとしてもう一度移行を実行することで、そのオペレーションをロールバックできます。実行するには、これがまったく新しい移行であるかのように、必要な IAM 権限と組織のポリシーが適用されている必要があります。

プロジェクトが [組織なし] から [組織] リソースに移行された移行をロールバックするには、Google Cloud カスタマーケアにお問い合わせください。