以前で 役職、AmazonAIサービスとVeevaVaultプラットフォームのAPIを使用して、VeevaVaultPromoMatsに保存されているアセットの分析とタグ付けについて説明しました。 この投稿では、使用方法を探ります アマゾンアプリフロー、Veeva Vaultなどのサービスとしてのソフトウェア(SaaS)アプリケーションからAWSにデータを安全に転送できるようにするフルマネージド統合サービス。 The AmazonAppFlowVeevaコネクタ Veeva Vaultに保存されているリッチコンテンツを大規模に分析するために、AWS環境をVeevaエコシステムに迅速、確実、かつ費用対効果の高い方法で接続できます。
Amazon AppFlow Veevaコネクタは、の自動転送をサポートする最初のAmazonAppFlowコネクタです。 Veevaドキュメント。 最新バージョン( 定常状態 Veeva用語でのバージョン)およびドキュメントのすべてのバージョン。 さらに、ドキュメントのメタデータをインポートできます。
数回クリックするだけで、管理された接続を簡単にセットアップし、インポートするVeevaVaultドキュメントとメタデータを選択できます。 ソースフィールドを宛先フィールドにマッピングすることで、インポート動作をさらに調整できます。 ドキュメントの種類とサブタイプ、分類、製品、国、サイトなどに基づいてフィルターを追加することもできます。 最後に、検証を追加し、オンデマンドおよびスケジュールされたフロートリガーを管理できます。
Amazon AppFlow Veevaコネクタは、Veeva Vault PromoMatsからQualityDocs、eTMF、Regulatory Information Management(RIM)などの他のVeeva Vaultソリューションに至るまで、さまざまなユースケースに使用できます。 以下は、コネクタを使用できるいくつかの使用例です。
- データ同期 –コネクタは、ソースVeevaVaultからのデータとダウンストリームシステムとの間の一貫性と調和を長期にわたって確立するプロセスで使用できます。 たとえば、VeevaPromoMatsのマーケティング資産をSalesforceと共有できます。 また、コネクタを使用して、標準操作手順(SOP)や仕様などのVeeva QualityDocsを、製造現場にあるタブレットから検索可能なキャッシュされたWebサイトと共有することもできます。
- 異常検出 –VeevaPromoMatsドキュメントを メトリックスのAmazonルックアウト 異常検出用。 ロフトウェアなどのエンタープライズラベリングソリューションに印刷するためにインポートする前に、アートワーク、商用ラベル、テンプレート、または患者リーフレットでVaultRIMのコネクタを使用することもできます。
- データレイクの水分補給 –コネクタは、データレイクの作成とハイドレーションをサポートするために、構造化データまたは非構造化データをデータレイクに複製するための効果的なツールになります。 たとえば、コネクタを使用して、Vault RIMに保存されているプロトコルから標準化された調査情報を抽出し、それを医療分析インサイトチームに公開できます。
- 翻訳 –コネクタは、アートワーク、臨床文書、マーケティング資料、または母国語に翻訳するための学習プロトコルを、パッケージング、臨床試験、規制当局への提出などの部門に送信する場合に役立ちます。
この投稿では、使用方法に焦点を当てています Amazon AIサービス Amazon AppFlowと組み合わせて、Veeva Vault PromoMatsに保存されているコンテンツを分析し、タグ情報を自動的に抽出して、最終的にこの情報をVeevaVaultシステムにフィードバックします。 この投稿では、アーキテクチャ全体、ソリューションとダッシュボードをデプロイする手順、およびアセットメタデータのタグ付けのユースケースについて説明しています。 このユースケースの概念実証コードベースの詳細については、以下を参照してください。 GitHubリポジトリ.
ソリューションの概要
次の図は、更新されたソリューションアーキテクチャを示しています。
以前は、Veeva Vaultからアセットをインポートするには、を使用して独自のカスタムコードロジックを作成する必要がありました。 Veeva Vault API 変更をポーリングしてデータをにインポートするには Amazon シンプル ストレージ サービス (Amazon S3)。 これは手動で時間のかかるプロセスである可能性があり、APIの制限、失敗、再試行、および無制限の量のアセットに対応するためのスケーラビリティを考慮する必要がありました。 更新されたソリューションは、Amazon AppFlowを使用して、カスタムVeevaからAmazonS3へのデータインポートパイプラインを維持する複雑さを抽象化します。
はじめに述べたように、Amazon AppFlowは、ポイントアンドクリック構成を使用してさまざまなSaaSアプリケーションとAWSサービス間でデータを簡単かつ安全に移動する、使いやすいノーコードセルフサービスツールです。 AppFlowを使用すると、サポートされているソースからデータ(オブジェクトとドキュメント)をプルし、そのデータをサポートされているさまざまな宛先に書き込むことができます。 ソースまたは宛先は、SaaSアプリケーションまたはAmazonS3などのAWSサービスである可能性があります。 Amazonレッドシフト、またはメトリックのルックアウト。 ノーコードインターフェースに加えて、Amazon AppFlowはAPI、AWS CLI、および AWS CloudFormation インターフェースの頂点を体現しています。
Amazon AppFlowのフローは、ソースの詳細、宛先の詳細、フロートリガー条件(オンデマンド、オンイベント、またはスケジュール済み)、チェックポインティング、フィールド検証、マスキングなどのデータ処理タスクなど、データの移動方法を記述します。 トリガーされると、Amazon AppFlowは、ソースデータをフェッチするフローを実行し(通常、ソースアプリケーションのパブリックAPIを介して)、データ処理タスクを実行し、処理されたデータを宛先に転送します。
この例では、CloudFormationテンプレートを使用して事前構成されたフローをデプロイします。 次のスクリーンショットは、事前設定されたものを示しています veeva-aws-connector
AmazonAppFlowコンソールのソリューションテンプレートによって自動的に作成されるフロー。
フローはVeevaをソースとして使用し、VeevaVaultコンポーネントオブジェクトをインポートするように構成されています。 処理されたアセットを追跡し、ソースシステム内の正しい対応するアセットにタグをプッシュバックするには、メタデータとソースファイルの両方が必要です。 この状況では、最新バージョンのみがインポートされており、レンディションは含まれていません。
フローの宛先も構成する必要があります。 次のスクリーンショットでは、CloudFormationテンプレートの一部として作成されたS3バケットのファイル形式とフォルダー構造を定義しています。
最後に、フローはデモンストレーションの目的でオンデマンドでトリガーされます。 これは、フローが最大1分の粒度でスケジュールどおりに実行されるように変更できます。 スケジュールに従ってトリガーされると、転送モードは完全転送から増分転送モードに自動的に変更されます。 変更を追跡するためのソースタイムスタンプフィールドを指定します。 タグ付けのユースケースでは、 最終更新日 設定が最適です。
その後、AmazonAppFlowはと統合されます アマゾンイベントブリッジ フローの実行が完了するたびにイベントを公開します。
より良い弾力性のために、 AVAIAppFlowListener
AWSラムダ 関数はEventBridgeに組み込まれています。 Amazon AppFlowイベントがトリガーされると、特定のフロー実行が正常に完了したことを確認し、その特定のフロー実行からインポートされたすべてのアセットのメタデータ情報を読み取り、個々のドキュメントメタデータをにプッシュします。 Amazon シンプル キュー サービス (Amazon SQS)キュー。 Amazon SQSを使用すると、アーキテクチャのプロデューサーセクションとプロセッサーセクションの間に緩い結合が提供され、受信した更新を停止せずにプロセッサーセクションに変更をデプロイすることもできます。
XNUMX番目のポーラー関数(AVAIQueuePoller
)SQSキューを頻繁に(XNUMX分ごとに)読み取り、着信アセットを処理します。 Lambda関数からの反応時間をさらに短縮するために、Amazon SQSを関数のトリガーとして設定することで、CloudWatchルールを置き換えることができます。
着信メッセージのタイプに応じて、ソリューションはさまざまなAWS AIサービスを使用して、データから洞察を導き出します。 いくつかの例が含まれます:
- テキストファイル –関数は エンティティの検出 の操作 アマゾンコンプリヘンドメディカル、MLを使用して非構造化テキストから関連する医療情報を簡単に抽出できる自然言語処理(NLP)サービス。 この操作は、次のようなカテゴリのエンティティを検出します
Anatomy
,Medical_Condition
,Medication
,Protected_Health_Information
,Test_Treatment_Procedure
。 結果の出力は、Protected_Health_Information
、および残りの情報は、信頼スコアとともに平坦化され、 Amazon DynamoDB テーブル。 この情報は、OpenSearchKibanaクラスターにプロットされます。 実際のアプリケーションでは、AmazonComprehendMedicalを使用することもできます ICD-10-CMまたはRxNorm 検出された情報を医療オントロジーにリンクして、ダウンストリームのヘルスケアアプリケーションがそれをさらに分析するために使用できる機能。 - 画像 –関数は 検出ラベル 方法 Amazonの再認識 着信画像のラベルを検出します。 これらのラベルは、商業アートワークや臨床ラベルに関する情報など、画像に埋め込まれている豊富な情報を識別するためのタグとして機能します。 のようなラベルの場合
Human
orPerson
80%を超える信頼スコアで検出された場合、コードは 顔検出 目、鼻、口などの主要な顔の特徴を探して、入力画像から顔を検出する方法。 Amazon Rekognitionは、これらすべての情報を関連する信頼スコアとともに配信します。信頼スコアは、フラット化されてDynamoDBテーブルに保存されます。 - 音声録音 –オーディオアセットの場合、コードは 文字起こしジョブの開始 非同期メソッド Amazon Transcribe 着信音声をテキストに転記し、一意の識別子を
TranscriptionJobName
。 コードでは、音声言語を英語(米国)と想定していますが、Veeva Vaultからの情報に関連付けるように変更することもできます。 コードは 文字起こしジョブの取得 メソッドと同じ一意の識別子を渡しますTranscriptionJobName
ジョブが完了するまでループします。 Amazon TranscribeはS3バケットで出力ファイルを配信します。これはコードによって読み取られ、削除されます。 コードはテキスト処理ワークフロー(前述)を呼び出して、書き起こされた音声からエンティティを抽出します。 - スキャンしたドキュメント(PDF) –ライフサイエンス資産の大部分はPDFで表されます。これらは、科学雑誌や研究論文から薬物ラベルまで何でもかまいません。 アマゾンテキストラック スキャンしたドキュメントからテキストとデータを自動的に抽出するサービスです。 コードは startdocumentTextDetection ドキュメント内のテキストを検出する非同期ジョブを開始するメソッド。 コードは
JobId
呼び出しへの応答で返されました getDocumentTextDetection ジョブが完了するまでループします。 出力JSON構造には、検出されたテキストの行と単語、およびそれが識別する各要素の信頼スコアが含まれているため、結果の使用方法について十分な情報に基づいて決定できます。 コードはJSON構造を処理してテキストのテキストを再作成し、テキスト処理ワークフローを呼び出してテキストからエンティティを抽出します。
DynamoDBテーブルには、処理されたすべてのデータが格納されます。 ソリューションは DynamoDBストリームとLambdaトリガー (AVAIPopulateES
)OpenSearchKibanaクラスターにデータを入力します。 AVAIPopulateES関数は、DynamoDBテーブルで発生するすべての更新、挿入、および削除操作に対して実行され、対応するXNUMXつのレコードをOpenSearchインデックスに挿入します。 これらのレコードは、Kibanaを使用して視覚化できます。
フィードバックループを閉じるには、 AVAICustomFieldPopulator
Lambda関数が作成されました。 これは、メタデータDynamoDBテーブルのDynamoDBストリーム内のイベントによってトリガーされます。 すべてのための DocumentID
DynamoDBレコードでは、関数はVeeva APIを使用して、タグ情報をVeevaの対応するIDを持つアセットの事前定義されたカスタムフィールドプロパティにアップサートしようとします。 カスタムフィールドにノイズが挿入されないようにするために、Lambda関数は0.9未満の信頼スコアで識別されたタグをフィルタリングします。 失敗した要求は、手動検査または自動再試行のためにデッドレターキュー(DLQ)に転送されます。
このソリューションは、デジタル資産の処理、タグ付け、および包括的な検索を可能にするサーバーレスの従量課金方式を提供します。 さらに、各管理対象コンポーネントには、複数のアベイラビリティーゾーンへの自動デプロイメントによって組み込まれた高可用性があります。 ために AmazonOpenSearchサービス (Amazon Elasticsearch Serviceの後継)、を選択できます XNUMX AZオプション ドメインの可用性を向上させます。
前提条件
このチュートリアルでは、次の前提条件を満たしている必要があります。
- An AWSアカウント 適切に AWS IDおよびアクセス管理 (IAM)CloudFormationテンプレートを起動するための権限
- Veeva Vault PromoMatsドメインの適切なアクセス資格情報(ドメインURL、ユーザー名、およびパスワード)
- タグ付けするデジタルアセット用にVeevaで定義されたカスタムコンテンツタグ(例として、
AutoTags
カスタムコンテンツタグ) - 前述の資格情報にアクセス可能なPromoMats Vaultのデジタルアセット
ソリューションを展開する
CloudFormationスタックを使用してソリューションをデプロイします。 スタックは、以下を含む必要なすべてのリソースを作成します。
- 着信アセットを保存するS3バケット。
- アセットをS3バケットに自動的にインポートするAmazonAppFlowフロー。
- Amazon AppFlowによって生成されたイベントに反応するEventBridgeルールとLambda関数(
AVAIAppFlowListener
). - リスナー機能間の緩い結合として機能するSQSFIFOキュー(
AVAIAppFlowListener
)およびポーラー機能(AVAIQueuePoller
). - Amazon AIサービスの出力を格納するDynamoDBテーブル。
- 分析されたタグを視覚化するためのAmazonOpenSearchKibana(ELK)クラスター。
- 識別されたタグをVeevaにプッシュバックするLambda関数(
AVAICustomFieldPopulator
)、対応するDLQを使用します。 - 必要なLambda関数:
- AVAIAppFlowListener –AmazonAppFlowによってEventBridgeにプッシュされたイベントによってトリガーされます。 フロー実行の検証とメッセージのSQSキューへのプッシュに使用されます。
- avaiqueuepoller – 1分ごとにトリガーされます。 SQSキューのポーリング、Amazon AIサービスを使用したアセットの処理、およびDynamoDBテーブルへの入力に使用されます。
- avaipopulees – DynamoDBテーブルで更新、挿入、または削除があるとトリガーされます。 DynamoDBから変更をキャプチャし、ELKクラスターに入力するために使用されます。
- AVAIカスタムフィールドポピュレータ – DynamoDBテーブルに更新、挿入、または削除がある場合にトリガーされます。 タグ情報をVeevaにフィードバックするために使用されます。
- Amazon CloudWatchイベント をトリガーするルール
AVAIQueuePoller
関数。 これらのトリガーはDISABLED
デフォルトで状態。 - スコープダウンされた方法でEventBridgeおよびAIサービスと対話するために必要なIAMの役割とポリシー。
開始するには、次の手順を実行します。
- にサインインする AWSマネジメントコンソール 前提条件のIAM権限を持つアカウントを使用します。
- 選択する 発射スタック 新しいタブで開きます:
- ソフトウェア設定ページで、下図のように スタックを作成 ページ、選択 Next.
- ソフトウェア設定ページで、下図のように スタックの詳細を指定する ページに、スタックの名前を入力します。
- パラメータの値を入力します。
- 選択する Next.
- ソフトウェア設定ページで、下図のように スタックオプションを構成する ページで、すべてをデフォルトのままにして、 Next.
- ソフトウェア設定ページで、下図のように レビュー ページ、 機能と変換 セクションで、XNUMXつのチェックボックスをオンにします。
- 選択する スタックを作成.
- スタックが完了するのを待ちます。 スタック作成プロセスからのさまざまなイベントを イベント タブには何も表示されないことに注意してください。
- スタックの作成が完了したら、 リソース タブをクリックして、CloudFormationテンプレートが作成したすべてのリソースを表示します。
- ソフトウェア設定ページで、下図のように 出力 タブ、値をコピー
ESDomainAccessPrincipal
.
これは、IAMロールのARNです。 AVAIPopulateES
関数が想定しています。 後でこれを使用して、AmazonOpenSearchServiceドメインへのアクセスを設定します。
AmazonOpenSearchServiceとKibanaをセットアップする
このセクションでは、Amazon OpenSearch Serviceクラスターを保護し、Kibanaに安全にアクセスするためのローカルプロキシをインストールする方法について説明します。
- Amazon OpenSearch Serviceコンソールで、テンプレートによって作成されたドメインを選択します。
- ソフトウェア設定ページで、下図のように メニュー、選択 アクセスポリシーの変更.
- ドメインアクセスポリシー、選択する カスタムアクセスポリシー.
- アクセスポリシーがクリアされます ポップアップウィンドウ、選択 クリアして続行.
- 次のページで、AmazonOpenSearchServiceドメインへのアクセスをロックダウンするように次のステートメントを設定します。
- IPv4アドレスを許可する – IPアドレス。
- IAM ARNを許可 –の値
ESDomainAccessPrincipal
以前にコピーしました。
- 選択する 送信.
これにより、AVAIPopulateES関数へのアクセスとIPアドレスからのKibanaアクセスを許可するアクセスポリシーが作成されます。 アクセスポリシーのスコープダウンの詳細については、を参照してください。 アクセスポリシーの構成.
- ドメインのステータスが次のように表示されるのを待ちます
Active
. - Amazon EventBridgeコンソールで、 イベント 、選択する キャンペーンのルール。 CloudFormationテンプレートが作成したXNUMXつのルールを確認できます。
- 現在地に最も近い
AVAIQueuePollerSchedule
ルールをクリックして有効にします 有効にします.
5〜8分でデータの流入が始まり、AmazonOpenSearchServiceクラスターにエンティティが作成されます。 これで、これらのエンティティをKibanaで視覚化できます。 これを行うには、と呼ばれるオープンソースプロキシを使用します aws-es-キバナ。 コンピュータにプロキシをインストールするには、次のコードを入力します。
aws-es-kibana your_OpenSearch_domain_endpoint
ドメインエンドポイントは、 出力 下のCloudFormationスタックのタブ ESDomainEndPoint
。 次の出力が表示されます。
ビジュアライゼーションを作成し、タグ付けされたコンテンツを分析します
オリジナルを参照してください ブログ投稿.
クリーンアップ
将来の料金が発生しないように、使用していないときはリソースを削除してください。 関連するCloudFormationスタックを削除することで、すべてのリソースを簡単に削除できます。 スタックの削除を成功させるには、作成されたコンテンツのS3バケットを空にする必要があることに注意してください。
まとめ
この投稿では、AmazonAIサービスをAmazonAppFlowと組み合わせて使用して、Veeva Vault PromoMatsの機能を拡張し、貴重な情報をすばやく簡単に抽出する方法を示しました。 組み込みのループバックメカニズムを使用すると、タグを更新してVeeva Vaultに戻し、アセットの自動タグ付けを有効にすることができます。 これにより、チームはアセットをすばやく見つけて見つけることが容易になります。
完璧なML出力はありませんが、人間のパフォーマンスに非常に近くなり、チームの努力のかなりの部分を相殺するのに役立ちます。 この追加の容量を付加価値のあるタスクに使用しながら、MLソリューションの出力を確認するために小さな容量を割り当てることができます。 このソリューションは、コストの最適化、タグ付けの一貫性の実現、および既存の資産の迅速な検出を可能にするのにも役立ちます。
最後に、データの所有権を維持し、コンテンツを処理、保存、ホストできるAWSサービスを選択できます。 AWSは、お客様の同意なしにコンテンツにアクセスしたり、目的を問わず使用したりすることはなく、マーケティングや広告のための情報を取得するために顧客データを使用することもありません。 詳細については、 データプライバシーに関するよくある質問.
このソリューションの機能をさらに拡張して、追加の機能拡張を行うこともできます。 たとえば、この投稿のAIおよびMLサービスに加えて、を使用して構築されたカスタムMLモデルを簡単に追加できます。 アマゾンセージメーカー アーキテクチャに。
VeevaとAWSの追加のユースケースの調査に興味がある場合は、AWSアカウントチームに連絡してください。
Veeva Systemsは、このコンテンツを確認して承認しました。 Veeva Vaultに関連するその他の質問については、お問い合わせください。 Veevaサポート.
著者について
マヤンクタッカー AWSのAI/MLビジネス開発、グローバルヘルスケアおよびライフサイエンスの責任者です。 彼は、ヘルスケア、ライフサイエンス、保険、小売などのさまざまな業界で18年以上の経験があり、サーバーレス、人工知能、機械学習ベースのソリューションを構築して、実際の業界の問題を解決することを専門としています。 AWSでは、世界中の大手製薬会社と緊密に連携して、最先端のソリューションを構築し、クラウドジャーニーに沿って支援しています。 仕事とは別に、マヤンクは妻と一緒に、家が燃え尽きたり洪水になったりしないようにしながら、エネルギッシュでいたずら好きな6人の男の子、アーリアン(4)とキアン(XNUMX)を育てるのに忙しいです!
アナマリア・トドール デンマークのコペンハーゲンを拠点とするシニアソリューションアーキテクトです。 彼女は4歳のときに最初のコンピューターを見ましたが、それ以来、コンピューターサイエンスとエンジニアリングを手放すことはありませんでした。 彼女は、フルスタック開発者からデータエンジニア、テクニカルリード、デンマークのさまざまな企業のCTOまで、さまざまな技術的役割を果たしてきました。 Anamariaは、応用工学とコンピューターサイエンスの学士号、コンピューターサイエンスの修士号、および10年以上のAWSの実践的な経験を持っています。 AWSでは、エンタープライズセグメントのヘルスケアおよびライフサイエンス企業と緊密に連携しています。 彼女が仕事をしていないときやビデオゲームをプレイしていないときは、テクノロジーを通じた道を理解し、見つけることについて、女の子や女性の専門家を指導しています。