AWS の CodeCommit と Windows の Sourcetree

Windows の SourcetreeAWSCodeCommit を扱う。

Git を GUI で扱うツールで初めて使ったのが Atlassian の Sourcetree でした。当時は Mac の上でコードを書いていたんですが、最近は Windows でも書くことが増え、Windows 版の Sourcetree も使うようになってきました。

で、Windows 版の Sourcetree では、デフォルトで Embed 版の Git を使うようになっています(多分)。そして、私はリポジトリへのアクセスは ssh を使っています。Winsows 版 Sourcetree の Git が ssh スキームのときにどの ssh を使うかなどをきちんと認識しておかないと面倒なことになります。以前は Pagent が使われていたと記憶しているのですが、Git に PuTTY が組み込まれていると理解していました。というのも、(そうならば当然と思うのですが) ~/.ssh/config を読むということがなかったからです。

CodeCommit からリポジトリをクローンするときに、

ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/hogerepo

のような URL(?)でアクセスしますが、これでは IAM に登録した鍵の ID の情報が無いのでエラーになります。ホスト名の前に SSH キー ID をつけて、

ssh://<SSH Key ID>@git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/hogerepo

のような形にすると、SSH Key ID としてアクセスして、Pagent に登録した鍵でアクセスしてくれました。

 

どんどん追加していく。

天板

IKEA GERTON
GERTONこれ。155×75 で 12,990 円。幅がありすぎるかも。
IKEA EKBACKEN
EKBACKENこれ。126x65x2.8 で 9,900 円。何色かあるみたい。IKEA のキッチンワークトップのページ
IKEA LINNMON
LINNMONこれ。120×60 で厚みは表記が無いけれども 3.4 くらいらしい。2,999 円。安い。

マルトクショップで買うのも良いかも。実際に買った人の記事(【DIY】低予算で簡単!ネットでオーダーした天板で自作デスクを作ってみた。)

参考ページ

node.js 環境

python 環境からの続き。

ndenv のインストール。

$ anyenv install ndenv
$ anyenv install nodenv
$ exec $SHELL -l

node.js を入れてグローバルの設定。

$ nodenv install 4.3.2
$ nodenv install 6.10.3
$ nodenv install 8.10.0
$ nodenv install 10.15.3
$ nodenv global 10.15.3

npm を新しくしておく。

$ npm install -g npm

とりあえず、ここまでかな。

python 環境

必要そうなもの。

$ sudo apt install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev git

anyenv と anyenv-update のインストール。

$ git clone https://github.com/anyenv/anyenv ~/.anyenv
$ vi ~/.bashrc

# anyenv environment
if [ -d “$HOME/.anyenv/bin” ] ; then
export PATH=”$HOME/.anyenv/bin:$PATH”
fi
eval “$(anyenv init -)”

$ ~/.anyenv/bin/anyenv init
$ exec $SHELL -l

ANYENV_DEFINITION_ROOT(/home/nakase/.config/anyenv/anyenv-install) doesn’t exist. You can initialize it by:

> anyenv install –init

$ anyenv install –init

Manifest directory doesn’t exist: /home/nakase/.config/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y
Cloning https://github.com/anyenv/anyenv-install.git master to /home/nakase/.config/anyenv/anyenv-install…
Cloning into ‘/home/nakase/.config/anyenv/anyenv-install’…
remote: Enumerating objects: 48, done.
remote: Total 48 (delta 0), reused 0 (delta 0), pack-reused 48
Unpacking objects: 100% (48/48), done.

Completed!


$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update

pyenv と pyenv-virtualenv のインストール。

$ anyenv install pyenv
$ exec $SHELL -l
$ git clone https://github.com/yyuu/pyenv-virtualenv $(anyenv root)/envs/pyenv/plugins/pyenv-virtualenv

AWS 関連なので python は 2.7 系と 3.6 系と 3.7 系を入れておく。

$ pyenv install 2.7.16
$ pyenv install 3.6.9
$ pyenv install 3.7.4

グローバル環境の作成。

$ pyenv virtualenv 3.7.4 my-global
$ pyenv global my-global

aws-cli のインストール。pyenv などを使っているときには –user は指定しない。

$ pip install awscli --upgrade

~/.aws/credencials と ~/.aws/config を作成・修正して、完成。

Mac で nfs エクスポート

Mac で nfs エクスポートする。VMware 上の Linux でマウントするため。

Mac 側では、/etc/exports で、

/Users/hoge/develop -mapall:hoge:hoge -network 172.16.133.0 -mask 255.255.255.0

ここで、GID も hoge にしているけれども、Mac のデフォルトグループでは gid が 200 の staff になっているが、これが Linux 側で dialout になっているため。この作業の前に、

$ sudo dscl . -create /Groups/hoge
$ sudo dscl . -append /Groups/hoge PrimaryGroupID 501
$ sudo dscl . -append /Groups/hoge GroupMembership hoge
$ sudo dscl . -read /Groups/hoge

としておく。先に MacPorts とか入れると、GID 501 を取られてしまうので要注意。

それと、Linux 側の /etc/login.defs を修正して、最小一般ユーザ UID と GID を 500 とかにして、Linux 上での作業ユーザを UID 501 でつくっておく。

Linux でのマウントに関しては、/etc/fstab で、

172.16.133.1:/Users/hoge/develop /home/hoge/develop nfs defaults 0 0

として、自動的にマウントするようにする。

VMware Fusion の英数キー CapsLock 問題

MacBook Air (13-inch Mid 2013) で VMware Fusion 11 の上に Ubuntu 18.04 をインストール。

$ sudo dpkg-reconfigure keyboard-configuration

選択は、

MacBook/MacBook Pro (Intl.) → 日本語 → 日本語 → キーボード配置のデフォルト → コンポーズキーなし

xkb の設定の書き換え。

$ sudo vim /usr/share/X11/xkb/symbols/jp

key <CAPS> { [ Eisu_toggle, Caps_Lock ] };

という行が 2 行あるので、

key <CAPS> { [ Eisu_toggle ] };

と修正。

Mozc プロパティの一般タブのキー設定の選択で編集ボタンをクリック。
入力キー「Eisu」のモード「直接入力」「入力文字なし」のコマンドを「IMEを無効化」に。
入力キー「Hiragana」のモード「直接入力」のコマンドを「IMEを有効化」に。

以上。

Lambda 関数をダウンロードする

Lambda 関数をダウンロードして内容を確認する方法。ローカルのコードとデプロイされたコードが同じかわからなくなったときなど。

バージョンの確認

aws cli で特定の関数のバージョン情報を確認。

$ aws lambda list-versions-by-function --function-name hoge
{
    "Versions": [
        {
            "TracingConfig": {
                "Mode": "PassThrough"
            },
            "Version": "$LATEST",
            "CodeSha256": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=",
            "FunctionName": "hoge",
            "VpcConfig": {
                "SubnetIds": [],
                "VpcId": "",
                "SecurityGroupIds": []
            },
            "MemorySize": 128,
            "RevisionId": "00000000-0000-0000-0000-000000000000",
            "CodeSize": 111111,
            "FunctionArn": "arn:aws:lambda:ap-northeast-1:000000000000:function:hoge:$LATEST",
            "Environment": {
                "Variables": {
                    "NODE_ENV": "production"
                }
            },
            "Handler": "index.handler",
            "Role": "arn:aws:iam::000000000000:role/lambda-basic-role",
            "Timeout": 180,
            "LastModified": "2018-11-01T19:00:00.000+0000",
            "Runtime": "nodejs6.10",
            "Description": "ホゲ"
        }
    ]
}

これで、hoge という Lambda 関数のバージョンをリストアップできる。Versions 配列の中に一つだけだけど、複数バージョンがあると要素が増えていく。
Latest の情報を取得してみる。

$ aws lambda get-function --function-name hoge
{
    "Code": {
        "RepositoryType": "S3",
        "Location": "https://awslambda-ap-ne-1-tasks.s3.ap-northeast-1.amazonaws.com/snapshots/000000000000/hoge<SNIP!>"
    },
    "Configuration": {
        "TracingConfig": {
            "Mode": "PassThrough"
        },
        "Version": "$LATEST",
        "CodeSha256": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=",
        "FunctionName": "hoge",
        <SNIP!>
    }
}

Code の Location の URL からコードをダウンロードできる。
特定バージョンの情報を取得するには、$ aws lambda get-function --function-name hoge --qualifier 3 のように qualifier オプションを使う。

取得する

実際の取得は wget で。

Raspberry Pi Model B

転がっていた Raspberry Pi Model B を動かす。

公式からRASPBIAN をダウンロード。トップから DOWNLOAD → RASPBIAN で進む。
デスクトップ版と LITE 版があるので、(諸般の事情から)デスクトップ版をダウンロードする。ベースは Debian Stretch。2018-10-09 にリリースされたバージョンを使う。

SD への書き込みは Windows 上で行った。ダウンロードしたファイルを 7ZIP で展開。Etcher を使って SD に書き込む。3 分くらいで書き込み完了。ベリファイ入れて 5 分くらいか。

RasPi に SD を挿して、HDMI を繋いで、Ethernet を繋いで、当然キーボードとマウスを繋いで起動。初期設定を行って(Country で Japan を選択したら、表示が日本語に、キーボードも日本語配列になった)、再起動。

/etc/dhcpcd.conf を編集。

interface eth0
static ip_address=172.16.XXX.XXX/24
static routers=172.16.XXX.XXX
static domain_name_servers=8.8.8.8 4.4.4.4

を追記して、IP アドレスを静的に設定する。

とりあえず、ここまで。

Campaign URL Builder のパラメタ

utm_source (Campaign Source)
「検索エンジン」「ニュースレター名」またはその他のソースを識別するもの。
utm_medium (Campaign Medium)
「電子メール」「クリック単価」などの媒体を識別するもの。
utm_campaign (Campaign Name)
キーワード分析に使用。「特定の製品プロモーション」「戦略的キャンペーン」を識別するもの。
utm_term (Campaign Term)
有料検索に使用。広告のキーワードを記録する。
utm_content (Campaign Content)
A/B テストやコンテンツターゲット広告に使用。同じ URL へリンクされている広告を区別する。

d-20180913

本 〜Dockerによるアプリケーション開発環境構築ガイド〜

購入予定。重そうだから Amazon で買うか。

ザック 〜MAGFORCE: Super Falcon〜

MAGFORCE のバックパック、Falcon2 だとちょと小さいかも(幅)。15 インチ MacBook Pro の奥行が 22cm ほどでいっぱいいっぱい。Super Falcon なら安心。
しかし、MacBook Pro を持ち歩くのがキツいので、13 インチのノパソを持ち歩くようにすると Falcon2 でも良いか?