Python

Chat Completion API の Function Calling を使用して対話で EC2 インスタンスを起動する

GPT-4 との対話を通して EC2 インスタンスを起動する様子 はじめに Function Calling とは 実装 ライブラリのインポートと openai クライアントの定義 対話を行う chat 関数 1. Chat completion API に渡す引数を作成する 2. ユーザーの初回の投稿を送信する…

Cloud9でPython3.12.xへバージョンアップする

東北のサウナー、小菅です。 AWSのCloud9上でPythonを使って検証をしようとしましたが、 「Pythonのバージョンアップってどうやるんだっけ?」と言いつついつもググるんですが よくわからないエラーが出たりしては他の記事を辿り・・・となりがちです。 備忘…

CodeBuild で Alembic を実行して DB マイグレーションを行う

本記事では、GitHub リポジトリへのプッシュをトリガーに、CodeBuild で Alembic を用いた DB マイグレーションを行います。

Alembic と sqlacodegen で RDB の変更管理をする

pythonコードでRDBの変更管理を可能とするプラクティス

Lambda関数とPapermillでJupyterノートブックをバッチ実行する

AWSにおいてJupyterノートブックを実行する場合は、通常はSageMakerの画面でノートブックインスタンスを起動してJupyterを画面を開いて実行します。 つまり、手作業なりますが、Papermillというツールを使えばバッチ実行が可能です。 本記事ではPapermillを…

Lambda のランタイムに Python 3.10 が追加になったようです。→正式になりました。

こんにちは。技術課の山本です。 Lambda のランタイムに Python 3.10 が追加になったようです。 4/20 追記:正式に発表がありました。(4/19) aws.amazon.com AWS マネジメントコンソールに表示が出るようになりました。 AWSの最新情報 に発表はまだなく、ド…

serverless-python-requirements の slim オプションを有効化するときの注意点

要約 serverless-python-requirements で設定値を変更した後は $ serverless requirements cleanCache を実行しておかないと変更が反映されないときがある。 そして、プロファイルごとに実行しよう。 はじめに こんにちは。アプリケーションサービス部の保田…

【デザインパターン with Python】1-1. デザインパターンとは何か

デザインパターンとは何か、用語の意味およびなぜ学ぶ必要があるかについて話します

【デザインパターン with Python】1-2. オブジェクト指向プログラミングとは何か

オブジェクト指向プログラミングとよく耳にしますが、どのようなプログラミング手法を見てみましょう

【デザインパターン with Python】1-3. Classを使ってみよう: Class定義と__init__とself

PythonでClassを定義する方法と、Classの定義に使用される__init__とselfがどのようなものかを紹介します。

【デザインパターン with Python】1-4. Classを使ってみよう: アクセス修飾子とクラスメソッド

Classメンバー(属性やメソッド)にアクセスする際に、その制御をするためのアクセス修飾子と、クラスから直接呼び出せるメソッド、クラスメソッドを紹介します。

【デザインパターン with Python】1-5. Classを使ってみよう: 継承とオーバーライド

デザインパターンを理解するにあたって必須概念となる「継承」と「オーバーライド」を紹介します

【デザインパターン with Python】1-6. 抽象Classとは何か

抽象Classとは?抽象メソッドとは?抽象とはどのような意味かをみてみましょう。

pytest-cov で pytest 実行時にカバレッジを取得しよう!

pytest-cov とは カバレッジとは C0 カバレッジ(Statement coverage: 命令網羅) C1 カバレッジ(Branch coverage: 分岐網羅) C2 カバレッジ(Condition coverage: 条件網羅) 試してみる インストール 実行方法 Visual Studio Code で可視化したい まとめ…

Pythonをインストール(Mac編)

はじめに この夏の 土用の丑の日 に鰻を食べれなかったので、この秋は秋刀魚を絶対に食べることを目標にしているアプリケーションサービス部の森です。 今回は、たまたまOSをクリーンインストールしたので、 新たにPythonをインストールすることになったので…

pyenv, virtualenv, pipenv, poetry の概要

概要 各ツールの対応範囲 pyenv の主要操作(Python のバージョン管理) パッケージ管理ツール別の主要操作 仮想環境(シェル)への入り方 パッケージを指定してインストール パッケージを requirements.txt, Pipfile, project.toml からインストール パッケ…

【Python】collectionsライブラリを活用しよう_1. namedtuple

Pythonのcollectionsライブラリに含まれた型の中で有用なものを紹介します。今回はnamedtupleです。

【Python】collectionsライブラリを活用しよう_2. OrderedDict

Pythonのcollectionsライブラリに含まれた型の中で有用なものを紹介します。今回はOrderedDictです。

【Python】collectionsライブラリを活用しよう_3. deque

Pythonのcollectionsライブラリに含まれた型の中で有用なものを紹介します。今回はdequeです。

Bandit を使って Python コードのセキュリティをチェックしよう!

Bandit とは 試してみる インストール 実行方法 設定 特定箇所のみチェックを無効にしたい flake8 のプラグインとして まとめ あわせて読みたい Bandit とは github.com Python コードのセキュリティ問題をチェックしてくれるツールです。Amazon CodeGuru Re…

McCabe を使って Python コードの複雑度をチェックしよう!

McCabe とは 循環的複雑度とは 試してみる インストール 実行方法 flake8 のプラグインとして まとめ あわせて読みたい McCabe とは github.com Python コードの複雑さをチェックしてくれるモジュールです。複雑さをチェックすることで、保守性の悪いコード…

OpenSSL 1.1.1 が必須なPython 3.10.x をAmazon Linux 2 にインストールする

どうも! swx-ochiai です。 Python 3.10.x をAmazon Linux 2 にインストールします。 ただし、プリインストールのOpenSSLバージョンが 1.1.1 未満の場合、インストールに失敗します。 そのため、この記事では、ハマりやすいポイントを取り除くためインストー…

BoxSDKでBox上のファイルをダウンロードする

こんにちは。DS1課の戸塚です。 今回は、PythonでBoxSDKを使ってBox上のファイルをダウンロードする方法を書いていきます。 インストール pip install boxsdk サーバー側JWT認証を使用するBoxアプリを使用する場合 pip install "boxsdk[jwt]" 認証 Box SDKを…

Pythonで複数の返り値を返す

はじめに アプリケーションサービス部ディベロップメントサービス1課の森です。 めちゃめちゃ久しぶりのブログを書いてますが、最近の流行りはマインクラフトとスプラトゥーン2です。 もうすぐスプラトゥーン3が出るので楽しみにしています。 今回は、Pyt…

【pytest入門】第1章 - pytest概要

pytestの概要およびインストール方法、使用方法を紹介します。

pytest で LINE Bot のテストコードを書いてみる

はじめに こんにちは。アプリケーションサービス部 河野です。 line-bot-sdk-python のおかげで簡単に LINE Bot を実装できますが、 テストコードもちゃんと書いておこうということで、pytest で試してみました。 ※ 本記事で紹介する書き方については、あく…

Zappa で内部 ALB を作成するまでの道のり

はじめに こんにちは。アプリケーションサービス部の保田(ほだ)です。 たまに Python 製の軽量サーバーレスアプリケーションのデプロイツールである Zappa を使う場面があるのですが、誰も Frank Zappa の話をしないので少し寂しいです。 ちなみに Pound f…

【PySpark入門】第6弾 Spark SQLを使ってみよう

PySpark SQLの簡単な紹介と、実際PySpark SQLを使ってみます。

【PySpark入門】第7弾 PySpark運用Tips!

PySparkスクリプトを書くときに、知っておいたらいい概念とポイントをまとめました。

【PySpark入門】第5弾 DataFrameとは?

PySparkで使用されるDataFrameというオブジェクトがどのようなものなのかを見てみます。

【PySpark入門】第4弾 実戦!RDDを操作してプログラムを作ってみる

RDDのAPIを使って簡単なプログラムを作ってみます。

Amazon EC2にPython 3・serverless framework環境を構築する

EC2上にPython3とserverless frameworkの環境を構築します。 言語のバージョン管理ができるように、anyenv・pyenv・nodenvを使います。

Lambda でバッチ処理を構築する際のエラー通知パターン 5選

はじめに パターン1. 直接Publish パターン メリット デメリット パターン2. DLQパターン メリット デメリット パターン3. 失敗時送信先パターン メリット デメリット パターン4. メトリクスフィルターパターン メリット デメリット パターン5. サブスクリプ…

DynamoDB のストレージ容量を自力で取得する方法が分かったかもしれない

はじめに こんにちは。アプリケーションサービス部の保田(ほだ)です。 最近 Future Funk なる音楽ジャンルにハマっており、仕事中 BGM としてずっと流しています。 というわけで今回は DynamoDB のストレージ容量を自力で算出することを試みます。 注意: …

【PySpark入門】第3弾 RDDの理解

RDDとは何かおよびRDDオブジェクトに対して使用できるAPIを紹介して、実際データを操作してみましょう。

【PySpark入門】第1弾 PySparkとは?

Sparkの特徴、PySparkの概要およびユースケースをご紹介します。

【PySpark入門】第2弾 PySparkの環境構築

Dockerを使ったPySparkを動かす環境を構築する方法をご紹介します。

UTF-8 で永続化された日本語文字列を取り出して、どうしても Shift-JIS エンコーディングで出力したい

Shift-JIS で表現できない UTF-8 文字列を無理やり変換したい記事です

pyenv global が効かなくなった(?)話

結論 pyenv global しても何も起きないときはこの警告がないか確認すべし( exec -l $SHELL とか実行する)。 WARNING: `pyenv init -` no longer sets PATH. Run `pyenv init` to see the necessary changes to make to your configuration. 出ていたら、以…

CloudNative Days Spring 2021 Online でサーバーレス初心者向けセッションで登壇しました

CloudNative Days Spring 2021 Online にサーバーレスのネタで登壇してみました。

pipenv + aws-sam-cli + python-dotenv でチーム開発

1. はじめに クラウドインテグレーション部の千葉です。 Python が好きなので、Lambda を使った開発の際は Serverless Framework に aws-python3 のテンプレートを当てて使っています。 ただ、Serverless Framework 自体が Node.js で動いているので、ちょっ…

CodeGuru が Python に対応したので Reviewer 機能を試してみました

クラウドインテグレーション部の千葉です。 CodeGuru が Python に対応しました。 うれしいですね!期待しちゃいますね!! ってことで、わたし試してみました。 1. CodeCommit の作成 + CodeGuru Reviewerを有効化 リポジトリとして、AWS CodeCommit / GitH…

【Backlog API】PythonスクリプトでBacklog Wikiのページを更新する

エンジョイ Backlog! サーバーワークス エンジニアの伊藤Kです。 サーバーワークスでは、プロジェクト管理ツールとして「Backlog」を使っています。 https://backlog.com/ja/ 前回は、PythonスクリプトでBacklog Wikiのページを追加する記事を書きました。 …

【Backlog API】PythonスクリプトでBacklog Wikiのページを追加する

エンジョイ Backlog! サーバーワークス エンジニアの伊藤Kです。 サーバーワークスでは、プロジェクト管理ツールとして「Backlog」を使っています。 https://backlog.com/ja/ パステルグリーンに「b」だけ書かれているシンプルなアイコン、Goodですよね。 …

pytest と moto で優勝する

はじめに 前提知識 導入 pytest moto 状況設定 テスト対象のコード テストメソッドを書く フィクスチャーを書く moto だ…! テストを実行してみる おまけ まとめ 参考 はじめに こんにちは、技術4課の保田(ほだ)です。 皆様は現在話題沸騰中の映画 TENET …

Amazon Connectの問い合わせフローをAPIから作成できるようになったので、使ってみました

はじめに こんにちは、孔子の80代目子孫兼技術4課の孔です。9月もそろそろ終わりとなり、寒くなってきましたね。私は寒い方が好きなので、やっと夏が終わって嬉しい限りです。 ということで、今回はAmazon Connectのアップデートに関するお話しとなります。…

Python の例外を別の例外として投げるときの話

はじめに こんにちは。技術4課の保田(ほだ)です。 iOS14 へのアップデートをしたらかなり雰囲気が変わってビックリしています。 というわけで(?)今日は Python のお話です。 要約 raise 文には from が使えるぞ 本題 main 関数から呼び出されるある関数…

数字文字列のバリデーションチェックの実装方法

こんにちは、技術1課の加藤です。 今回は AWS 一切関係ない、 Python のお話。 先日、0埋めしたい数字文字列に変な値が入っていないか確認する、というバリデーションをプログラムに追加するタスクがありました。 数字文字列のチェックってそういえばどうし…