寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

VS Code に Vim をインストールする

f:id:chidakiyo:20220128110757j:plain

新しいMacに移行する際にまっさらから設定したので、作業メモ。

プラグインをインストールする

https://marketplace.visualstudio.com/items?itemName=vscodevim.vim

こちらからそれっぽくポチポチします。

vim の設定を適用する

Quick Example にある設定を入れてみると良いと思います。

{
  "vim.easymotion": true,
  "vim.incsearch": true,
  "vim.useSystemClipboard": true,
  "vim.useCtrlKeys": true,
  "vim.hlsearch": true,
  "vim.insertModeKeyBindings": [
    {
      "before": ["j", "j"],
      "after": ["<Esc>"]
    }
  ],
  "vim.normalModeKeyBindingsNonRecursive": [
    {
      "before": ["<leader>", "d"],
      "after": ["d", "d"]
    },
    {
      "before": ["<C-n>"],
      "commands": [":nohl"]
    }
  ],
  "vim.leader": "<space>",
  "vim.handleKeys": {
    "<C-a>": false,
    "<C-f>": false
  }
}

その他設定に関してはこちらを見てみましょう

https://marketplace.visualstudio.com/items?itemName=vscodevim.vim#vscodevim-settings

setting.json の開き方は、Preferences > Settings から開いたウィンドウの右上のボタンを押すなどで開けます。

利用してみよう

プラグインと設定を入れるとほぼ VS Code 上でほぼ vim として利用できるので、 是非利用してみましょう。

enjoy!

参考

https://marketplace.visualstudio.com/items?itemName=vscodevim.vim#vscodevim-settings
https://qiita.com/jintz/items/d357478271179c90ffab
https://qiita.com/y-w/items/614843b259c04bb91495

GAEの固有ヘッダー

f:id:chidakiyo:20211124103243j:plain

GAE を利用していると、GAE の LB が固有のヘッダーを色々つけてきます。

GAE 固有のヘッダー

固有のヘッダーについてのドキュメントはこちら。

cloud.google.com

X-Appengine-Country , X-Appengine-Region など様々なヘッダーがあります。

GAE を External LB 背後に置いた場合

  • via というヘッダーが付与される

https://cloud.google.com/load-balancing/docs/https#target-proxies

  • LB を経由した場合には上書きされるが、外部から付与された場合にはそのまま届く(クライアントが偽装できてしまうので LB を経由したかの判断には利用できない)

ではでは。

参考

https://inthisfucking.world/block-access-by-region/

M1 Mac に brew (homebrew) をインストールする

f:id:chidakiyo:20211122161848j:plain

M1 Mac の Homebrew 対応もいい感じなってきました。
今は以下のコマンドを実行するだけです。

インストールコマンド

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

コマンドを入力すると、sudo (特権で実行)するために、Mac のパスワード入力を求められます。
それを入力すると、 /opt 配下に色々インストールするけど良いなら Enter を押してね、と出るので Enter を押すとスッとインストールされます。
少しインストールには時間がかかりますので、のんびり待ちましょう。

インストールが終わったらパスを通します.

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/$USER/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

brew を使ってのインストール

例えば go をインストールする場合には.

brew install go

と実行しましょう。

brew でインストールしたツールのアップデート

brew upgrade

を実行します。

brew 自体のアップデート

brew update

を実行します。

両方一度に実行する場合には brew update; brew upgrade などのように実行すると一度に実行できます。

ではでは。

nginx を LB の裏側においた場合のリダイレクトが相対パスでリダイレクトさせたい

f:id:chidakiyo:20211118111136j:plain

タイトルのとおりですが、LB 配下に nginx を 8080 ポートなどで起動させている場合、
nginx のリダイレクトを使うと :8080 がついた URL にリダイレクトしてしまうことがあります。

そんな場合には相対パスでリダイレクトさせたい、、、となります。

実現方法

nginx には absolute_redirect という機能があります。

ドキュメント的にはこんな感じ。

f:id:chidakiyo:20211118110809p:plain

自分の設定ではこんな雰囲気で適用しました

server {
      listen 8080 default_server;
      server_name _;
      absolute_redirect off;
・・・
}

ではでは。

参考

http://nginx.org/en/docs/http/ngx_http_core_module.html#absolute_redirect

Permission 'iam.serviceaccounts.actAs' denied on service account ~~ のように言われたとき

f:id:chidakiyo:20211108183530j:plain

従来、GCPの特定のサービスでは、ユーザがサービスアカウントを偽装する権限がなくても、サービスアカウントをリソースにアタッチすることができましたが、

  • App Engine
  • CloudComposer
  • Cloud Data Fusion
  • Dataflow
  • Dataproc

においては偽装する権限を付与する必要があります。(2021年1月以前に作ったプロジェクトはおそらく)

解決方法

突然の解決方法ですが、

タイトルのようなログの中で表示されているサービスアカウントに対し、 roles/iam.serviceAccountUser 権限を付与することで解決します。

GCPのコンソールからは以下の図のように Service Account User を追加します。

f:id:chidakiyo:20211108183242p:plain

ではでは。

参考資料

Requiring permission to attach service accounts to resources

GCPセキュリティ変更に伴うAppEngineのIAM更新について - Qiita

Google のドメイン認証のオーナー権限付与するサイト : ウェブマスターセントラル

f:id:chidakiyo:20211008131944j:plain

たびたび、サーチコンソールなどの権限を設定する際に、
大元のドメインのオーナーを付与する方法を忘れるので備忘メモ。

ウェブマスターセントラルから行う。

https://www.google.com/webmasters/verification/home

単なるメモでした。

ではでは。