開発者向け
AzureLogicアプリを使用したKenticoクラウドコンテンツの自動化
By Bryan Soltis
世界はより自動化されています。自動車からコーヒーメーカーまで、開発者がアプリケーションとプラットフォーム間の統合を活用するにつれて、システムはより動的になっています。コンテンツの公開に関しては、編集者の時間を節約する改善は、正しい方向への大きな一歩です。幸い、KenticoCloudをAzureLogic Appsと組み合わせると、わずかなカスタムコードで、大量の自動化を実現できます。
ほぼすべての人が、生活の中で少し自動化することで恩恵を受けることができます。複数のシステムの同期を維持する場合でも、シベリアへの旅行でセールを警告する場合でも(誰かが実際にそれを探しているかもしれません)、人間の介入なしにコンテンツを作成して配信することで、大きなメリットが得られます。
より多くの企業がコンテンツにこのマシン駆動型アプローチを採用するにつれて、開発者がパズルのピースがどのように組み合わされるかを理解しようとするため、統合は非常に複雑になる可能性があります。
Kentico CloudとAzureに関しては、その課題ははるかに簡単になります。新しいWebhookサポートのおかげで、KenticoCloudコンテンツの更新は多くのシステムで監視できます。これをMicrosoftAzure Logic Appsと組み合わせると、強力な自動化ソリューションが得られます。
このブログでは、KenticoCloudとAzureを活用してTwitterフィードを自動化する方法を紹介します。 Azure Logicアプリの詳細については、 こちらをご覧ください。
プロセスを定義する
自動化プロジェクトを開始する前に、プロセスを定義する必要があります。何をしたいのかを理解したら、それをどのように実行するかを決定し始めることができます。私の例では、Kentico Cloudコンテンツの更新に基づいて、Twitterの投稿を自動化したいと考えていました。これがステップの基本的なチャートです。
ご覧のとおり、プロセスの一部としてAzure LogicAppsとAzureFunctionsを使用する予定です。
Kenticoクラウドコンテンツの作成
プロセスの次のステップは、自動化するコンテンツを用意することです。私の例では、KenticoCloudで基本的なArticleコンテンツモデルを作成します。私のデモモデルには、タイトルとカスタマイズされたツイートテキストがあります。実際には、モデルには、本文、ヘッダー画像、およびその他の関連プロパティに対して、さらに多くの要素が含まれます。
Azure関数の作成
コンテンツが整ったので、自動化機能を追加する準備ができました。 Azure Logic Appがほとんどのプロセスを処理しますが、情報を取得するにはKentico CloudAPIを活用する必要があることはわかっていました。私はこの仕事にAzureFunctionを選択しました。これは主に、以前のブログからほとんどのコードを既に記述しているためです。そして最良の部分は?これは私が必要とする唯一のカスタムコードです!
この関数では、指定されたコンテンツアイテムについてKentico Cloud APIにクエリを実行し、ツイートのテキスト値を返しました。関数自体については、Azure Logic Appから直接呼び出されるため、単純なHTTPリクエストで十分です。
これが関数の完全なコードです。
AzureLogicアプリの作成
この時点で、AzureLogicアプリを作成する準備ができました。 Azureポータルで、MarketplaceからLogic Appを選択して、新しいアプリを作成しました。
ワークフローの定義
アプリが作成されたら、 Logic AppDesignerを選択してプロセスを作成しました。このツールを使用すると、アクションと条件をすばやく追加して、パラメーターを定義できます。私は自分のデザインに合うようにプロセスを設計し、価値観とシステムを選択しました。
HTTPリクエストの最初のアクションから始めました。これは、KenticoCloudがコンテンツの更新時にWebhookを起動したときに開始されます。 HTTPリクエストは、投稿されているJSON、この場合はKentico CloudWebhookデータを受け入れます。
[サンプルペイロードを使用してスキーマを生成する]オプションを使用して、正しい構造を生成できます。サンプルの通知ペイロードには、 Kentico CloudWebhookのドキュメントを使用しました。これにより、ロジックアプリが受け取るスキーマをすばやく生成できました。
ロジックアプリがデータのスキーマを理解したら、ワークフローの一部として動的な値を取得できます。 Webhook通知には更新されたアイテムのコレクションが含まれていたため、各アイテムをループして個別に処理することができました。
各コンテンツアイテムについて、投稿する前にいくつかの値を評価したいと思いました。具体的には、コンテンツが公開されているかどうかを確認したかったのです。コレクションから操作プロパティを選択し、基本条件を追加しました。
コンテンツが公開されている場合は、それが記事であるかどうかを確認したいと思いました。タイプ値を確認するために別の条件を追加しました。
注意
評価している値が正しいことを確認するために、プロパティを試行錯誤する必要がある場合があります。
操作とタイプを評価した後、私はついにいくつかの統合を追加する準備ができました。 Azure関数を呼び出すための新しいアクションを追加しました。リストから関数を選択し、リクエスト本文をコードネームの値に設定しました。これにより、コンテンツアイテムのコードネームがAzure関数に渡されます。これは、ツイートテキストを取得するためにKentico CloudAPIにクエリを実行するために使用した値です。
プロセスの最後のステップは、テキストをTwitterに投稿することでした。 Azure Logic Appsには多くの統合が組み込まれているため、リストから[ツイートを投稿する]を選択し、資格情報を入力しました。私Azureの機能は、レスポンスボディにツイートテキストを返したため、私は、ツイート内テキストのためのボディのパラメータを選択しました。
Webhookの追加
プロセスの最後のステップは、Kentico CloudWebhookを追加することでした。 Azure Logicアプリで、 HTTPリクエストからHTTP POSTURLをコピーしました。 Kentico Cloudで、新しいWebhookを作成し、URLを追加しました
プロセスのテスト
プロセスをテストするために、私は記事を公開しました。
Azure Portalで、最近の実行を表示するためにLogic App / Overviewを選択しました。実行履歴とトリガー履歴に実行が表示されていることを確認しました。
レコードを選択すると、厳密さの詳細が表示されました。すべての手順が完了したことを確認しました。
私は、HTTPリクエストのアクションのステップを拡張することによりロジックアプリケーションに渡された実際のデータを見ました。
その後、ツイートがTwitterに正常に投稿されたことを確認しました。
最後のテストは、LogicAppが非公開イベントを適切に処理したことを確認することでした。 Kentico Cloudで、記事を非公開にしました。
[ロジックアプリ/概要]タブで、新しい通知を選択し、実行の詳細を確認しました。この場合、記事に公開操作がなかったため、タイプチェックステップは失敗しました。
前進する
Azure Logic Appsは、プロセスとシステムを自動化するために使用できる非常に強力なツールです。いくつかの外部アプリケーションおよびプラットフォームとの統合が組み込まれているため、コードをほとんどまたはまったく使用せずにアプリケーションを接続できます。 Kentico CloudのWebhookサポートと組み合わせると、Azure Logic Appsは、動的なアプリケーションを作成し、いくつかの素晴らしい自動化プロセスを実装するのに役立ちます。がんばろう!