くらっちのクラウド日記

仕事や勉強で得た Microsoft 365 関連の技術知識を投稿していくブログです。

【Azure】AI + Machine Learning のサービス一覧

はじめに

こんにちは、くらっちです。
仕事で Azure OpenAI Service に触れる機会があり、同じ「AI + Machine Learning」には他にどんなサービスがあるのか気になり各サービスの概要を調べてみました。
似てるけど利用目的が異なるためサービスが分かれていたりしてちょっと分かりづらい。
少しでも理解のお役に立てれば嬉しいです。

目次

AI + Machine Learning のサービス

下記サービスは、2023/09/10 時点のサービスです。
今後各サービスの統廃合により名称や機能に変化があるかもしれません。

Azure AI services multi-service account

複数のAI関連サービスを統合し、統一されたアカウント管理と課金をするアカウントタイプ。
様々なAIサービスを使用する際の効率性と柔軟性を向上させるために提供されています。

Azure AI Video Indexer

ビデオおよびオーディオ コンテンツを分析し、豊富な分析情報を生成するためのツール。
映像や動画ファイルから価値ある情報を抽出し、検索・分析・カスタムアプリケーションに統合するために設計されている。
ディープ検索、動画コンテンツ作成、不適切なコンテンツからユーザーの保護などが可能。
Azure Media Services と Azure AI Services (Face、Translator、Azure AI Vision、Speech など) の上に構築された Azure AI サービスの一部

Azure Machine Learning

機械学習モデルの開発、トレーニング、デプロイ、監視、スケーリングなどをサポート。
機械学習プロジェクトを簡素化し効率化する。

Azure OpenAI

Microsoft AzureクラウドプラットフォームとOpenAIの技術を組み合わせたサービス。
人工知能(AI)および機械学習(ML)の機能を提供するプラットフォーム
Azure OpenAI は、プライベート ネットワーク、リージョンの可用性、有害コンテンツからのフィルター処理が提供される。

Bot services

チャットボットを作るためのサービス。
Azure AI Bot Serviceは対話をするロボットを作るのに使い、Azure OpenAIは文章を理解して文章を書いたりするのに使用する。
どちらもAIに関連しているけど、目的が違うらしい。。

情報の高度な検索と分析を可能にするサービス。
構造化データおよび非構造化データをインデックス化し、検索・分析・情報の抽出を行う。

Azure Cognitive Search は、下記のアプリケーション シナリオに適している。
 ・インターネットから分離されたコンテンツを検索する。
 ・様々な種類のコンテンツを検索対象にする。
 ・関連性のチューニング、同意語マッピング、オートコンプリートなどの検索関連機能を実装する。
 ・ Azure Cosmos DB などに格納されたテキスト ファイル、画像ファイルなどを検索可能にする。
 など。

Computer vision

画像処理と認識のためのサービス。
画像内の情報を自動的に抽出、分析、認識することができる。

Content moderator

テキスト、画像、ビデオなどのコンテンツを自動的に分析して不適切なコンテンツを検出する。
適切なフィルタリングおよびモデレーションのためのツールを提供。

Custom vision

独自の画像識別子モデルを構築、デプロイ、改良できるようにする画像認識サービス。
機械学習Computer vision技術を利用して、独自の画像分類アプリケーションを開発するために設計されている。
画像識別子は視覚特性に従って画像にラベルを適用し、各ラベルは分類または物体を表す。
Image Analysis 4.0 に移行することで最新のテクノロジでカスタム画像識別子モデルを作成できる。

Document intelligence

大量の文書を自動的に処理して、テキストやドキュメントの構成情報などを抽出・分析を実行するためのツールとリソースを提供。
事前構築済みのモデルとして「請求書」「領収書」「名刺」「契約」などが用意されている。

Face API

顔認識と顔分析を実行するツール。
顔の検出・顔の識別・年齢推定・性別識別・感情分析・顔の類似性比較など、顔に関連するタスクを自動的に実行できるようにする。

Immersive reader

テキストの音声読み上げなど、テキストの読解を支援する。
Azure Cognitive Services の上に構築されている。
主な機能は下記の通り。
 ・テキストの音声読み上げ
 ・テキストのカスタマイズ(フォントやサイズ、行間、背景色の修正)
 ・単語の強調表示(キーワードの協調や単語の意味を表示)
 ・言語翻訳
 ・画像をテキストに変換 などがある。

Language service

この言語サービスは Azure AI サービス (Text Analytics、QnA Maker、LUIS) を統合したもの。
テキストベースで個人情報など機密性の高い情報を識別、分類、編集やカテゴリ分けをする。
例えば以下のようなことが可能。
 ・キーフレーズの抽出
 ・事前に定義されたカテゴリに語句を分類  ・言語や方言の検出・識別
 ・要約処理
 ・感情分析
 ・会話理解(重要事項の抽出など)
 ・質疑応答 など

Personalizer

ユーザーエンゲージメントの向上とコンテンツのパーソナライズ化を実現するための効果的なツール。
ユーザーごとに最適な提案を生成しコンテンツをカスタマイズする。
ユーザーの反応を学習し、提案を最適化するための強化学習アルゴリズムを使用。リアルタイムでユーザーの行動を評価し、提案をリアルタイムに最適化。異なる提案戦略を比較評価し、最適な戦略を特定。
個別の提案生成、強化学習アルゴリズムの利用、リアルタイム評価と最適化、ABテストと評価する

Speech service

音声認識および音声合成のサービス。
音声テキスト変換、テキスト音声変換(テキスト読み上げ)、音声翻訳、話者認識が可能。
Azure Speech Service は音声データの処理に特化。音声認識音声合成に焦点を当てている。
一方、Immersive Reader はテキストの読解支援に特化。教育および読解のサポートに使用。

Translator

テキスト、音声、画像などさまざまな形式のコンテンツを異なる言語に翻訳する。
翻訳できるドキュメント⇒PDF、CSV、HTML、xlsx、msg、pptx、docx、txtなどは可能。

Bonsai

産業用アプリケーションに自動で学習するAIを使うためのローコード プラットフォーム。
Bonsaiの利用には、Azure サブスクリプションに次のリソース コストが課金される。
 ⇒Azure Container Registry、Azure Container Instances、Azure Storage、Azure Monitor

Anomaly detector

Azure AI 異常検出サービスで、REST APIで構成されている。
時系列データの監視や異常の検出をバッチ検証やリアルタイム推論で行うことが可能。

Metrics advisor

データの監視と時系列データにおける異常検出を実行するサービス
Anomaly Detector をベースに構築されている。
Anomaly Detector に、サービス管理のためのユーザーインターフェースを備えた監視機能が追加されている。

以下のことが可能。
 ・リアルタイム監視⇒異常の検出
 ・異常の識別・診断⇒アラート通知
 ・異常の根本原因分析に役立てる

Azure Synapse Analytics

旧名称はAzure SQL Data Warehouse。
Azureのデータワーキングプラットフォームで、データの統合・分析・可視化を行うための統合環境を提供する。



今回は、各サービスの概要をまとめてみました。
個人的に気になるサービスについては一層詳しく見ていきたいと思います。

【PowerApps】コンボボックスの選択肢は別リストを使うのがオススメ!

はじめに

こんにちは、くらっちです。
PowerAppsでアプリを作っていると、選択肢項目が必要な場面って多いですよね。
データベースにSharePointリストを利用しているのであれば選択肢列を使えばいいのですが、同じ選択肢を複数項目で用意したい場合は管理が大変です。
参照値列は1リストで使えるのが12個までという制限があるし、ちょっと避けたい。
そんなときは、SharePointに選択肢用の別リストを作りましょう!
今回は新規作成画面での実装方法について解説します。

目次

選択肢用のリストを作成するメリット

選択肢用のリストを作成するメリットとして以下のことが考えられます。
1.選択肢の管理が簡単
2.参照値列の上限を回避できる
3.別用途でも使いまわせる

SharePointで選択肢用のリストを作成する

最初に、選択肢用のリストを作成しましょう。
選択肢を管理するためのリストを新規作成して「タイトル列」に選択肢を入力します。

選択した値を保存する際は1行テキストを使え!

次に、選択した値を保存するSharePointリストです。
選択した値を保存する列は必ず「1行テキスト」にしてください。
理由は、別リストから選択した値を正常に登録させるためです。

PowerAppsでコンボボックスを追加する

事前準備はできました。ここからPowerAppsアプリ側の手順を説明します。

1.「DataCardValue○」をクリックします。
2.「Visible」を false にして「DataCardValue○」を非表示にします。

3.DataCard内にComboBoxを追加します。
4.「Items」に [@選択肢リスト].タイトル を入力します。
5.複数選択させない場合は「SelectMultiple」を false にしてください。

コンボボックスで選択した値をリストに登録する

最後に、SubmitFormで選択した値をリストに保存するための操作を行います。

6.ComboBox 追加した DataCard をクリックします。
7.「Update」に [ComboBox1.Selected.タイトル] と入力してコンボボックスで選択した値をSharePointリストに登録します。


今回は新規作成画面における手順を解説しました。
編集画面も同じように選択肢の設定にはコツが必要です。
編集画面の手順は下記リンクからどうぞ。

kurattyodiary.hatenablog.com


Microsoft GraphAPIを使ってみよう。-実践 編-

はじめに

こんにちは、くらっちです。
前回記事でMicrosoft GraphAPIを利用するためのアプリ登録手順を説明したので、今回は登録したアプリを使って PowerShell で GraphAPI を利用する手順を説明します。

※前回記事はこちら
kurattyodiary.hatenablog.com

目次

クライアント資格情報による認証

Microsoft Graph にアクセスする際は認証が必要になります。
その認証方法は下記の4パターンです。
 ・デバイスコードによる認証
 ・認証コードによる認証
 ・パスワードによる認証
 ・クライアント資格情報による認証

今回は「クライアント資格情報による認証」に絞って紹介します。
この認証で、サインインを必要とせずMicrosoft Graphに対して認証することができます。
実行時にサインインを求められないため「自動化されたタスクやスクリプト」に最適です。

例として「自組織のすべてのグループ」を取得するためのサンプルを用意しました。
PowerShellで下記ソースコードを実行すると「自組織のすべてのグループ」を取得できます。
※<>内は登録したアプリの情報に修正してください。

サンプルコード

#######################GraphAPI接続 start
$clientid = "<アプリケーション(クライアント)ID>"
$tenantName = "<アプリを登録したテナントのドメイン> 例(sampledomain.onmicrosoft.com)"
$clientSecret = "<クライアント シークレット>"
  
$ReqTokenBody = @{
    Grant_Type    = "client_credentials"
    Scope         = "https://graph.microsoft.com/.default"
    client_Id     = $clientID
    Client_Secret = $clientSecret
} 
 
$TokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantName/oauth2/v2.0/token" -Method POST -Body $ReqTokenBody
#######################GraphAPI接続 end

#######################GraphAPIで情報取得
$apiUrl = 'https://graph.microsoft.com/v1.0/Groups/'
$Data = Invoke-RestMethod -Headers @{Authorization = "Bearer $($Tokenresponse.access_token)"} -Uri $apiUrl -Method Get
$Groups = ($Data | select-object Value ).Value
$Groups | Format-Table DisplayName, Description -AutoSize

解説

アクセストークン取得

前回登録したアプリでアクセストークを取得します。
アクセストークンには、アプリ自体とアプリに付与されているアクセス許可に関する情報が含まれており、このアクセストークンを取得することでGraph APIを利用可能にします。

2行目~13行目でアクセストークンを取得します。
 2行目:Azure ADで登録したアプリの「アプリケーション(クライアント)ID」を入力。
 3行目:「アプリを登録したテナントのドメイン」を入力します。
 4行目:Azure ADで登録したアプリの「クライアント シークレット」を入力します。
 ※今回クライアント シークレットは直書きしていますが、パスワードと同じ扱いをする必要があるため、実稼働する場合は暗号化するなどしてください。

$clientid = "<アプリケーション(クライアント)ID>"
$tenantName = "<アプリを登録したテナントのドメイン> 例(QiitaTest2020.onmicrosoft.com)"
$clientSecret = "<クライアント シークレット>"


6行目~11行目で「クライアント資格情報による認証」を実施します。

$ReqTokenBody = @{
    Grant_Type    = "client_credentials"
    Scope         = "https://graph.microsoft.com/.default"
    client_Id     = $clientID
    Client_Secret = $clientSecret
} 


13行目でアクセストークンを取得します。

$TokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantName/oauth2/v2.0/token" -Method POST -Body $ReqTokenBody

Graph APIの指定

17行目:Graph APIを指定します。指定するGraph APIは下章の手順に従って確認します。

$apiUrl = '<Graph API>' 例('https://graph.microsoft.com/v1.0/Groups/')

ソースコードに記載するGraph APIを探す方法

1.Graph Explorer にアクセスします。
2.左側メニューの「Sample queries」で、利用するAPIをキーワード検索します。
3.左側メニューから利用するAPIをクリックします。
4.画面上部にGraphAPIの使用例が表示されるのでコピーします。

※「自分の組織内のすべてのグループ」の場合
 左側メニューから list all groups in my organization を選択します。
 画面上部には https://graph.microsoft.com/v1.0/groups と表示されます。

Graph APIの実行

18行目:Graph APIを実行します。

$Data = Invoke-RestMethod -Headers @{Authorization = "Bearer $($Tokenresponse.access_token)"} -Uri $apiUrl -Method Get

19行目:Graph APIを通して取得したデータから、「Value」のみを抽出します。
20行目:Valueから「表示名」列と「説明」列を抽出します。

$Groups = ($Data | select-object Value ).Value
$Groups | Format-Table DisplayName, Description -AutoSize

取得結果

実行した結果、こんな感じ。

displayName           description
-----------           -----------
テストチーム5        説明文5
テストチーム2        説明文2
PowerShell作成チーム1 説明文
テストチーム3        説明文3
テストチーム4        説明文4

取得した結果はソート順、抽出条件、表示件数を指定していません。
20行目を下記のどれかに変更することでソート順、抽出条件、表示件数を調整できます。

# オプション例--------------------------------
# フィルター
$Groups | Where-Object {$_.description -match "^説明文*"} | Format-Table DisplayName, Description -AutoSize
# ソート順変更(-Descending:降順、未入力:昇順)
$Groups | Sort-Object Description -Descending | Format-Table DisplayName, Description -AutoSize
# 表示数変更(-First:先頭から〇個、-Last:末尾から〇個)
$Groups | select-Object -First 3 | Format-Table DisplayName, Description -AutoSize
# フィルター 表示数 表示列(左から順に実行されていく、フィルターと表示数の定義が逆になると結果も変わってしまう)
$Groups | Where-Object {$_.description -match "^説明文*"} | select-object -first 3 | Format-Table DisplayName, Description -AutoSize

参考ページ

リストグループ(MS公式サイト)
CONNECT AND NAVIGATE THE MICROSOFT GRAPH API WITH POWERSHELL
PowerShellでMicrosoft Graph APIを使用する

Microsoft GraphAPIを使ってみよう。-事前準備 編-

はじめに

こんにちは、くらっちです。
今回は PowerShell で GraphAPI を利用するのに必要な「アプリの登録」の手順をご紹介したいと思います。

Microsoft GraphAPI の実践編は下記リンク先のページにて公開しています。
kurattyodiary.hatenablog.com

目次

アプリを新規登録する

Microsoft GraphAPI を利用するためには、AzureADでアプリを登録する必要があります。

1.Microsoft Azure( https://portal.azure.com/ )にサインインします。
2.「Azure Active Directory」に接続して「アプリの登録」>「新規登録」の順にクリック。


3.「名前」にアプリの表示名(任意名称)を入力します。
4.「この組織ディレクトリのみに含まれるアカウント」を選択します。
5.「登録」ボタンをクリックします。※リダイレクトURIは未入力でOK。


アプリの登録が完了すると「概要」ページに遷移します。
「アプリケーション(クライアント)ID」はGraph API利用に必要なのでコピーします。

クライアント シークレットの発行

クライアント シークレットはアプリを使用するためのパスワードの役割を果たします。

6.「証明書とシークレット」>「新しいクライアント シークレット」の順にクリック。

7.「クライアント シークレットの追加」画面で「有効期限」を選択し「追加」をクリック。
追加されると「証明書とシークレット」画面に値が表示されます。

この値はGraph APIを操作するために必要な情報なのでコピーします。
※シークレットID ではなく「値」の方が必要です。

API のアクセス許可 を付与する

アクセス許可は「委任されたアクセス許可」「アプリケーションのアクセス許可」の2種類存在します。

委任されたアクセス許可:
 PowerShellを実行するユーザー自身が持つ権限で、自分の予定・メール・参加グループなど「自身に共有されたデータにアクセスする場合」に使用します。
アプリケーションのアクセス許可:
 バックグラウンドでデータ連携をしたり「強力な権限で組織全体のリソースにアクセスしたい場合」に使用します。


8.右記リンク先にアクセスします。⇒ Microsoft Graph のアクセス許可のリファレンス
9.ページ内の「この記事の内容」で、APIの利用目的に合う項目を選択します。
  ※ここでは「グループのアクセス許可」を選択した場合を例にします

10.説明内容から必要なアクセス許可を確認します。

11.AzureAD側に戻り「APIのアクセス許可」をクリックします。
12.「アクセス許可の追加」をクリックします。

13.「APIを選択します」画面で「Microsoft Graph」をクリックします。
14.アクセス許可の種類を「委任されたアクセス許可」と「アプリケーションの許可」から決定します。
15.10で確認した アクセス許可 を検索ボックスに入力します。
16.使用するアクセス許可にチェックを入れて「アクセス許可の追加」をクリック。

17.「APIのアクセス許可」に戻り「○○に管理者の同意を与えます」をクリック。
18.画面上部に表示されるウィンドウで「はい」をクリックします。

これでGraph APIを利用するための事前準備は完了です。
グループ一覧の取得を例にした「実践編」については下記リンク先の記事をご覧ください。
Microsoft Graph APIをつかってみよう。- 実践 編-

参考ページ

Microsoft Graph のアクセス許可のリファレンス

Microsoft Graph のアクセス許可の概要

Microsoft Graphの概要

CONNECT AND NAVIGATE THE MICROSOFT GRAPH API WITH POWERSHELL

【Microsoft Authenticator】機種変更したらOffice365にサインインできなくなった!!

はじめに

ようやくiPhone8 から iPhone13 に変更したくらっちです。
いつものように開発環境にサインインしようとしたら Microsoft Authenticator の引継ぎ設定を行っていなかったのでサインインができませんでした💦
この環境は全体管理者権限を持つユーザーは私だけで他にリセットできるユーザーがいません。

結果的に何とか解決することができたので今回はその時の解決までの順序をご紹介します。

目次

この記事の対象者

この記事は下記条件に当てはまる人を対象としています。
Microsoft Authenticatorによる認証ができなくなった人
・「電話による認証」や「SMSによる認証」が利用できない場合
・テナントに自分以外に全体管理者 or 認証管理者が存在しない状態

本当にサインインすることができませんか?

まずは下記を確認してみてください。もしかしたらすぐに解決できるかもしれません。
・他に全体管理者 or 認証管理者 の役割を持つユーザーはいませんか?
・電話やSMSによる認証は利用できませんか?

どうしようもない場合

下記電話番号に連絡してMicrosoft サポートに問い合わせをする必要があります。
国または地域別に Microsoft 365 for business サポートの電話番号を検索する
※日本の場合(リンク先から抜粋)
 電話番号:0120-996-680

電話すると自動音声によるアナウンスが流れます。
担当者が出たら「機種変更したらMicrosoft Authenticatorアプリを使った認証ができなくなり、Office365にサインインできなくなりました💦」と事情を説明しましょう。

その場で本人確認が行われ、確認が取れるとMicrosoft側で担当者の割り当てが行われるようです。
一度電話を切って担当者からの電話を待ちます。

担当者からに電話が来たらようやく手続きの開始です。
いくつか確認ポイントがあるようです。
 1.「サインインできなくなったアカウントのメールアドレス」と「アカウントのユーザー名」 ※必須
 2.担当者から「テナントに登録した会社」へ電話して本人が在籍しているかの確認。 ※必須
 3.サインインできなくなったアカウントで承認メールの送受信
 4.3ができなかった場合は他の管理権限を持つユーザーにて承認メールの送受信 ※3か4どちらかできればOK

私の場合は1・2・4をクリアできてリセットしてもらえました。
問合せ開始からリセット実施まで数日かかりましたのでその点ご注意ください。

【PowerAutomate】トリガー起動条件の書き方講座

はじめに

例えば、PowerAutomateトリガーにSharePointの「項目が作成されたとき」を使うけど「特定の条件の時のみ項目を作成したい」のようにトリガーを起動する条件を設定したい場合ありませんか?
今回は、トリガーに起動条件を設定する方法と記載方法について述べたいと思います。

目次

注意事項

この記事はクラウドフローを対象にしています。

起動条件を設定する

下記手順に従って起動条件を設定してください。
1.トリガーの「…」>「設定」をクリックする。

2.「トリガーの条件」にトリガーの起動条件式を入力します。
「+追加」をクリックすることで複数の条件を設定可能です。
「+追加」で追加した条件は「And条件」となりますのでご注意ください。
3.条件設定後、「完了」をクリックします。

条件式を作成する

上記で「トリガーの条件設定方法」については分かりましたが肝心の条件式の書き方がわからないと意味がありません。
ここでは簡単に条件式を作成する方法を伝授します!

大体は「アレイのフィルター処理」を使えばいい!!

最も簡単な条件式の作成方法はPowerAutomateに作ってもらうことです。
「アレイのフィルター処理」アクションを使って、条件式を作ってもらいましょう。

1.「アレイのフィルター処理」アクションを追加します。

2.下図赤枠内で条件式を作成します。
3.「詳細設定モードで編集」をクリックして、2の条件式をコード化します。

4.コード化された条件をコピーして、トリガーの設定画面に登録します。

条件記載 例

トリガー起動条件の記載例は以下を参考にしてください。
条件式はコピペで利用できます。
Title と Price は、SharePointリストに追加した列の内部名です。

contains(A,B)

A に B が含まれる場合 を表す。

例:Title に テスト が含まれる場合
@contains(triggerOutputs()?['body/Title'], 'テスト')

not(contains(A,B))

A に B が含まれていない場合 を表す。

例:Title に テスト が含まれていない場合
@not(contains(triggerOutputs()?['body/Title'], 'テスト'))

equals(A,B)

A が B と等しい場合 を表す。

例:Title が テスト と等しい場合
@equals(triggerOutputs()?['body/Title'], 'テスト')

not(equals(A,B))

A が B と等しくない場合 を表す。

例:Title が テスト と等しくない場合
@not(equals(triggerOutputs()?['body/Title'], 'テスト'))

empty(A)

A の値が 空 の場合 を表す。

例:Title の値が 空 の場合
@empty(triggerOutputs()?['body/Title'])

not(empty(A))

A の値が 空 ではない場合 を表す。

例:Title の値が 空 ではない場合
@not(empty(triggerOutputs()?['body/Title']))

greater(A,B)

A より B が大きい場合 を表す。

例:Price より 100 が大きい場合
@greater(triggerOutputs()?['body/Price'], 100)

greaterOrEquals(A,B)

A が B 以上の場合 を表す。

例:Price が 200 以上場合
@greaterOrEquals(triggerOutputs()?['body/Price'], 200)

less(A,B)

A が B 未満の場合 を表す。

例:Price が 1000 未満の場合
@less(triggerOutputs()?['body/Price'], 1000)

lessOrEquals(A,B)

A が B 以下の場合 を表す。

例:Price が 500 以下の場合
@lessOrEquals(triggerOutputs()?['body/Price'], 500)

startsWith(A,B)

A が B から始まる場合 を表す。

例:Title が 【会議】から始まる場合
@startsWith(triggerOutputs()?['body/Title'], '【会議】')

not(startsWith(A,B))

A が B から始まらない場合 を表す。

例:Title が 【会議】から始まらない場合
@not(startsWith(triggerOutputs()?['body/Title'], '【会議】'))

endswith(A,B)

A が B で終わる場合 を表す。

例:Title が  で終わる場合
@endswith(triggerOutputs()?['body/Title'], '【会議】')

not(endswith(A,B))

A が B で終わらない場合 を表す。

例:Title が  で終わらない場合
@not(endswith(triggerOutputs()?['body/Title'], '【会議】'))

and(A,B)

A かつ B の場合 を表す。

例:「Title に テスト が含まれる」かつ「Price が 500 以下」の場合
@and(
 contains(triggerOutputs()?['body/Title'], 'テスト'),
 lessOrEquals(triggerOutputs()?['body/Price'], 500)
)

or(A,B)

A または B の場合 を表す。

例:「Title に【会議】が含まれる」または「Price が 2000 以上」の場合
@or(
 contains(triggerOutputs()?['body/Title'], '【会議】'),
 greaterOrEquals(triggerOutputs()?['body/Price'], 2000)
)

参考

クラウド フローのトリガー条件を設定してトリガーの実行を制御する方法 | Japan Dynamics CRM & Power Platform Support Blog

Power Automate のトリガー条件を使ってOutlookを色んな条件でトリガーさせる方法。 - Qiita

式関数のリファレンス ガイド - Azure Logic Apps | Microsoft Learn

【SharePoint】リストの参照列には追加できる数に上限がある

はじめに

SharePointには、他リストのデータを参照して選択肢とする「参照列」が存在します。
何かと便利な参照列ですが忘れがちな落とし穴があるのです。

目次

リストの追加できる参照列の上限は12列

1つのリストに無限に参照列を作成することはできません。
1つのリストに追加できる参照列の数には最大12列という上限があります。
参照列を13列以上作成すると下図のようなメッセージが表示されます。


「含まれているルックアップ列の数がルックアップ列のしきい値を超えているため、クエリを完了できません。」

分かりづらい日本語ですが、要は「参照列が上限12列を超えているから何とかしてよ」ということです。
解決方法は1つだけ。リスト内の参照列を12個まで減らしてください。

PowerAppsではこのリスト利用できる?

このエラーが発生しているリストを使ってPowerAppsでアプリを作ることはできるのでしょうか?
結果、当然ながら同じエラーが発生します。

問題の原因はSharePoint側ですので、SharePointのリストから参照列を12個以下になるまで削除する必要があります。

参考

ルックアップ列を使用してリスト リレーションシップを作成する