公開日:
はじめに
こんにちは、サポートの沖です。(68.0kg 24.9% 沖縄ヤバい。。)
サポートではデプロイットの質問も多くいただいております。その中にはシンプルな使い方から踏み込んだ使い方まで色々な内容があり、多くの人にお使いいただいているなー、と実感しています。デプロイットはアプリのバージョン管理やレコードのバックアップ・リストアをするサービスなので、少し専門性が高いという前提があるのですがありがたい事です。
その問い合わせの中で、以下のブログに記載の「1環境に複数のスペースにあるアプリを登録する場合」についてに質問が増えてきているように感じています。
ただ、ここでの記述が6行だけという事や、テストアプリ等で実際に操作するような案内のためイメージしにくいとは思います。複数スペースなので実際には様々な注意点があるのですが、シンプルな構成を例に操作を案内したいと思います。
そんなことが可能な便利なサービスのデプロイットについてはこちらのページをご確認ください。
スペースと環境構成
今回は以下のようなプロジェクトを例にします。2つの環境があり、それぞれに2つのアプリが登録されています。そのアプリはそれぞれ別のスペースにあるという構成です。アプリバンドルは2つになり、それぞれのアプリバンドル内で配布が可能です。

ただ、ここでデプロイットを知っている人だと「環境に設定できるスペースは1つだけなのに2つ設定可能なの?」と疑問が出てくると思います。確かに、環境に登録できるのは1つだけなので、今回の構成だとどちらかのスペースのみ登録可能です。ではもう一つのスペースにあるアプリはどうなるのか?
それについては以下で順に説明をしていきたいと思います。なお、今回の例では、開発環境にスペースA、本番環境にスペースCのスペースIDとスレッドIDが登録されています。
環境に設定しているスペースへの配布例
環境に設定している方なので、スペースAのアプリ1とスペースCのアプリ3の場合です。

既にそれぞれの環境にアプリが登録されている場合、アプリ1を取り込んで配布するとアプリ3が更新されます。注意点としては新規配布の場合です。新規配布は環境に設定しているスペースの情報をもとに作成先が決まります。今回の設定はスペースCが環境に登録されているので、画像の通りスペースCにアプリ3が新規作成されます。
この動きは通常の使い方と変わらないのでイメージしやすいと思います。
環境に設定していないスペースへの配布例
続いてはスペースBにあるアプリ2をスペースDにあるアプリ4に配布するケースです。

アプリ2は環境に登録されていないスペースにありますが環境に登録が可能です。そして、アプリ4が本番環境に登録済みであれば配布も可能です。操作時に何も変わった表示はないので環境に登録されていないスペースにあるアプリとは気づかないと思います。
注意点は新規配布の場合です。新規配布の場合はどこに配布するかの指定が必要なため、今回のケースではスペースCにアプリ4が作成されます。以前のkintoneだと手詰まりだったのですが、今では所属スペースを変更できるのでスペースCからスペースDに変更することで新規配布が可能ということになります。
そもそもなんでそうなるの?
デプロイットではkintoneの REST APIを使用してアプリの配布をしています。そのため、いろいろな制約は主にAPIの仕様によって発生しています。ですので、疑問に思った場合や出来るかどうかに悩んだ場合は公式のドキュメントを確認すると把握しやすいと思います。
また、アプリには動作テスト環境と運用環境があります。それぞれの環境に対して出来ることが決まっているという点にもご注意ください。特にプラグインの設定画面でフィールド情報を取得するときに運用環境から取得するのはダメですよ(脱線)。
アプリの新規作成は
https://cybozu.dev/ja/kintone/docs/rest-api/apps/add-app
で実行します。この時にスペース内のアプリであれば「スペースID」と「スレッドID」の指定が必要です。
アプリに対してフィールドを追加するのは
https://cybozu.dev/ja/kintone/docs/rest-api/apps/form/add-form-fields
で実行しますが、この時のパラメータは「アプリID」のみの指定なのでスペース内かどうかは関係しません。そのため新規作成時だけデプロイットの環境に設定しているスペースの情報が使用されるということになります。
この事により、アプリの新規配布だけ注意が必要という事です。これで疑問も解けてスッキリですね。
あれ?ゲストスペースは?
・・・お気づきでしたか。。
そう、先ほどのフィールド追加のAPIの説明をよく見るとURLが異なっていると思います。

ゲストスペースの場合はリクエスト先のURLにゲストスペースの「スペースID」が含まれています。そのためデプロイットの環境に登録されているゲストスペースにだけ配布やフィールド追加が可能ということになります。

まとめ
ということで、デプロイットで1環境に複数スペースがあるケースについてご案内しました。基本的には1環境に1スペースなので、スペースが違えば環境を分けていただくのが確実です。開発環境が複数のスペースで本番環境は1つのスペースというのもアリだと思います。
他にはアプリを登録せずアプリIDで直接指定というのも可能なのですが、カスタマインが関係するとアプリ構成情報がややこしくなってエラーになりがちなので、自力で解決できない場合はアプリを登録することをお勧めします。マスタ系とかならアプリ間でレコード同期とかも可能ですし。
このようにデプロイットがあるとアプリの開発と配布が簡単になるので、まだお使いで無い方は是非お試しください。そして腕に自信のある方は同じような仕組みを作成して、kintoneのAPIの仕様に打ちのめされてください(苦笑)
いやー、フィールドの修正だけであんなに面倒とはね。。。個人的には追加と修正だけならまだしも削除を考えるとロジック大変だったので、デプロイットを使い倒す方向で頑張ります!
投稿者プロフィール
-
"サイボウズ公認kintoneエバンジェリスト
カスタマインやデプロイットでも色々とやってます"
最新の投稿
gusuku2025年11月21日デプロイット実践編7「1環境に複数スペース内のアプリを登録し配布もしてみよう」
kintone2025年11月7日アドベンチャーゲームを作ってみよう
kintone2025年10月24日Cybozu Days 2025開催直前! gusukuシリーズで出来ることを再確認!!
community2025年10月22日そうだ京都に行こう






