デプロイ

概要

デプロイ機能は、ソリューションをAnyflow SDKやウィザードホスティングから利用できる状態に公開する機能です。

デプロイするための手順は以下の通りです。

ソリューションをデプロイする

1. ソリューションエディタ右上のプルダウンメニューをクリックします。

  1. デプロイボタンを押します。

 デプロイ環境を設定している場合は、どの環境にデプロイするかを選択できます。

  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による方法

SDKのuninstallSolution メソッドを実行します。 これには、SDKが設置されている画面をエンドユーザーが訪れる必要があります。

数名程度がアンインストールすれば済む場合は、小規模なアナウンスなどを経て、SDKによる方法を実施するとスムーズです。

Anyflowに依頼する方法

ある程度の人数に対し強制的にアンインストールを行う場合は、以下の情報とともにAnyflow CSチームにご依頼ください。

  • アンインストールしたいソリューションのID(必須)

  • 対象のエンドユーザーのID(任意)

※全てのユーザーでアンインストールを実施する場合はエンドユーザーIDの共有は不要です。

注意点

いずれの方法においても、アンインストール後はエンドユーザーが再度インストールを行う必要があり、これは各エンドユーザー自身が実施する必要があります。

また、アンインストールを行うと当該ユーザーにおける実行履歴は削除されます。

上記を踏まえ、十分に周知・留意のうえ計画的に実施いただくことを推奨いたします。

互換性があるデプロイにおける注意事項

互換性があるデプロイを行った場合でも、ソリューションの組み方次第では、 過去にインストールしたユーザーがソリューションの実行でエラーを発生させてしまう可能性があります。

例えばあるソリューションにて、以下の様な「追加」が行われたケースを考えます。

  1. エンドユーザー変数Aを含むソリューションをデプロイ(ver1)

  2. 一部のエンドユーザーがインストール

  3. さらにエンドユーザー変数Bを追加してデプロイ(ver2)

  4. 別のエンドユーザーがインストール

これは互換性のあるデプロイですが、エンドユーザーとしては以下の2集団が発生します。

  • ver1のときにインストールしたユーザー(変数Aのみ入力)

  • ver2のときにインストールしたユーザー(変数AとBを入力)

ソリューションを実行する際はどちらの集団であってもver2の処理が実行されます。

その際、ver1のときにインストールしたユーザーは変数Bを入力していないため、 実行時は変数BはNone(値が存在しない)の扱いで処理されます。 よって、この変数BをSlackの投稿チャンネルなどの必須項目として指定するとエラーとなります。

以上を考慮し、ver2のソリューションとしては変数Bの値が存在するかどうかでif分岐をすると安全です。

  • 変数Bが存在する場合:変数BをそのままSlackの投稿チャンネルに指定

  • 変数Bが存在しない場合:存在しない場合のデフォルト値をSlackの投稿チャンネルに指定

最終更新