export-entity コマンドの使用

export-entity コマンドを使用して、 開発者ポータル ・サイトからのコンテンツ・エンティティーのエクスポートを管理できます。

製品情報

開発者ポータル は、 Drupal コンテンツ管理システムに基づいています。 Drupalでは、コンテンツ・エンティティーは、テキスト、イメージ、HTML マークアップなど、サイト・ユーザーに表示することを意図したコンテンツ・データの項目です。 コンテンツ・エンティティーはエンティティー・タイプにグループ化され、これらのエンティティー・タイプのほとんどは、バンドルとも呼ばれるエンティティー・サブタイプに細分化されます。 export-entity コマンドを使用すると、エクスポートするすべてのコンテンツ・エンティティーの事前定義リスト (エクスポート・エンティティーと呼ばれる) を作成できます。 複数のエクスポート・エンティティーを作成できます。各エクスポート・エンティティーには、独自の関連付けられたエンティティー・タイプのセットが含まれています。 エクスポート・エンティティーは永続するため、必要に応じてコンテンツを追加したりコンテンツを削除したりすることができます。

一度に 1 つのタイプのコンテンツ・エンティティー、またはすべてのコンテンツ・エンティティー・タイプのみをエクスポートする場合は、 content コマンドを使用できます。詳しくは、 コンテンツ・コマンドの使用 を参照してください。 これらのコマンドは、エンティティー・コンテンツをインポートする場合にも使用します。

手順

  1. 以下の例に示すように、プロバイダー組織としてログインします。
    apic login --server management_server --realm provider/identity_provider --username provider_username --password provider_password
    次のコマンドを入力して、使用可能なすべての ID プロバイダーのリストを表示することで、--realm パラメーターで使用する ID プロバイダーを判別できます (このコマンドを使用するためにログインする必要はありません)。
    apic identity-providers:list --scope provider --server platform_api_endpoint_url --fields title,realm
    例:
    apic identity-providers:list --scope provider --server platform_api_endpoint_url --fields title,realm 
    total_results: 2
    results:
      - title: API Manager User Registry
        realm: provider/default-idp-2
      - title: Corporate LDAP user registry
        realm: provider/corporate-ldap
    title 値により、使用する ID プロバイダーを判別できます。その後に、表示された realm 値から対応する --realm パラメーターを直接コピーできます。 API Connect のインストール後に管理者によって作成された ID プロバイダーの場合、名前は作成時に決定されます。 プロバイダー組織のメンバーとしてログインするためのデフォルトの API Manager ローカル・ユーザー・レジストリーは default-idp-2 です。

    apic login コマンドについて詳しくは、 管理サーバーへのログインを参照してください。

    汎用コマンドとその使用法の要約については、 開発者ポータルの CLI コマンドを参照してください。

  2. 以下の export-entity:create コマンドを使用して、エクスポート・エンティティーを作成します。 このコマンドは、エクスポートするエンティティー・コンテンツのコンテナーを作成します。
    apic --mode portaladmin --server management_server --org orgid/name --catalog catalogid/name export-entity:create --export_entity_name "export_entity_name"
    各項目の意味は次のとおりです。
    • management_server は管理サーバーのエンドポイント URL です(必須)。
    • orgid/name は、カタログが属しているプロバイダー組織の ID または名前です (必須)。
    • catalogid/name は、サイトが属しているカタログの ID または名前です (必須)。
    • export_entity_name は、作成したいエクスポート・エンティティーの名前です。 この名前は固有 ID ではないことに注意してください。
    このコマンドは、新しく作成されたエクスポート・エンティティーの ID を返します。 例:
    apic --mode portaladmin --server my_management_server --org my_org --catalog my_catalog export-entity:create --export_entity_name "Main Content"
    [notice] Created new export entity Main Content, id 5
    返された ID 番号を個別にメモします。この ID は今後のコマンドで必要になります。
  3. 以下の export-entity:list コマンドを使用して、サイトで使用可能なすべてのエクスポート・エンティティーをリストします。
    apic --mode portaladmin --server management_server --org orgid/name --catalog catalogid/name export-entity:list
    このコマンドは、使用可能なエクスポート・エンティティーのリスト (ID、およびそれらが作成された日時を含む) を返します。 例:
    apic --mode portaladmin --server my_management_server --org my_org --catalog my_catalog export-entity:list
    -
      id: '5'
      name: 'Main Content'
      created_time: '2023-09-12 15:05:04'
  4. 以下の export-entity:add-content コマンドを使用して、エクスポート・エンティティーにコンテンツを追加します。
    apic --mode portaladmin --server management_server --org orgid/name --catalog catalogid/name export-entity:add-content --export_entity_id export_entity_id --entity_type entity_type_name --entity_ids entity_ids
    各項目の意味は次のとおりです。
    • export_entity_id は、エクスポート・エンティティーの ID です (必須)。
    • entity_type_name は、エクスポート・エンティティーに追加するコンテンツ・エンティティーのタイプです (必須)。 content:list-types コマンドを使用して、サイトからエクスポート可能なコンテンツ・エンティティーのタイプを見つけることができます。 コンテンツ・コマンドの使用を参照してください。
    • entity_ids は、エクスポート・エンティティーに追加するエンティティー ID をコンマで区切ったリストです (オプション)。 特定のエンティティー・タイプのすべてのコンテンツ・エンティティーを追加する場合は、エンティティー ID を設定する必要はありません。
    以下の例は、エクスポート・エンティティー 5に追加される 3 つの異なるタイプのエンティティー・コンテンツを示しています。
    apic --mode portaladmin --server my_management_server --org my_org --catalog my_catalog export-entity:add-content --export_entity_id 5 --entity_type node --entity_ids 1,2
    [notice] Successfully added entity type node - "1, 2" to export entity 5
    
    apic --mode portaladmin --server my_management_server --org my_org --catalog my_catalog export-entity:add-content --export_entity_id 5 --entity_type block_content --entity_ids 1,2
    [notice] Successfully added entity type block_content - "1, 2" to export entity 5
    
    apic --mode portaladmin --server my_management_server --org my_org --catalog my_catalog export-entity:add-content --export_entity_id 5 --entity_type shortcut --entity_ids 1
    [notice] Successfully added entity type shortcut - "1" to export entity 5
  5. 以下の export-entity:remove-content コマンドを使用して、エクスポート・エンティティーからコンテンツを削除します。
    apic --mode portaladmin --server management_server --org orgid/name --catalog catalogid/name export-entity:remove-content --export_entity_id export_entity_id --entity_type entity_type_name --entity_ids entity_ids
    各項目の意味は次のとおりです。
    • export_entity_id は、エクスポート・エンティティーの ID です (必須)。
    • entity_type_name は、削除するコンテンツ・エンティティーのタイプです (必須)。
    • entity_ids は、削除するエンティティー ID をコンマで区切ったリストです (オプション)。 特定のエンティティー・タイプのすべてのコンテンツ・エンティティーを削除する場合は、エンティティー ID を設定する必要はありません。
    例えば、コンテンツ・エンティティー・タイプ shortcut のエンティティー ID 1 をエクスポート・エンティティー 5から削除するには、次のコマンドを実行します。
    apic --mode portaladmin --server my_management_server --org my_org --catalog my_catalog export-entity:remove-content --export_entity_id 5 --entity_type shortcut --entity_ids 1
    [notice] Successfully removed entity type shortcut - "1" from export entity 5
  6. 以下の export-entity:get コマンドを使用して、エクスポート・エンティティーのコンテンツの詳細を表示します。 このコマンドは、特定のエクスポート・エンティティー ID 内のすべてのコンテンツ・エンティティーのリストを返します。これは、その ID に対して export-entity:launch コマンドが実行された場合にエクスポートされるエンティティー・コンテンツです。
    apic --mode portaladmin --server management_server --org orgid/name --catalog catalogid/name export-entity:get --export_entity_id export_entity_id
    次の例では、エクスポート・エンティティー 5 に 4 つの異なるコンテンツ・エンティティーが含まれています。
    apic --mode portaladmin --server my_management_server --org my_org --catalog my_catalog export-entity:get --export_entity_id 5
    - bundle: basic
      id: "1"
      title: No Apps Found [en]
      type: block_content
    - bundle: page
      id: "1"
      title: Terms of use
      type: node
    - bundle: basic
      id: "2"
      title: No Apis Found [en]
      type: block_content
    - bundle: page
      id: "2"
      title: Privacy Policy
      type: node
      
  7. 以下の export-entity:launch コマンドを実行して、コンテンツ・エンティティーをエクスポートします。 このコマンドは、特定のエクスポート・エンティティーに含まれているすべてのエンティティーの .tgz ファイルを作成する、エンティティー・ポーリングのエクスポート・タスクを起動します。 デフォルトでは、このコマンドは、タスクが終了するまで 30 秒ごとにタスクの状況をポーリングします。終了すると、エクスポート・ファイルが返されます。 コマンドが --no-poll オプションを指定して実行された場合、タスクは .tgz ファイルを返しませんが、タスク ID のみを返します。
    apic --mode portaladmin --server management_server --org orgid/name --catalog catalogid/name export-entity:launch --export_entity_id export_entity_id
    各項目の意味は次のとおりです。
    • --no-poll はオプションのフラグで、コマンドがタスクの状況をポーリングせず、単にタスク ID を返すことを意味します。 その後、このタスク ID を export-entity:get-export コマンドで使用して、エクスポート・ファイルを返すことができます。
    注: このコマンドは、最大ポーリング時間の 25 分に達するまでポーリングを続行します。 この時点で、コマンド export-entity:get_export_status および export-entity:get-export を使用して、状況を取得することができます。また、タスクが終了している場合は、成果物を取得することもできます。

    export-entity:launch コマンドは複数回実行できます。また、 export-entity:add-content コマンドおよび export-entity:remove-content コマンドを使用して、必要に応じてエクスポート・エンティティーの内容を更新できます。

    以下の例では、エクスポート・エンティティー 5の内容をエクスポートします。
    apic --mode portaladmin --server my_management_server --org my_org --catalog my_catalog export-entity:launch --export_entity_id 5
    201 CREATED - TASK ID: saleo5261k5a2y
    
    Response Code - 202:
    
    Message(s) -
    The status of this task is: QUEUED
    
    Response Code - 200:
    
    Message(s) -
    The status of this task is: FINISHED and the artifact can now be streamed
    
    Saving File (Large files may take a while)...
    Incoming project saved to export_entity_launchExport-20230912165
      
    このコマンドは、実行中のディレクトリーにエクスポートを保存します。 エクスポート .tgz ファイルには、 .tgz ファイルに含まれているすべてのエンティティーの索引と、エクスポートされた各コンテンツ・エンティティー・タイプの content_entity_type.json ファイルを含む root.json ファイルが含まれています。 content_entity_type.json ファイルには、これらのエンティティーを別の 開発者ポータル ・サイトにインポートするために必要なすべての情報が含まれています。
  8. --no-poll オプションを指定して export-entity:launch コマンドを実行した場合は、以下のコマンドを使用してエンティティー・エクスポートを管理できます。
    • export-entity:delete-launch-export
      現在実行中の export-entity:launch タスクをすべてキャンセルし、関連成果物をすべて削除します。 例:
      apic --mode portaladmin --server management_server --org orgid/name --catalog catalogid/name export-entity:delete-launch-export --task_id task_id
      ここで、 task_id は、キュー上のエクスポート・タスクの ID です。
    • export-entity:get-launch-export
      完了した特定の export-entity:launch タスクの内容を .tgz ファイルにストリーミングします。 例:
      apic --mode portaladmin --server management_server --org orgid/name --catalog catalogid/name export-entity:get-launch-export --task_id task_id
    • export-entity:get-launch-export-status
      特定の export-entity:launch タスクの状況を返します。 例:
      apic --mode portaladmin --server management_server --org orgid/name --catalog catalogid/name export-entity:get-launch-export-status --task_id task_id

次のタスク

content コマンドを使用して、エクスポート・エンティティー・アーカイブ・ファイルをインポートできます。詳しくは、 コンテンツ・コマンドの使用 を参照してください。