Python

AWS CloudFormationテンプレートからparameter-overridesのJSONファイルを生成する

この記事について AWS CloudFormation(以下、CloudFormation)テンプレートファイルを渡すと、Parametersセクションを読み取り、AWS CLIでデプロイする際に使えるパラメーター(parameter-overrides)のJSONを生成するPythonスクリプトの紹介です。(ファイ…

GitHubのDependabotがパッケージの脆弱性を検知してくれたので解消してみる

こんにちは。アプリケーション部の兼安です。 少し前に脆弱性検知のブログを書かせていただきました。 blog.serverworks.co.jp その時に作った検証用リポジトリでGitHubのDependabotをONにしていたところ、2024年1月になってパッケージの脆弱性を検知してく…

Amazon Timestreamへの書き込み処理のレスポンスと例外を詳しく見てみる

こんにちは。 アプリケーションサービス部の兼安です。 今回はAmazon Timestreamの書き込み処理のお話です。 本記事のターゲット Amazon Timestreamを使い始めたぐらいの方を想定しています。 Amazon TimestreamがSQLが使えるため、一見RDBと同じように見え…

スナップショットテストを導入してアプリケーション保守性を向上させよう

本記事はサーバーワークス Advent Calendar 2023 の 13日目のエントリーです。 qiita.com はじめに 最近、AWS CDK を使った開発をしているのですが、AWS CDK のテスト手法としてスナップショットテストと呼ばれる手法があり、これを AWS CDK 以外の開発にも…

【Python】鈍足コードのリファクタリング

はじめに アプリケーションサービス部の鎌田(義)です。 アドベントカレンダー6日目ということで、 最近Pythonでコードを書いていて試行錯誤した内容をブログにしたいと思います。 はじめに 概要 背景 使用したファイル 検証環境 Amazon EC2 Python 検証に使…

Amazon ElastiCache ServerlessでMemcachedを使う

はじめに 概要 参考 やってみた 環境の作成 ElastiCache ServerlessをMemcachedで作成 Opensslで接続 Pythonで接続 おわりに はじめに こんにちは、荒堀です。 Amazon ElastiCache ServerlessのRedisを触ってみたので、今度はMemcachedの方も触ってみます。 …

Amazon ElastiCacheのハンズオンをServerlessに変更してみる

はじめに 概要 参考 やってみた 環境作成 Cloud9にデータベース作成 Python実行 おわりに はじめに こんにちは、荒堀です。 ElastiCacheの公式のハンズオンがあります。今回はこれをAmazon ElastiCache Serverlessでやってみます。 aws.amazon.com このハン…

Amazon ElastiCache ServerlessをPythonで使う

はじめに 概要 参考 やってみた 環境の作成 Pythonで操作 おわりに はじめに こんにちは、荒堀です。 先日、一般利用開始したAmazon ElastiCache Serverlessを、Pythonから使ってみました。 概要 Pythonのredisライブラリを使います。以下の2点の対応が必要…

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…