tkhrsskの日記

技術ネタなど

aws cli のメモ

よく使う環境変数

export AWS_DEFAULT_REGION=ap-northeast-1
export AWS_ACCESS_KEY_ID=xxxx
export AWS_SECRET_ACCESS_KEY=xxxx

AWS CLI を設定する環境変数 - AWS Command Line Interface

SSM パラメータストア

一覧取得(階層単位)

aws ssm get-parameters-by-path --path "/"

設定

aws ssm put-parameter --name "parameter_name" --value "a parameter value" --type String

CSV出力

aws ssm get-parameters-by-path --path "/" | jq -r '.Parameters[] | [.Name, .Type, .Value, .Version, .LastModifiedDate] | @csv' > out.csv

複数パス対応シェル

#!/bin/bash

list=(
  /
  /param
  /xxx
)

for item in "${list[@]}"
do
  echo ${item}
  aws ssm get-parameters-by-path --path ${item} | jq -r '.Parameters[] | [.Name, .Type, .Value, .Version, .LastModifiedDate] | @csv'
done

bash芸

bashで連番処理やxargsのメモ。

連番の表示

まずはbashのブレース展開

$ echo {0..10}
0 1 2 3 4 5 6 7 8 9 10

seqコマンド

$ seq 0 10
0
1
2
3
4
5
6
7
8
9
10

0埋め

bash v4以降だと下記で可能。bash v3以下は未対応

$ echo {01..10}
01 02 03 04 05 06 07 08 09 10

seqコマンド

$ seq -w 0 10
00
01
02
03
04
05
06
07
08
09
10

ループ処理

for i in {0..10}
do
  echo $i
done
for i in `seq 1 10`
do
  echo $i
done

xargsによる並列化

echo {0..10} | xargs -n 3 -P 2 echo

-nで一度に渡す引数の数を指定 -Pで並列で実行するプロセス数を指定

シェルの引数デフォルト値

引数が指定されていなかった場合のデフォルト値指定、2パターン。

env_name=dev
if [ -n $1 ]; then
  env_name=$1
fi
env_name=${1:-dev}

ショートカットキー

www.na3.jp

MacBook AirにWindows10をインストール

前回、MacBook ProにWindows10をインストールした際、 苦労したのに何も記録していなかったようなので、 今回は手順を残す。

  1. Windows 10 のライセンスを購入する
    以降、下記サイトを参照する。
    Boot Camp アシスタントで Mac に Windows 10 をインストールする - Apple サポート

  2. Windows10のISOをダウンロードする。5GBくらいある。
    Windows 10 のディスク イメージ (ISO ファイル) のダウンロード

  3. BootCampを使ってWindows用のパーティションを作成する。
    デフォルトだと40GBになっているけど、最低64GBはあったほうがいい。

  4. ISOを選択してWindowsをインストールする。
    インストール手順で、キーボードやタッチパッドが動かないことがあるので、USBマウスやUSBキーボードを用意したほうがいい。 たぶん、その後Windows Supportをインストールしないと、キーボードやタッチパッドが使えない。
    Mac に Windows サポートソフトウェアをダウンロードしてインストールする - Apple サポート

  5. Windows Support のダウンロード
    Mac側で実行する必要あり。
    Windowsで正しくBootCampがインストールできていれば、タスクバー右下の菱形のアイコンから、macで再起動を選択。 もしくは、電源を入れた時に、Optionキーを押しっぱなしにすると起動するOSを選べる。
    Mac起動したら、Boot Campアシスタント → 上部メニューの「アクション」→ 「Winodwsサポートソフトウェアをダウンロード」
    Windowsで実行できるようにUSBメモリ(FAT初期化)やネットワークドライブにいれる。
    ダウンロードできたらWindows側でSetup.exeを実行。

  6. IME設定
    Macと同じように英数とかなで、入力方式を固定で切り替えるようにする。 IME→「プロパティ」→「詳細設定」→キー設定の「変更」、[英数]と[無変換]を[IME-オフ]、[ひらがな]を[IME-ON]にする。

Visual Stduio Code セットアップ

拡張機能

  • Japanese Language Pack
  • Python
  • GitLens
  • Code Spell Checker
  • Visual Studio IntelliCode
  • Color Highlight
  • TODO Highlight
  • Todo Tree
  • Rainbow CSV
  • Log File Highlighter
  • csvode-cfn-lint
  • PlantUML
  • Bash Beautify

Python設定

カバレッジ

実行例

$ PYTHONPATH="src:lib" coverage run --branch tests/*.py
$ coverage xml
$ coverage html

※PYTHONPATHの区切りは、Windowsの場合 ; (セミコロン)になる。

サンプルプロジェクト

GitHub - tkhr-ssk/SamplePythonProject: for Visual Studio Code

Mac のショートカットキー

  • cmd + n : 新しいファイル
  • cmd + shift + s : 別名保存
  • F12 : 定義にジャンプ
  • cmd + F12 : 実装にジャンプ
  • opt + cmd + ← : 戻る
  • opt + cmd + → : 進む
  • opt + shift + f : ドキュメント全体をフォーマット
  • cmd + k, v : プレビュー画面を表示 (一番よく忘れるやつ)
  • ctrl + g : 特定行へジャンプ
  • cmd + c :コピー。何も選択していない場合、行コピー。
  • cmd + / : コメントアウト
  • cmd + p : ファイル名クイック検索
  • opt + shift + ドラッグ : 矩形選択
  • alt + d : PlantUMLのプレビュー

参考

PHP向け

AWS IAMに関するメモ

IAM ポリシー評価ロジック

下記の順で評価される。

  1. 明示的なDeny
  2. 明示的なAllow
  3. 暗黙的なDeny

ポイントは、Denyステートメントに該当すればAllowがあっても拒否されること。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_evaluation-logic.html

CloudFormationとIPアドレス制限

IPアドレス制限をしたアカウントでCloudFormationを実行すると権限エラーが発生する。 CloudFormationが内部リソースで実行され、その時のIPアドレスで評価されるため。

対策としては、IP制限無しのロールスイッチするか、CloudFormation実行時のロール指定を利用する。

参考: AWSの薄い本 IAMのマニアックな話 - 佐々木拓郎のオンライン本屋 - BOOTH