2023-01-01から1年間の記事一覧
AWS のCloudTrailログにおいてイベント名は基本的にAPI名と一致する。 例えば、S3に関するCloudTrailログであればイベント名は ListBucketsやGetBucketAclなど。 これはAWSドキュメントのAPI Referenceなどに記載の名前と一致する。 docs.aws.amazon.com 一…
AWS Lambdaの go1.xランタイムのサポートが切れるのでアップデートする。 aws.amazon.com provided.al2023の選択 ランタイムアップデートについてはAWS LambdaのGo言語向けドキュメントにまとまっている。 以下以外のドキュメントでは Amazon Linux 2023 (pr…
ansibleで繰り返し処理を実装する場合は with_XXX系ディレクティブをよく利用していた。 特によく利用するのが with_items で、単純な繰り返し処理には with_itemsで対応することが多かった。 ansible 2.5以降では新しく loopディレクティブが導入された。 l…
github actionsのinputにはrequiredというパラメータがある。 これにより、対象のinuptが必須なのかオプションなのかを区別することができる。 docs.github.com しかし、required: trueに指定したinputが指定されなかったからといってエラーになるわけではな…
GitHubの Fine-grained personal access tokenは personal access token(classic)に比べて細かく権限を制御できるだけでなく、対象のResource ownerを1つ指定する必要がある。 所属する組織をResource ownerに指定するには、対象組織がpersonal access token…
Step Functionsにはリビジョン・バージョン・エイリアスの概念がある。 単にStep Functionsを更新するとリビジョンが更新されるが、特定のリビジョンにバージョンやエイリアスを発行することもできる。 docs.aws.amazon.com (公式ドキュメントより) Step Fun…
Pythonのビルドまわりの設定はpyproject.tomlに記述することが一般的である。 これはPEP518によって定められている。 一方で、すべてのツールがpyproject.tomlをサポートしているわけではなく、静的解析ツールである flake8 などは pyproject.tomlをサポート…
GitHub Actionsを手動で実行する workflow_dispatch にはさまざなま入力を指定できる。 input のcontextには string or number or boolean or choice とあり、例としてstring, number, booleanの場合が記載されている。 docs.github.com 実は、 on.workflow_…
docker build時にクレデンシャルを利用したい場合は --mount=type=secretを利用する。 これによりクレデンシャル情報がdockerイメージ内に保存されることを避けることができる。 docs.docker.com # syntax=docker/dockerfile:1 FROM node:alpine RUN --mount…
ファイルパスが与えられたときに拡張子を除くファイル名を取得したいときがある。 今までは os.path のbasenameおよびsplitextを用いて取得していた。 import os file = os.path.basename("/path/to/file.txt") base = os.path.splitext(file) print(base[0]…
emacsのPython LSPとしてlsp-pyrightを導入する。 まず事前にpyrightをインストールする。 ドキュメントにある通り、pyrightはnpmで提供されているので npm insatll -g pyright でインストールする。 elispの設定はuse-packageを利用するのであれば公式READM…
.gitignoreにはグローバル設定があり、各リポジトリの.gitignoreだけでなくアカウント別の共通設定が指定できる。 global .gitignoreは ~/.config/git/ignore に設定する。 git-scm.com zenn.dev 一方で、.dockerignoreにはグローバル設定はなく、プロジェク…
ECS fargateのログドライバでawslogsを利用するとき、awslogs-groupおよびawslogs-stream-prefixを指定する必要がある。 特にawslogs-stream-prefixはECS on EC2の場合は任意だが、ECS on fargateの場合は必須になるので注意が必要。 docs.aws.amazon.com ま…
apt-keyは廃止となった。 今後は apt-key addの替わりにkeyringを保存してsigned-byで指定する。 gihyo.jp www.clear-code.com このとき、keyringをどこに保存するべきか。 アクセス権限が適切に設定されていれば問題ないが、ソフトウェアによって /etc/apt/…
GitHub Actionsにはpathフィルタがあるので特定ディレクトリ以下に変更が生じたときのみworkflowを起動することができる。 ignore条件で変更がなければworkflowを起動しないこともできる。 docs.github.com これらのpathフィルタはworkflowレベルでの条件指…
GitHub / Slack連携 SlackのGitHub AppにはDeploymentsの通知機能がある。 これを利用すればGitHub からのデプロイ結果をSlack通知できる。 GitHub 側に通知設定はなく、Slack側で /github subscribe owner/repo コマンドを実行して連携する。deploymentsは…
Go言語で呼び出す関数を変数で管理して動的に切り替えたい。 いわゆる関数ポインタのような機能を利用したい。 stackoverflow.com 関数ポインタはないけれど、関数の型を定義すれば変数として扱える。 以下はStackOverflowで例示されていたコード package ma…
PythonランタイムのLambda関数を作成する場合には依存パッケージを特定ディレクトリに出力したい。 出力したディレクトリをzipファイルに含めることで依存パッケージを利用することができる。 docs.aws.amazon.com このPythonプロジェクトでパッケージ管理に…
VPC内にLambda関数を構築する場合、プライベートサブネットを利用することが推奨されている。 インターネットアクセスが必要な場合はNAT経由でアクセスしろとある。 アカウントの VPC に関数を接続すると、VPC からアクセス権が付与されない限り、関数はイン…
GitHub Actionsにはワークフローの同時実行を制御するための機能として concurrencyがある。 ワークフローだけでなく、ジョブの実行の同時制御を制御することもできる。 docs.github.com docs.github.com concurrencyには同時実行を制御する条件を指定する。…