デプロイ
最終更新
デプロイ機能は、ソリューションをAnyflow SDKやウィザードホスティングから利用できる状態に公開する機能です。
デプロイするための手順は以下の通りです。
1. ソリューションエディタ右上のプルダウンメニューをクリックします。
デプロイボタンを押します。
デプロイボタンを押すとデプロイ完了です。
Anyflow Embedでは現在は互換性チェックの機能を部分的にしか提供していません。
ソリューションをデプロイする際には、互換性(破壊的な変更かどうか)について十分に注意してください。
以下のケースでは互換性チェックがはたらき、デプロイを行うことができません。
トリガーが変更された場合
e.g. Clickトリガー を My Eventトリガーに変更した
e.g. My Eventトリガー を Requestトリガーに変更した
入力必須のエンドユーザー変数を削除した場合
e.g. Slackのチャンネルを選択するアシスト(必須)を削除した
以下のようなケースは互換性がないためデプロイが可能ですが、 ソリューションを実行するとエラーになることが想定されます。
コネクタが変更された場合
e.g. Salesforce連携のソリューションをHubSpot連携に変更した
アクションに必要なスコープが変更された場合
e.g. Slackのチャンネル通知を行うソリューションを、Slackのユーザー検索を行うものに変更した
入力必須のエンドユーザー変数を追加した場合
e.g. Slackのチャンネルを選択するアシスト(必須)を追加した
入力任意のエンドユーザー変数を削除した場合
e.g. Slackのチャンネルを選択するアシスト(任意)を削除した
上記のような互換性がない変更を行うと、結果として以下の様なエラーが発生する可能性があります。
例えば「Slack投稿のアクションにて、チャンネルがうまく指定されなければエラーが発生する」 といったようにソリューションの中で必須になっている項目が削除されていると当然エラーとなります。
エンドユーザーが最新のソリューションを再びインストールしようとしても、互換性がない場合はソリューションインスタンスをうまく更新できずに失敗してしまいます。
もし、いずれかのエンドユーザーがインストールしたソリューションが実行途中のタイミングでソリューションをデプロイした場合でも、 その実行中の一連の処理に影響はありません。 (ソリューションの実行を開始したタイミングで一連の処理内容が決まっているため)
デプロイ後に実行開始された処理が、変更の影響を受けます。
互換性チェックがはたらかないケースでは、デプロイすること自体は可能ですが、上記の通りエンドユーザー側での失敗/エラーが発生してしまいます。
これを解消するには、全てのエンドユーザーが現行バージョンをアンインストールする必要があります。
アンインストールは、SDKによる方法とAnyflowに依頼する方法があります。
数名程度がアンインストールすれば済む場合は、小規模なアナウンスなどを経て、SDKによる方法を実施するとスムーズです。
ある程度の人数に対し強制的にアンインストールを行う場合は、以下の情報とともにAnyflow CSチームにご依頼ください。
アンインストールしたいソリューションのID(必須)
対象のエンドユーザーのID(任意)
※全てのユーザーでアンインストールを実施する場合はエンドユーザーIDの共有は不要です。
いずれの方法においても、アンインストール後はエンドユーザーが再度インストールを行う必要があり、これは各エンドユーザー自身が実施する必要があります。
上記を踏まえ、十分に周知・留意のうえ計画的に実施いただくことを推奨いたします。
互換性があるデプロイを行った場合でも、ソリューションの組み方次第では、 過去にインストールしたユーザーがソリューションの実行でエラーを発生させてしまう可能性があります。
例えばあるソリューションにて、以下の様な「追加」が行われたケースを考えます。
エンドユーザー変数Aを含むソリューションをデプロイ(ver1)
一部のエンドユーザーがインストール
さらにエンドユーザー変数Bを追加してデプロイ(ver2)
別のエンドユーザーがインストール
これは互換性のあるデプロイですが、エンドユーザーとしては以下の2集団が発生します。
ver1のときにインストールしたユーザー(変数Aのみ入力)
ver2のときにインストールしたユーザー(変数AとBを入力)
ソリューションを実行する際はどちらの集団であってもver2の処理が実行されます。
その際、ver1のときにインストールしたユーザーは変数Bを入力していないため、 実行時は変数BはNone(値が存在しない)の扱いで処理されます。 よって、この変数BをSlackの投稿チャンネルなどの必須項目として指定するとエラーとなります。
以上を考慮し、ver2のソリューションとしては変数Bの値が存在するかどうかでif分岐をすると安全です。
変数Bが存在する場合:変数BをそのままSlackの投稿チャンネルに指定
変数Bが存在しない場合:存在しない場合のデフォルト値をSlackの投稿チャンネルに指定
を設定している場合は、どの環境にデプロイするかを選択できます。
または のどちらかを実施していないと、デプロイを行っただけではエンドユーザーは利用できません。
SDKのを実行します。 これには、SDKが設置されている画面をエンドユーザーが訪れる必要があります。
また、アンインストールを行うと当該ユーザーにおけるは削除されます。