お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

IaC設定

はじめに

Infrastructure as Code(IaC)設定では、Catalystコンソールからプロジェクトのエクスポートとインポートを簡単に実行できます。Catalystプロジェクトのスキーマ(コンポーネントの構成やコードを含む)を外部ZIPファイルとしてエクスポートできます。このZIPファイルを新しいプロジェクトとして任意のCatalystアカウントにインポートできます。ZIPファイルはプロジェクトのエクスポート時に特定の形式で作成され、この形式でのみインポートできます。

プロジェクトのエクスポートとインポート機能により、データセンター間またはCatalystアカウント間でプロジェクトを簡単に転送できます。また、GitHubリポジトリなどの外部環境からプロジェクトに簡単にアクセスしてテストすることもできます。Catalystプロジェクトのコンポーネントを含むGitリポジトリをクローンし、ZIPファイルを生成してインポートし、プロジェクトをテストするだけです。CIシステムなどのリモートシステムからこれらのアクションを実行したり、スクリプトを作成してこれらのタスクを自動化したりすることもできます。この機能を使用すると、既存のプロジェクトを簡単に複製し、さまざまなユースケース用にブランチすることもできます。

IaCプロジェクトのエクスポートとインポート機能は、Catalystコンソールの_General settings_からアクセスできます。

注: これらのIaC操作はCLIからも実行できます。CLIでは、プロジェクトをローカルディレクトリにエクスポートしたり、リモートコンソールやローカル環境に新しいプロジェクトをインポートしたり、任意のプロジェクトのインポート可能なZIPファイルを生成したりできます。詳細はCLIエクスポートとインポートヘルプドキュメントを参照してください。

エクスポート/インポートZIPファイル形式とは?

IaC操作では、データなしでプロジェクトの構成をエクスポートおよびインポートできます。Data Storeテーブルのレコード、アプリケーションのユーザーリスト、File StoreのファイルなどのデータはZIPファイルに含まれません。ただし、Data Storeの各テーブルのメタデータやFile Storeのフォルダ構造は含まれます。これはすべての機能で同様です。

ZIPファイルには、すべての関数とクライアントコンポーネントのコードがそれぞれのディレクトリに含まれます。

プロジェクトのエクスポート時に生成されるZIPファイルの構造を以下に示します:

catalyst_console_iac_export_zip

  • 関数ディレクトリのZIPファイル: 標準構造のプロジェクトのfunctionsディレクトリ。プロジェクトで作成されたすべての関数が、構成ファイルとSDKコンポーネントとともに個別のZIPファイルとしてこのディレクトリに存在します。
  • クライアントディレクトリのZIPファイル: 標準構造のプロジェクトのwebclientディレクトリ。プロジェクトで初期化されたWebクライアントが、すべてのクライアントファイルとともにZIPファイルとしてこのフォルダに存在します。
  • Project-Template JSONファイル: プロジェクトのコンポーネント構成が1つのJSONファイルに含まれます。JSONファイルには、プロジェクト設定とコンポーネント定義が含まれます。これには、Data StoreとFile Storeのメタデータ、Cacheセグメント、Cronジョブ、Circuit構成、セキュリティルール、メールドメインとアドレス、Event Listenersとルール、API GatewayのAPI、メールテンプレート、ユーザープロファイルなどが含まれます。

サンプルproject-template JSONの抜粋を以下に示します:

copy
{
  "name" : "project-template",
  "version" : "1.0.0",
  "parameters" : { },
  "components" : {
    "Circuits" : [ {
      "type" : "circuit",
      "name" : "InvoiceGen",
      "properties" : {
        "name" : "InvoiceGen",
        "states" : {
          "State1" : {
            "next" : "End",
            "start" : true,
            "type" : "pass"
          }
        }
      },
      "dependsOn" : [ ]
    } ],
    "Functions" : [ {
      "type" : "function",
      "name" : "warehouseportal",
      "properties" : {
        "stack" : "node14",
        "code" : {
          "path" : "functions/warehouseportal.zip"
        },
        "configuration" : {
          "memory" : 256
        },
        "type" : "basicio",
        "name" : "warehouseportal"
      },
      "dependsOn" : [ ]
    }
 ],
    "WebClient" : [ {
      "type" : "client",
      "name" : "warehousePortal",
      "properties" : {
        "app_name" : "warehousePortal",
        "code" : {
          "path" : "webclient/warehousePortal.zip"
        }
      },
      "dependsOn" : [ ]
    } ],
    "Cron" : [ {
      "type" : "cron",
      "name" : "dailyBackup",
      "properties" : {
        "cron_url_details" : {
          "headers" : { },
          "request_body" : "",
          "request_method" : "POST",
          "params" : { },
          "url" : "https://catalyst.zoho.com/help/index.html"
        },
        "end_time" : -1,
        "description" : "",
        "cron_name" : "dailyBackup",
        "job_detail" : {
          "hour" : 1,
          "timezone" : "America/Los_Angeles",
          "minute" : 0,
          "second" : 0,
          "repetition_type" : "Daily"
        },
        "cron_type" : "Calendar",
        "status" : true
      },
      "dependsOn" : [ ]
    } ],
    "Datastore" : [ {
      "type" : "table",
      "name" : "InventoryDB",
      "properties" : {
        "table_name" : "InventoryDB"
      },
      "dependsOn" : [ ]
    }, {
      "type" : "column",
      "name" : "InventoryDB-ProductID",
      "properties" : {
        "decimal_digits" : 2,
        "column_name" : "ProductID",
        "data_type" : "int",
        "is_unique" : false,
        "is_mandatory" : false,
        "search_index_enabled" : false,
        "table_id" : "InventoryDB",
        "table_name" : "InventoryDB",
        "max_length" : 10
      },
      "dependsOn" : [ "Datastore.table.InventoryDB" ]
    },
{
      "type" : "tableScope",
      "name" : "InventoryDB-App Administrator",
      "properties" : {
        "role_name" : "App Administrator",
        "table_scope" : "GLOBAL",
        "type" : "App Administrator",
        "table_name" : "InventoryDB"
      },
      "dependsOn" : [ "Datastore.table.InventoryDB" ]
    }, {
      "type" : "tableScope",
      "name" : "InventoryDB-App User",
      "properties" : {
        "role_name" : "App User",
        "table_scope" : "GLOBAL",
        "type" : "App User",
        "table_name" : "InventoryDB"
      },
      "dependsOn" : [ "Datastore.table.InventoryDB" ]
    }, {
      "type" : "tablePermission",
      "name" : "InventoryDB-App Administrator",
      "properties" : {
        "role_name" : "App Administrator",
        "type" : "App Administrator",
        "table_permissions" : [ "SELECT", "UPDATE", "INSERT", "DELETE" ],
        "table_name" : "InventoryDB"
      },
      "dependsOn" : [ "Datastore.table.InventoryDB" ]
    }, {
      "type" : "tablePermission",
      "name" : "InventoryDB-App User",
      "properties" : {
        "role_name" : "App User",
        "type" : "App User",
        "table_permissions" : [ "SELECT" ],
        "table_name" : "InventoryDB"
      },
      "dependsOn" : [ "Datastore.table.InventoryDB" ]
    }]
}
}
注: ZIPファイルにproject-template JSONファイルが含まれていない場合、Catalystはプロジェクトをインポートできません。これはプロジェクトの設定を定義する必須ファイルです。

プロジェクトをエクスポートするには?

_General Settings_セクションから任意のプロジェクトをエクスポートできます。これらはCatalystアカウント全体に適用される共通設定です。

Catalystは、すべてのコンポーネント定義とプロジェクト設定をproject-template JSONファイルに書き込みます。コンポーネントが構成されていない場合は、デフォルトの構成がJSONファイルに書き込まれます。

注: ローカル環境でプロジェクトを操作した場合は、コンソールからプロジェクトをエクスポートする前に、CLIを使用して更新されたコードやセットアップをリモートコンソールにデプロイしてください。

プロジェクトの開発環境または本番環境からプロジェクトをエクスポートできます(本番環境が有効になっている場合)。エクスポートが完了すると、生成されたZIPファイルをダウンロードできます。このZIPファイルをそのまま、別のアカウント、データセンター、またはプロジェクトの複製が必要な場合は同じアカウントの新しいプロジェクトとしてインポートできます。

注: ZIPファイルが生成された後、Catalystはダウンロード用にファイルを15日間保存します。15日後にダウンロードリンクは無効になります。有効期限切れ後にダウンロード用の新しいZIPファイルを生成するには、プロジェクトを再エクスポートする必要があります。

プロジェクトをエクスポートするには:

  1. _General Settings_のInfrastructure as Codeに移動し、IaC Exportsタブをクリックします。
    catalyst_console_iac_exports
  2. Export a Projectをクリックします。
  3. ドロップダウンのプロジェクトリストからエクスポートするプロジェクトを選択します。Catalystアカウントのすべてのプロジェクトがここに表示されます。エクスポートするプロジェクトの環境を選択します。
    catalyst_console_iac_export_1
  4. Exportをクリックします。

Catalystがプロジェクトのエクスポートプロセスを開始します。コンソールにエクスポートのステータスが表示されます。

catalyst_console_iac_export_2

エクスポートが初期化されると、Export IDが自動的に生成されます。Export IDを使用して、CLIからエクスポートジョブのステータスを確認できます。コンソールにはエクスポートの他の詳細も表示されます。エクスポートが完了すると、プロジェクトのZIPファイルをダウンロードできるDownload ZIPリンクが表示されます。

catalyst_console_iac_export_done

エクスポートプロセスに問題があり、Catalystがプロジェクトをエクスポートできなかった場合、コンソールにView Error Logリンクが表示されます。

catalyst_console_iac_error_log_1

このリンクをクリックしてエラーの詳細を表示できます。エラーを解決し、プロジェクトを再度エクスポートできます。

catalyst_console_iac_error_log_2

プロジェクトを再エクスポートするには?

ZIPダウンロードリンクの有効期限が切れた場合やプロジェクトのコンポーネントやコードが更新された場合、以前エクスポートしたプロジェクトを再度エクスポートできます。

注:
  • Catalystは常にプロジェクトの最新の定義とコードをエクスポートします。

  • 以前エクスポートしたプロジェクトを再エクスポートすると、そのプロジェクトの最新のエクスポートの_Download ZIP_リンクのみが利用可能になります。これは、Catalystがプロジェクトの最新のエクスポートのみを保存し、以前のエクスポートは保存しないためです。

以前エクスポートしたプロジェクトを再度エクスポートするには、エクスポートされたプロジェクトの省略記号アイコンをクリックし、Export Againをクリックします。

catalyst_console_iac_export_again

前のセクションで説明したのと同じ方法でプロジェクトがエクスポートされます。Download ZIPリンクから最新のエクスポートをダウンロードできます。

プロジェクトをインポートするには?

IaCインポートオプションを使用すると、既存のプロジェクトZIPファイルから新しいCatalystプロジェクトをインポートできます。Catalystは、project-template JSONで指定された定義に基づいて各コンポーネントを構成します。関数とクライアントコードも、存在する場合はプロジェクトに入力されます。インポートジョブが完了すると、構成とコードが入力された新しいプロジェクトが利用可能になります。

注:
  • プロジェクト定義、関数およびクライアントコードを含むソースZIPファイルは、インポートするために標準形式である必要があります。

  • project-template JSONファイルはZIPファイルのルートに必ず存在する必要があります。このファイルなしではプロジェクトをインポートできません。functionsまたはwebclientディレクトリは必須ではありません。

  • 本番環境に直接プロジェクトをインポートすることはできません。

以下の方法で新しいプロジェクトをインポートできます:

  1. _General Settings_のInfrastructure as Codeに移動します。
    catalyst_console_iac_imports
  2. _IaC Imports_セクションからImport New Projectをクリックします。
  3. ポップアップウィンドウに新しいプロジェクトの名前を入力します。インポートするプロジェクトのソースZIPファイルを選択します。
    catalyst_console_iac_import_1
  4. Importをクリックします。

Catalystがプロジェクトのインポートプロセスを開始します。コンソールにプロセスのステータスが表示されます。

catalyst_console_iac_import_2

インポートが初期化されると、Import IDが自動的に生成されます。Import IDを使用して、CLIからインポートジョブのステータスを確認できます。コンソールにはインポートジョブの他の詳細も表示されます。

インポートが成功すると、ZIPファイルに基づいてコンポーネントが構成された新しいプロジェクトがコンソールに作成されます。コンソールにはインポートジョブのAccess Projectリンクが表示されます。このリンクをクリックして新しいプロジェクトを開くことができます。

catalyst_console_iac_import_done

インポートプロセスに問題があり、Catalystがプロジェクトをインポートできなかった場合、コンソールにView Error Logリンクが表示されます。

catalyst_console_iac_import_error_log_1

クリックしてエラーの詳細を表示できます。エラーを解決し、プロジェクトを再度インポートできます。

catalyst_console_iac_import_error_log_2

最終更新日 2026-02-23 18:09:41 +0530 IST