ヤマムギ

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 Becrock Nova Pro, Liteを校正目的で比較モードを試しました

書籍執筆の誤字脱字チェックと校正をしてもらうためにNovaを検討しています。 N …

Amazon SNSサブスクリプションフィルターを設定してPython(boto3)からPublish

上記のような構成でRocketChatを使うとき使わないときがあります。 都度都 …

EC2スポットインスタンスの中断通知を受ける

オートスケーリンググループでEC2インスタンスをスポットインスタンスで使用してい …

Kinesis Data Analyticsの検索結果をKinesis Data FirehoseからS3バケットに保存する

Kinesis Data AnalyticsをKinesis Data Stre …

EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効期限は短くできるのでしょうか

「EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効 …

CodeBuildで執筆原稿データをまとめた

今書いている原稿に対して編集者さんから、「できればで構わないのですが、章ごとにマ …

AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確認する

ユーザーガイドのサービスコントロールポリシーの例にはDeny(拒否)ばっかりでA …

boto3(Python SDK) s3 get_object でバイト範囲を指定する

S3のGetObjectアクションでバイト範囲を指定することができます。 それに …

RDSのポイントインタイムリカバリをしました

WordPressで画像アップロードができなくなった(AWS WAFでブロックし …

CodeCommitリポジトリの復号化のCloudTrailログ確認

ユーザーガイドAWS Key Management Service と AWS …