翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ショーン・グリフィン (AWS) とミレーナ・ゴダウ (AWS) が作成
概要
このパターンは、Amazon QuickSight ダッシュボードをローカルでホストされている Angular アプリケーションに埋め込んで開発またはテストするためのガイダンスを提供します。QuickSight の 「埋め込み分析特徴量」は、この機能をネイティブではサポートしていません。既存のダッシュボードと Angular の知識を備えた QuickSight アカウントが必要です。
埋め込まれた QuickSight ダッシュボードを使用する場合、通常、ダッシュボードを表示するには Web サーバー上でアプリケーションをホストする必要があります。これにより、変更内容を Web サーバーに継続的にプッシュして、すべてが正しく動作していることを確認する必要があるため、開発がより困難になります。このパターンは、ローカルでホストされたサーバーを稼働させ、QuickSight の埋め込み分析を使用して開発プロセスをより簡単かつ合理化する方法を示しています。
前提条件と制限
前提条件
機能制限
このパターンは、
ANONYMOUS
(公開アクセス可能な) 認証タイプを使用して QuickSight ダッシュボードを埋め込む際のガイダンスを提供します。埋め込みダッシュボードで AWS Identity and Access Management (IAM) または QuickSight 認証を使用している場合は、提供されたコードは適用されません。ただし、「エピック」セクションの Angular アプリケーションをホストする手順は引き続き有効です。GetDashboardEmbedUrl API
ANONYMOUS
をアイデンティティタイプで使用するには、QuickSight キャパシティ料金プランが必要です。
バージョン
アーキテクチャ
テクノロジースタック
アンギュラフロントエンド
AWS Lambda と Amazon API Gateway バックエンド
アーキテクチャ
このアーキテクチャでは、API ゲートウェイ の HTTP API により、ローカルの Angular アプリケーションが Lambda 関数を呼び出すことができます。Lambda 関数は QuickSight ダッシュボードを埋め込むための URL を返します。

自動化とスケール
AWS CloudFormation または AWS サーバーレスアプリケーションモデル (AWS SAM) を使用してバックエンドデプロイを自動化できます。
ツール
ツール
「Angular CLI
」は、Angular アプリケーションをコマンドシェルから直接初期化、開発、スキャフォールド、保守するために使用するコマンドラインインターフェイスツールです。 「QuickSight 埋め込み SDK
」は、QuickSight ダッシュボードを HTML に埋め込むために使用されます。 「mkcert
」は、ローカルで信頼される開発用証明書を作成するためのシンプルなツールです。設定は不要です。QuickSight ではダッシュボードの埋め込みに HTTPS リクエストしか許可されないため、mkcert が必要です。
AWS サービス
Amazon API Gateway は、あらゆる規模の REST、HTTP、WebSocket API を作成、公開、管理、モニタリング、保護するための AWS のサービスです。
「AWS Lambda」 – AWS Lambda はサーバーのプロビジョニングや管理を行わずにコードの実行を支援できるコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。課金は実際に消費したコンピューティング時間に対してのみ発生します。コードが実行されていない場合、料金は発生しません。
「Amazon QuickSight」は、ビジュアルの構築、アドホック分析の実行、データからのビジネス上の洞察の取得に使用できるビジネス分析サービスです。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
EmbedURL ポリシーを作成します。 | 以下のプロパティを含む QuickSightGetDashboardEmbedUrl という名前の IAM ポリシーを作成します。
| AWS 管理者 |
Lambda 関数を作成します。 | 1. Lambda コンソールで 「関数ページ 2. [関数の作成] を選択します。 3. Author from scratch (製作者を最初から) を選択します。 4. [関数名] に「 5. [Runtime] (ランタイム) では、[Python 3.9] を選択します。 6. [関数の作成] を選択します。 7. コードタブでは、下記のコードを Lambda 関数にコピーします。
8. [デプロイ] を選択します。 | アプリ開発者 |
ダッシュボード ID を環境変数として追加します。 | Lambda 関数に環境変数として、
| アプリ開発者 |
Lambda 関数のアクセス許可を追加します。 | Lambda 関数の実行ロールを変更し、それに QuickSightGetDashboardEmbedURL ポリシーを追加します。
| アプリ開発者 |
Lambda 関数をテストします。 | テストイベントを作成して実行します。この関数はテストイベントのデータを使用しないため、「Hello World」テンプレートを使用できます。
注記「前提条件と制限」セクションで説明したように、QuickSight アカウントはセッションキャパシティ料金プランの対象である必要があります。そうしないと、エラーメッセージが表示されます。 | アプリ開発者 |
API ゲートウェイで API を作成します。 |
注記
| アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
Angular CLI を使用してアプリケーションを作成します。 |
| アプリ開発者 |
QuickSight 埋め込み SDK を追加します。 |
| アプリ開発者 |
ダッシュボード.component.ts ファイルにコードを追加します。 |
| アプリ開発者 |
ダッシュボード.component.html ファイルにコードを追加します。 | 以下のコードを
| アプリ開発者 |
app.component.html ファイルを変更して、ダッシュボードコンポーネントをロードします。 |
| アプリ開発者 |
HttpClientModule を app.module.ts ファイルにインポートします。 |
| アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
mkcert を設定します。 | 注記次のコマンドは、Unix または MacOS マシン用です。Windows を使用している場合は、対応する echo コマンドの 「追加情報」セクションを参照してください。
| アプリ開発者 |
ドメインを許可するように QuickSight を設定します。 |
| AWS 管理者 |
ソリューションをテストします。 | 次のコマンドを実行して、ローカルの Angular 開発サーバーを開始します。
これにより、以前に作成したカスタム証明書で Secure Sockets Layer (SSL) が有効になります。 ビルドが完了すると、ブラウザウィンドウが開き、Angularでローカルにホストされている埋め込みQuickSightダッシュボードを表示できます。 | アプリ開発者 |
関連リソース
「匿名 (未登録) ユーザー向けの QuickSight データダッシュボードの埋め込み」 (QuickSight ドキュメント)
追加情報
Windows を使用している場合は、管理者としてコマンドプロンプトウィンドウを実行し、次のコマンドを使用して常にローカル PC my-qs-app.net
にリダイレクトするように設定します。
echo 127.0.0.1 my-qs-app.net >> %WINDIR%\System32\Drivers\Etc\Hosts