2024-01-01から1年間の記事一覧
年末のせいか今週はアップデートは少ない。 cloud.google.com Kubernetes [CHANGED] GKE cluster versions have been updated. GKE パッチリリース。 Rapid / Extended / No channelにて配信。 BigQuery [CHANGED] BigQuery is available in the Mexico (nor…
cloud.google.com Identity and Access Management(IAM) [CHANGED] Principal access boundary policies are generally available. IAM には Principal access boundary policies (PAB policies, プリンシパルアクセス境界ポリシー)という機能がある。これは…
Google CloudのCloud Monitoringにおいてslack通知する仕組みをterraformで構築したい。 Email通知の例は公式のガイドに記載があるので、これを参考にslack通知を実現したい。 cloud.google.com Cloud MonitoringとSlackの連携 Cloud MonitoringとSlack連携…
Google Cloudの理解を深めるためにリリースノートを読んでみる。 主に自分が気になるプロダクトのリリース内容について抜粋。 cloud.google.com IAM [CHANGED] Using IAM attributes in custom organization policies is generally available. カスタム組織…
Google Cloudの理解を深めるためにリリースノートを読んでみる。 主に自分が気になるプロダクトのリリース内容について抜粋。 Google Cloud release notes | Documentation Compute Engine [FEATURE] Generally available: Hyperdisk Balanced High Availabi…
Cloudflare Workersにhello worldアプリをデプロイして動かしてみる。 API トークンの取得 これは本来必要無いが、自分の開発環境がGUIの無い環境なのでブラウザログインできず認証できない。 このため事前にAPIトークンを発行して設定しておく。 APIトーク…
Google Cloudにおいてリソースへのメタデータとして利用できるラベルという機能がある。 ラベルを使用してリソースを整理する | Compute Engine Documentation | Google Cloud これはAWSのタグ機能とほぼ同等の機能を提供する。 docs.aws.amazon.com Google …
terraformを使っていたら誰もが意図しない差分と格闘したことがあるはず。 その中でも特に何度applyしても差分が消えず残り続けるものがある。このようなdiffのことを permadiff と呼ぶ。 googlecloudplatform.github.io permadiffについての解説はMagic Mod…
Ubuntu 24.04のファイルマネージャーNautilusにてpdfファイルのサムネイルとして、1枚目の内容ではなく汎用のpdfアイコンが表示されて困った。 特に電子書籍を大量に所有しているのでサムネイルとして表紙を描画して欲しい。 サムネイル描画のためだけに追加…
TerraformにてCloudflareのゾーンリソースを管理したい。 特に単一のゾーンではなく複数のゾーンを扱いたい。 Terraformのcloudflare providerには cloudflare_zoneリソースがあるのでこれを利用すればよい。 Cloudflareとの認証にはAPI_TOKENを利用すればよ…
Kubernetesクラスタにおけるデータストアとしてetcdがある。 Kubernets The Hard Wayでetcdのセットアップを行ったので、その設定詳細について確認する。 また、Kubernetesにおける etcdクラスタについては以下のドキュメントが参考になる。 kubernetes.io …
Kubernetes The Hard Way を進めていたら、見知らぬ envsubstコマンドに遭遇した。 $ export ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64) $ envsubst < configs/encryption-config.yaml \ > encryption-config.yaml これは環境変数を展開して埋め込…
前回記事の検証のため、Fedoraにsshしたところ見慣れないメッセージとしてwebコンソールの案内が表示された。 $ ssh 192.168.10.124 Web console: https://localhost:9090/ or https://192.168.10.124:9090/ ... 実際にこのURLにアクセスしたところ、該当サ…
Kubernetes The Hard Wayを進めていたら、クラスタノードのホスト名の設定において /etc/hosts 書き換えるというものがあった。 この中で、 127.0.1.1 のエントリを書き換えるという操作があった。 while read IP FQDN HOST SUBNET; do CMD="sed -i 's/^127.…
ローカル環境においてKubernetesクラスタの動作検証するときの手段の1つとしてkindがある。 kindはdocker in dockerの仕組みを利用して簡単にkubernetesクラスタを構築・利用することができる。 クラスタノードを制御する kindはマルチノードクラスタにも対…
kubectlはプラグイン機構を備えている。プラグインの仕組みを利用することで、kubectlにサブコマンドを追加して公式cliにはない機能を実現できる。 kubernetes.io Krewによるプラグイン管理 プラグインはファイル名が kubectl-から始まる実行可能なファイル…
bunにおけるlockファイルの bun.lockbから、インストールしているパッケージバージョンを確認したい。 bun.lockはバイナリファイルなのでその内容を直接確認することはできない。 bun.sh bunのコマンドを指定しないで bun.lockbファイルを引数として指定すれ…
Terraformのjsonencode関数でjson文字列を生成するとき、 < > & U+2028 U+2029 はエスケープされる。 developer.hashicorp.com このため、例えば aws_cloudwatch_event_target の input_transformerを用いて送信メッセージをカスタマイズしたい場合に < > を…
導入: リソースベースポリシーとプリンシパル AWSにおいてアクセス元を識別するための仕組みとしてプリンシパルがある。 IAMポリシーにおいてリソースベースのポリシーを定義するとき、さまざまな種類のプリンシパルから指定することができる。 docs.aws.ama…
まさにこれに遭遇した。 dev.classmethod.jp S3バケットポリシーにIAMユーザのアクセス許可を付与していた。 IAMユーザを削除したが、S3バケットポリシーの修正もれが生じていた。 S3バケットポリシーはterraformで管理していたが、IAMユーザの指定ではIAMユ…
Composite Actions概要 GitHub Actionsにて複数のworkflowから利用できるactionsとしてComposite Actions (日本語では複合アクション)を作成できる。 Composite Actionsを作成すれば、複数のworkflowから参照することもできるし、複数リポジトリで共有するこ…
<button type="button" disabled>送信</button> のように、disabled属性をVueで制御したい。 これを実現するには以下のようにv-bindを利用する <script setup lang="ts"> import {ref} from "vue"; const isButtonDisabled = ref(true); </script> <template> <button v-bind:disabled="isButtonDisabled">Button</button> </template> これにより、isButtonDisabled がt…
Nuxtのpagesやserverではfile-system routingを採用しており、URLの構造のソースコードのディレクトリ構造を一致させることができる。 nuxt.com nuxt.com serverのディレクトリなどにおいて、リクエストパスがいずれのルーティング設定とも一致しない場合の…
TypeScriptにおいて import { NuxtAuthHandler } from "#auth"; のようなインポート文を見かけることがある。この#authのような例をパスエイリアスと呼ぶ。 パスエイリアスを利用することで、相対パスでコンポーネントを指定する場合に比べてディレクトリ構…
GitHub ActionsにおいてMatrix Jobを実行した結果(outputs)を参照したい。 2024年1月の仕様では、最後に実行したジョブの結果で上書きされるので、ジョブによって結果が異なる場合にそれぞれの値を取得することができない。 これは以下のコミュニティディス…
GitHub Organization下の複数リポジトリにてクレデンシャルを共有したいケースがよくある。 このような場合にはOrganization SecretsやOrganization Variableが便利。 docs.github.com これはこれで良いのだけれど、GitHub Environmentsを利用するようになる…
AWS LambdaのNode.js 16ランタイムは 2024年6月に廃止がアナウンスされている。 (Node.js 16 LTS自体は公式には2023年11月にEOLを迎えている)。 できるだけ早めに Node.js 18 or 20にアプデートしたい。 docs.aws.amazon.com AWS Lambda固有の事情として、No…
JavaScriptには他のファイルで定義されたリソースを利用するための仕組みとして import/exportがある。 exportを利用するためには、ソースファイルがモジュールである必要がある。 ソースファイルで export 宣言を使用するためには、そのファイルはランタイ…
GitHub Environmentsにはシークレットと変数が設定できて、それぞれ secretsおよびvarsコンテキストを用いて参照する。 例えばシークレットとしてTOKENを設定していれば ${{ secrets.TOKEN }} で、変数として RAILS_ENVを設定していれば ${{ vars.RAILS_ENV …
GitHub Actionsで条件に応じて変数に値を設定したい。 例えばmainブランチを対象とする場合はenvironmentにproductionを、それ以外のブランチを対象とする場合はdevelopmentを設定したい。 このようなケースでは三項演算子が利用できる。 docs.github.com こ…