Python

【Docker】PythonのAWS LambdaLayerをDockerで作成する

AWS LambdaのLayerモジュールをzip化するまでの処理をDockerで行えるようにしたので、その方法をメモ。 coin-look.pages.dev Dockerfile amazonlinuxのイメージを利用することで、EC2などを用意せずにx86_64のアーキテクチャに対応させます。 Pythonのバージ…

【Python】toxで複数のPythonバージョンをテストする

Pythonのテストコードを実行する際に、複数のPythonバージョンで動作確認したい時があり、toxの設定が便利だったので備忘メモ。 インストール $ pip3 install tox tox.ini 設定ファイルにlintとtestの設定を記載できます。 波括弧で複数バージョンの指定が可…

【HiveQL】pyhiveとPrestoでテーブル操作

beelineで実行していたクエリをpyhive + Prestoで再実装した際に書き方が違う部分があった為、備忘メモ。 coin-look.pages.dev LOCATIONを指定してテーブル作成 元のクエリはこちら。 CREATE EXTERNAL TABLE <テーブル名> (<カラム名> <型>, ...) ROW FORMAT…

【Python】urllibでプロキシ設定

urllibで社内のプロキシサーバーを経由して外部接続という処理を実装しました。 外部接続先のAPIでBasic認証が必要で、少し詰まったのでメモ。 requestsモジュールだと、プロキシ設定 + 接続先でBasic認証が上手く動かなかった為、urllibモジュールを使用し…

【Python】smtplibでメール送信

Pythonでメール通知の実装メモ。 ホスト名などは適宜変更してください。 実装 ライブラリは不要です。 # -*- coding: utf-8 -*- import getpass import platform import smtplib from datetime import datetime from email.mime.text import MIMEText from e…

【Python】FastAPIのディレクトリ構成

クラウドソーシングでFastAPIの実装を行う機会があったので、調べた事などをメモ。 作成したソースコードはGit Hubに上げてあります。 ドキュメント 公式ドキュメントは分かりやすく書かれていた印象です。 fastapi.tiangolo.com ディレクトリ構成 公式ドキ…

【Python】pyhive で Presto 接続

PyHiveでPresto接続方法のメモ。 認証方法はプロダクト毎に違うと思いますので、適宜変更。 この辺りを見れば実装方法が分かると思います。 github.com インストール $ pip3 install pyhive[presto]==0.6.4 実装 # -*- coding: utf-8 -*- import base64 from…

【Python】Sanicでoracle接続

pythonでoracle接続を実装したのでメモ。 非同期処理用のフレームワークsanicを使用しました。 ドキュメント sanic Python v3.7~が必要です。 v3.6は2021年末にサポートが終了するので、バージョンアップを検討した方が良いと思います。 sanic.readthedocs.i…

【Python】DataStax Python Driverでcassandraにアクセスする

Pythonでcassandraの登録処理や取得処理を実装したのでメモ。 DataStaxのpython driverを使用しています。 テーブル設計なども行ったのですがパーテションキー=nodeという概念で、1pk=1nodeに多くても100レコード以内が望ましいそうです。 一意なID等なら問…

【Python】PyWebHdfsでHDFSを操作する

PythonでHDFSにファイルアップロードする処理を実装したのでメモ。 単純な処理ならcurlで十分なのですが、色々やりたい時は便利そうです。 事前にKerberos認証済みの想定です。 ⬇️ まだ読めてないです データウェブハウスツールキット―Web+データウェアハウ…

【Python】PyHiveでHiveQL

業務でPyHiveを使用したのでメモ。(忘れる自信しかない ) 環境によっては認証周りが変わりそうです。 ⬇️ クリーンアーキテクチャの事が分かりやすく書かれていて、お勧めです Clean Architecture 達人に学ぶソフトウェアの構造と設計 (アスキードワンゴ) …

【Python】boto3でS3のファイルをSSE-C暗号化

音声ファイルをS3に格納する際にSSE-C方式で暗号化したので備忘録。 botoの語源はアマゾンカワイルカだとか coin-look.pages.dev 公式 boto3.amazonaws.com 環境 Pythonのバージョンは3.7。 3.6は2021年末にサポートが切れるようです。 pip3 install boto3==…

【Python】mod_wsgi + Vue.js の連携

mod_wsgiでFlaskとVue.jsを連携させたので、備忘録として残しておきます。 あまり無いかもしれませんが、何かしらの理由でサーバーを1つに纏めたい場合に使えるかも 実際はkubernetes環境で実行するなどの事情もあり、分かりやすいように書き換えている為、…