P3 クローリングとスクレイピング

・クローリング
 Webページのハイパーリンクをたどって次々にWebページをダウンロードする作業

スクレイピング
 ダウンロードしたWebページから必要な情報を抜き出す作業

P3 広義のREST

XML over HTTPやJSON over HTTPをREST APIと呼ぶ場合もありますが、RESTという言葉はもう少し厳密な定義が存在している。

本書ではこうした広義のRESTをRESTと呼ばないようにしている。

Web API: The Good Parts

Web API: The Good Parts

 

 

RDSのスナップショットからリストアする際の注意点

削除してからでないと作成できない

現在作成しているRDSに対して、リストアという事ができない。
そのため、事前に削除してから、再度リストアするしかない。
よって、設定値などが不明な場合は、予めメモなどを取ってから削除を行い、リストア作業を行った方がベター。

自動スナップショットは削除のタイミングで消えてしまう

RDSのインスタンス削除の際に警告は表示されるが、過去の自動バックアップで取得したスナップショットは削除される。
そのため、削除の際には基本的には手動バックアップ(final)を取得しておくのが無難である。

作成時はサブネットグループを確認する

サブネットとは別にRDSにはサブネットグループというサブネットを束ねる概念がある。
これは、各AZに対して、どのサブネットを割り当てるかを定めるもので、対象RDSインスタンスのマルチAZをoffにしても設定する必要がある。
リストアを選択しても、リストア前の設定値が当該項目は引き継がれずにデフォルト値が設定されている。
そのため、リストア時には前回と同じ値を設定できているか確認を行う必要がある。
また、RDSは異なるサブネットに移動できないため、割り当てるサブネットグループ自体は変更可能であるが、異なるサブネットを設定しているサブネットグループに変更しようとすると怒られてしまう。
よって、誤ったサブネットグループを選択してRDSインスタンスを立ててしまった場合は、一度削除を行い再作成しないといけない。。

(非マルチAZの場合)指定するアベイラビリティゾーンを確認する

マルチAZでない場合は、どちらのアベイラビリティゾーンを使うかでサブネットが異なる可能性があるため、設定するアベイラビリティゾーンは確認しておいた方がよい。

セキュリティグループを後で変更する

(私のやり方が悪いだけかもしれないが)リストアのタイミングではセキュリティグループを選択する事ができない。そのため、リストア後のセキュリティグループが想定と異なっているかどうかを確認し、異なるのであれば変更を行う必要がある。

変更時は即時チェックボックスを付け忘れないこと

一番下にあるチェックボックスを付け忘れてしまうと、メンテナンスタイミングまで変更内容が反映されない(多分)。
また、他の設定も変更を行う事ができない。
このような状態になってしまうと、一度インスタンスを削除して再作成するか、メンテナンスタイミングまで待つしかない(と思われる)。

curlコマンド経由でTomcatにデプロイを行おうとすると403エラー

[事象]
以下の様なコマンドをシェルで実行し、Webコンソール経由のTomcatマネージャーではなく、シェルスクリプトからTomcatに対してデプロイを行おうとした。

curl --upload-file contextName.war "http://manager:password@localhost:8080/manager/text/deploy?path=/contextName&update=true"

結果、以下の様な403エラーが発生した。

(中略)
Caused by:org.codehaus.cargo.container.tomcat.internal.TomcatManagerException:The username you provided is not allowed to use the text-based Tomcat Manager (error 403)

[原因]
実行ユーザーにmanager-guiの権限は与えていたが、manager-scriptの権限を設定していなかった。

[対応方法]
実行ユーザーにtextベースで実行する際のユーザー権限を付与する。

<tomcat-users>
 <user username="manager" password="password" roles="manager-gui, manager-script"/>
</tomcat-users>

[蛇足]
Jenkinsを導入している環境であったため、実はシェルを使わなくてもビルド後にTomcatへデプロイする処理をJenkinsに設定してやるだけで実は良かった…。

[参考URL]
martin.podval.eu
Rocky Jaiswal | Deploying Java applications with Capistrano

詳解 Tomcat

詳解 Tomcat

[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

P72 パッケージ一覧の保存

pip freezeコマンドを使用すれば、現在の仮想環境で使用しているパッケージの情報をファイルに書き出せる。
ファイル名は慣例として、requirements.txtがよく使われる。

requirements.txtファイルをソースコードと合わせてバージョン管理すればよい。

pip install -r reqirements.txtを実行することで、同一バージョンのパッケージをインストールした環境を用意できる。

P62 Python2系のEOLについて

2020年でサポート終了[PEP373]
Ptyhon2.8はリリースしない[PEP404]

入門 Python 3

入門 Python 3

P23 連番の作成

[頭全部に0,を付与]
:%s/^/0,/

[連番付与]
gvタイプ後、g Ctrl-aを実行