スキップしてコンテンツを表示

QuickSight ダッシュボードでプライベート Amazon S3 バケットの画像を使用する方法を教えてください。

所要時間2分
0

Amazon QuickSight ダッシュボードで、プライベート Amazon Simple Storage Service (Amazon S3) バケットにある画像を使用したいです。

解決策

QuickSight ダッシュボードまたはレポートでプライベート Amazon S3 バケットの画像を使用するには、AWS Lambda API または Amazon CloudFront コンソールを使用します。

Lambda API

Lambda API を使用するには、Lambda 関数を作成してから、Amazon API Gateway のトリガーを作成します。

Lambda 関数を作成する

次の手順を実行します。

  1. Amazon S3 コンソールを開きます。
  2. ナビゲーションペインで [バケット] を選択し、該当するバケットを選択します。
  3. [アップロード] を選択します。
  4. 画像を、.jpg 形式でバケットにアップロードします。
  5. 次のコマンドを実行して Lambda 関数を作成します。
    import boto3
    import base64
    
    def lambda_handler(event, context):
        s3 = boto3.client("s3")
        downloaded_s3_object = s3.get_object(Bucket="<S3 BUCKET NAME>", Key="<Image.jpg>")
        return base64.b64encode(downloaded_s3_object["Body"].read())
    注: S3 BUCKET NAMEdownloaded_s3_object は、実際の情報に置き換えます。AWS Identity and Access Management (IAM) ロールには、S3 バケットからオブジェクトを取得するためのアクセス許可が必要です。Lambda 関数の [ランタイム]Python 3.9 に設定します。
  6. [デプロイ] を選択します。

API Gateway のトリガーを作成する

次の手順を実行します。

  1. API Gateway コンソールを開きます。
  2. ナビゲーションペインで [API][API を作成] の順に選択します。
  3. [REST API][ビルド] を選択します。
  4. [REST API の作成] ページの [API の詳細][新規 API] を選択し、次の情報を入力します。
    API の名前を入力し、[API を作成] を選択します。
    (オプション) API の説明を入力します。
    [API エンドポイントタイプ][リージョナル] を選択します。次に、**[API を作成]**を選択します。
  5. [リソース] ページの [メソッド][メソッドを作成] を選択します。
  6. [メソッドの作成] ページで、次の情報を入力します。
    [メソッドタイプ] で、[GET] を選択します。
    [統合タイプ][Lambda 関数] を選択します。
    [Lambda 関数] で、AWS リージョンおよび、お使いの Lambda 関数を選択します。
  7. [メソッドを作成] を選択します。
  8. [リソース] ページの [メソッドリクエストの設定][編集] を選択します。
  9. [メソッドリクエストの編集] ページの [HTTP リクエストヘッダー][ヘッダーを追加] を選択します。
  10. [名前]Content-Type と入力し、[保存] をクリックします。
  11. [リソース] ページの [統合レスポンス][編集] を選択します。
  12. [レスポンスの詳細][コンテンツ処理][バイナリに変換] を選択し、[保存] をクリックします。
  13. API をデプロイします。
    注: 詳細については、「API Gateway コンソールを使用してステージを設定する」を参照してください。
  14. [ステージ] ページの [ステージの詳細] に表示された、呼び出し URL を書き留めます (例: https://1a2bc3d456.execute-api.region.amazonaws.com/test)。
  15. QuickSight コンソールを開きます。
  16. ナビゲーションペインで [分析] を選択し、画像追加先の分析を選択します。
  17. [ビジュアル] メニューで [カスタムビジュアルコンテンツ] を選択します。
  18. [ビジュアルのカスタマイズ] を選択します。
  19. [プロパティ] ペインの [コンテンツのカスタマイズ] に、呼び出し URL を入力します。
  20. [画像として表示] オプションにチェックを入れ、[適用] を選択します。

API Gateway は、画像の base64 文字列を返します。QuickSight インサイトエディタは、API の URL を使用して画像を表示します。

CloudFront コンソール

次の手順を実行します。

  1. CloudFront コンソールを開きます。
  2. ナビゲーションペインで [ディストリビューション] を選択し、[ディストリビューションを作成] を選択します。
  3. [ディストリビューションの作成] ページで、次の情報を入力します。
    [オリジンのドメイン] に、オリジンのドメイン名を入力します。
    **[オリジンアクセス]**で [オリジンアクセスコントロール設定 (推奨)] を選択します。
    [オリジンアクセスコントロール][新規 OAC を作成] を選択し、[作成] を選択します。
  4. [ウェブアプリケーションファイアウォール (WAF)][セキュリティ保護を有効にしない] を選択します。
  5. [ディストリビューションを作成] を選択します。
  6. [ディストリビューションの詳細] ページで、ディストリビューションのドメイン名 (例: d2icdkfpjckhwg.cloufront.net) を書き留めておきます。
  7. 「S3 バケットポリシーを更新する必要があります」というメッセージ内で、[ポリシーをコピー] を選択します。
  8. Amazon S3 コンソールを開きます。
  9. [汎用バケット] で、オリジンドメインのコンテンツをホストするバケットを選択します。
  10. [バケットの詳細] ページの [アクセス許可] で、[編集] を選択します。
  11. ポリシーを入力し、[変更を保存] を選択します。
  12. [バケットの詳細] ページの [オブジェクト] で、オブジェクトを選択します。
  13. [オブジェクトの詳細] ページで、S3 の URI を書き留めます (例: s3://your-bucket-name/your_image.png)。
  14. 新しいブラウザタブで、S3 の URI を入力します (例: d2icdkfpjckhwg.cloufront.net/your_image.png)。
  15. QuickSight ダッシュボードの [プロパティ] で、[ビジュアル] セクションにカスタム URI を入力します。
  16. [適用] を選択します。
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ