ヤマムギ

growing hard days.

*

AWS LambdaでS3 Select

      2020/06/06

RDSスナップショットをS3にエクスポートした、ParquetフォーマットのデータにAWS LambdaでS3 Selectを実行してみました。

ParquetフォーマットのデータにS3 Select SQLを実行するでマネジメントコンソールで試したことをAWS Lambda(Python)から実行しました。

実行したコードと結果

結果出力

元データはこのブログのRDSスナップショットですので、年間記事件数を出してみました。
過去最高は2018年の120本で、今年はすでに110本を超えてますので、過去最高になりそうです。
去年がサボりすぎでしたので反省。

IAMロールの権限

S3は対象オブジェクトに対してのGetObjectがselectリクエストには必要です。

他は、RDSスナップショットのエクスポート時にKMSで暗号化してましたので、KMSへの権限も必要です。

ですので、AWS管理ポリシーのAWSLambdaBasicExecutionRoleと、以下の2つのインラインポリシーを設定しました。

s3:GetObject

selectの実行にListBucketは必要ありませんが、指定したオブジェクトが見つからない場合に「An error occurred (NoSuchKey) when calling the SelectObjectContent operation: The specified key does not exist.」を出力するためです。
ListBucketがないと、「An error occurred (AccessDenied) when calling the SelectObjectContent operation: Access Denied」となってしまい切り分けが難しくなります。

bucketname/*としてますが、もちろん特定のプレフィックスやオブエジェクトでもOKです。

kms:Decrypt

暗号化に使ったキーを指定しています。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

Amazon EC2 Auto Scalingのライフサイクルフック

EC2 Auto Scalingにライフサイクルフックという機能があります。 ス …

CloudWatch インテリジェントオペレーションでこのブログのログを調査してみました

CloudWatch インテリジェントオペレーションを設定しました。 設定 マネ …

AWS CDK とにかくサンプルでやってみる

Cloud9でAWS CDK環境で作った環境でサンプルプロジェクトからのデプロイ …

EC2 VyOSで/etc/resolv.confを設定しました

EC2でVyOSを起動してSSHで接続して確認していたところ、どうもVyOSから …

Microsoft TeamsのOutgoing Webhooksを使ってAWS Lambda(Python), Amazon API Gatewayとbot

Microsoft Teamsの検証その2、Slackで実装しているbotも対応 …

Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で

Elastic Beanstalk への flask アプリケーションのデプロイ …

AWS Lambdaで Unable to import module エラーが発生したときは

そもそも、Pycharmのナビゲーションペインでディレクトリごとドラッグ&amp …

Aurora Serverless Data APIを有効にしてLambdaからクエリを実行

Aurora Serverless作成 MySQLを作成しました。 作成時にDa …

AWS Database Migration Service(DMS)チュートリアル

公式ユーザーガイドのAWS Database Migration Service …

API GatewayからLambdaを介さずにSNSトピックへ送信

やりたいこと APIリクエストをまずLambdaで受けて、SNSトピックへ送信す …