public note

gcloudコマンドの実行結果が標準エラー出力に流れるときの対処法

GCP

はじめに GCP のサービスの中には、gcloud コマンドの実行結果がなぜか標準エラー出力に流れてしまうケースがあります。私が把握している限りでは、Cloud Composer がこれに該当します。 エラーハンドリングをしようとしても正常終了時のメッセージが邪魔を…

AWS Cloud Formation で作成した IAM を Miam DSL として出力する

はじめに AWS の IAM を Miam で管理している中で、AWS Cloud Formation で IAM を別途作成した場合にどのように管理するか、という課題について考えます。 対応方法 対応方法には、2通りあると考えました。 Miam の管理対象として DSL に追加する --exclude…

AWS Lambda カスタムイメージと Runtime Interface Clients

AWS Lambda に乗せるコンテナのベースイメージを自分でつくりたいときは、”Runtime Interface Clients” をイメージにインストールするとできます、というお話です。 AWSが提供しているベースイメージ docs.aws.amazon.com 2021年5月時点で、6言語のイメージ…

CentOS 7 に PyAudio をインストール

Cent OS 7 に PyAudio を インストールしたときにちょっともたついたのでメモ。 PyAudio は、マイクから得た音声データを Python でリアルタイムに取得できるライブラリ。 pypi.org pip install pyaudio や poetry add pyaudio すればいいと思いきやだめだっ…

(機能拡張)リングフィットアドベンチャーの運動ログをほぼ自動的に収集・可視化する

3週間ほど前に書いた以下の記事ですが、最後に「これからやりたいこと」をいくつか挙げていました。 ts223.hatenablog.com このうち、2つを実現することができましたので、それらを紹介するとともに、最近の運用状況について書きます。 機能拡張 1. GCP Secr…

AWS Batch のシークレットを AWS Secrets Manager から取得する

AWS

AWS Batch で使うシークレットを AWS Secrets Manager から取得したのでメモ。 設定は、前回の Step Functions → Batchの AWS Cloud Formation テンプレートに追加して、動作を確認しています。 GitHub - tosh223/practice-aws-batch: Sample code of AWS Ba…

AWS Step Functions → AWS Batch on Fargate を SAM で定義する

AWS

AWS Step Functions から AWS Batch を呼び出す構成を AWS SAM で定義しました。 AWS Batch のジョブは、Fargate で動くようにしています。 すんなり定義できなかったところがいくつかありましたので、ひっかかったところをまとめました。 つくったテンプレ…

リングフィットアドベンチャーの運動ログをほぼ自動的に収集・可視化する

目的は自己管理と習慣化 システム要件 完成図 必要なもの 運用コスト グラフ Goプログラム help ツイート検索 画像内のテキスト解析 解析結果の登録 これからやりたいこと pixelaで草を生やす 過去データ移行 GCP Secret Manager 対応 英語対応 風来のシレン…

Go開発環境の構築 (goenv, Go Modules, Visual Studio Code)

適当につくってしまったGoの開発環境を再構築した手順のまとめ。 環境 OS: CentOS 7 (VirtualBox on Windows 10 pro) IDE: Visual Studio Code Macからの Remote Explorer による SSH接続 構築手順 goenv インストール git clone https://github.com/syndbg/…

Amazon SQS と Cloud Pub/Sub のインターフェースを統一する

はじめに 小品ですが、ライブラリをつくっています。 その特徴やつくっている背景、解決したいことについてまとめています。 github.com 特徴 名前のとおり、キューのハブです。 Amazon SQS と Google Cloud Pub/Sub を同一のインターフェースで扱うことがで…

Goで書いたCloud FunctionsをTerraformでデプロイする

春になったし Cloud Workflows の検証でもしようかと思って、その部品として Cloud Functions を作るぞとなったので、最近入門したGoでやってみようと思いました。しかし、検索してもこの組合せのサンプルが全然出てこなかった。 結論 Terraform では、Go で…

AWS Step Functions が yaml に対応したので試した

AWS

2021/3/4 に以下の記事が出ました。待望のyaml対応! aws.amazon.com これで、Cloud Formation の Template と同じく yaml で統一できます。 どんな感じなのか、以前に json で作成したステートマシンを yaml で定義しなおして確認してみました。 対象とした…

Cloud Scheduler と Cloud Tasks

GCP

Cloud Scheduler からリクエストをどのように送信するのか気になったので調べていたら、結局表題の内容になった。 Cloud Scheduler リクエストを送信する際の特徴は以下である。 cronで指定したスケジュールでリクエストを送信する --max-retry-attempts で…

Cloud Pub/Sub でキューの長さを確認する

Cloud Pub/Sub で作成したTopicのサイズを確認する方法を調べていたのだが、ちょっと癖があったのでメモ。 Python での実装 import os from datetime import datetime from google.cloud import monitoring_v3 from google.cloud.monitoring_v3 import query…

権限付与から見たAWSとGCPの違い

業務都合で GCP を使う機会が増えたけど、サービスアカウントってなんかわかりにくいなぁってずっと思ってた。でもそれは AWS の考え方を引きずっていたからだと気づいたので、両者の権限付与について違いをまとめる。ざっくりしたまとめなので、詳細な仕様…

sfb v0.1.3

SQL tester and cost estimator for Google BigQuery pypi.org v0.1.3 更新内容 yaml 設定ファイルにGlobalsが加わり、デフォルト設定を記述できるようにしました。 これにより、SQLファイルごとに何度も同じ設定を繰り返さなくてよくなりました。

Cloud Translation を Ruby で実行する

巨人の肩の上に立ち、言葉の壁を乗り越えます。 悩み Cloud Translation Basic(v2) と Advanced(v3) の違い 対応言語 料金 Rubyでの実装 Basic(v2) Advanced(v3) 所感 悩み 英語のエラーメッセージで何を言われているのかわからない 関数や変数の命名で適切…

AWS Lambda コンテナイメージ の感想

AWS

2020年12月に、AWS Lambda のパッケージタイプとして「コンテナイメージ」が追加されました。 aws.amazon.com 遅まきながら、どのようなものか体験しましたので、感想を適当に書きます。 やったこと 感じたこと イメージについて確認したこと 気になったこと…

sfb v0.1.2 を公開した

公開しました(してました)。 sfb? v0.1.2 v0.1.1 sfb? BigQueryに対するクエリ静的解析、クエリコスト試算を簡単にできるツールです。 pypi.org v0.1.2 標準入力を受け取れるようになりました。 SQLファイル、クエリ文字列のどちらが来ても自動で判別します…

BigQueryのオンデマンドクエリ料金を見積るPythonパッケージをつくった

BigQueryのオンデマンドクエリ料金を見積もるPythonパッケージをつくりました。 経緯 つくったもの これはなにか 導入方法 実行方法 入力 出力 想定ユースケース 今後の予定 Development Status 経緯 BigQueryをオンデマンドクエリ料金で運用していると、作…

ストーリーで学ぶ Google BigQuery を読んだ

読書感想文です。 読んだ本 どんな本か 読んだ感想 読んだ本 Google Cloud Platform実践ビッグデータ分析基盤開発 ストーリーで学ぶGoogle BigQuery 著者: 株式会社トップゲート 出版社: 秀和システム ISBN-10: 4798059560 www.amazon.co.jp どんな本か 紹介…

TerraformでCloud Functions, Cloud Storage, サービスアカウントをつくった

GCP

Terraform と GCP に同時入門していくにあたって、この前 AWS でつくったリソースと、だいたい同じものをつくってみることにしました (Deployment Manager は、いまのところ利用予定なしのためスキップ) 実装 AWS GCP 感想 Terraform (これまでのところ)書き…

pandas MultiIndex DataFrameからの抽出方法、ついでにMatplotlib

pandasのマルチインデックスなDataFrame(以下、MultiIndex)からデータを抽出する方法と、Matplotlibでの可視化について書きます。 これまであまり経験がなく、別にいつもと変わらないっしょ!とやってみたところ(案の定)うまくいかなかったので、 そこで得た…

pytest, SAM, LocalStackを使ったAWS Lambda結合テスト

AWS

この前の続きで、AWS Lambda の結合テストについて書きます。 やること 実現方法 Method 単位のテスト Function 単位のテスト 具体例 ソースコード 動作確認環境 実装詳細 LocalStack pytest SAM Local テスト実行 テスト実行結果 まとめ やること LocalStac…

AWS Lambdaに対するユニットテスト

AWS

AWS Lambda に対するユニットテスト(以下、UT)で気をつけていることを言語化して、記録に残します。 結論 はじめに 実現したいこと 考えたこと 工夫したこと 具体例 処理内容 ディレクトリ構造 テストデータ Lambda Function テスト共通処理 テストコード ま…

AWS S3オブジェクトのMetadata管理

AWS

S3にファイルを格納する際に、そのファイルがどういった設定・経緯で作成されたのかを合わせて記録に残したいというニーズがありました。今回のケースでは、S3オブジェクトにMetadataを設定しつつputして、そのあとgetする手順をPythonで試したので、記録に…

Windowsスタートアップ/シャットダウン前に自動実行

Windowsを起動した直後、もしくはシャットダウンさせる前に、 自動的にbatやPowerShellスクリプトを実行する方法について記載する 利用シーン例 設定方法 利用シーン例 常駐プログラムや仮想マシンの起動・停止 設定方法 Windows + r キーで、「ファイルを指…

markdownlint のインデント調整

Visual Studio Codeの拡張機能で markdownlint を使用しているが、デフォルトはインデント=スペース2つなので、MD007が頻発する そこで、markdownlintのルールをスペース4つに変更する 環境 設定方法 Markdown All in One markdownlint 環境 Visual Studio C…

Docker入門

Dockerに入門しようといろいろ調べたときの記録 細かいアーキテクチャよりも、全体的な関係性を重視 Docker 登場人物 Docker Image Docker Container Dockerfile ファイルシステム イメージとコンテナの保存/バックアップ/リストア バックアップ/リストアの…

Windowsコマンドプロンプト AutoRun設定方法

Windowsのコマンドプロンプト(cmd.exe)を起動する際に、 自動的にコマンドを実行する方法について記載する 利用シーン例 注意事項 設定方法 利用シーン例 コマンドプロンプト起動時のカレントディレクトリを変更する お決まりの環境変数を設定する activate.…