ライブラリインストール
pip install xxx -t ./
-t でライブラリのインストール場所を指定。
ライブラリを含めLambdaにアップロードするのに圧縮する。
$ zip -r app.zip *
一度ライブラリをアップすれば、AWSのコンソールから必要なコードのみ編集してもOK。
Web、スマホアプリの開発、その他個人的なこと
ライブラリインストール
pip install xxx -t ./
-t でライブラリのインストール場所を指定。
ライブラリを含めLambdaにアップロードするのに圧縮する。
$ zip -r app.zip *
一度ライブラリをアップすれば、AWSのコンソールから必要なコードのみ編集してもOK。
Spring Boot でWebアプリを開発していて、少し規模が大きくなり複数のAppサーバーを使用するときにいくつか課題がある。
その一つとしてセッションの問題がある。
Spring Bootではデフォルトでセッションをサーバー側に保存するため、複数のサーバーを使用する場合、クライアントが異なるサーバーにアクセスするとセッションを維持できない。
そこで複数のサーバーで共有するなど、解決方法はいくつか考えられる。
「1.」 は良い方法ですが、セッション情報を保存するサーバーの運用、性能、冗長性など余計な管理が増えてしまう。
「2.」 は容易に実現できるが、同一のAppサーバーにアクセスする必要があるので、増減を動的に行うのが難しい。
そこでセッション情報をcookieのようなクライント側に保存する方法が良いのではと思う。
例えばPlay frameworkではセッションの実態はcookieを使用している。
https://www.playframework.com/documentation/2.6.x/SettingsSession#Configuring-the-session-cookie
これをSpring Bootで実現するときに参考にしたサイトをメモ。
http://www.svlada.com/jwt-token-authentication-with-spring-boot/
https://qiita.com/nyasba/items/f9b1b6be5540743f8bac
まずはサインアップ。Google、Facebookアカウントで認証できるようです。
Notifications を検索。
専用のスマホアプリをインストールすれば、スマホに通知がされるようです。
ひとまずテキストだけ送信できれば良いので、Send a notification from the IFTTT app を選択。
{{OccurredAt}} [{{EventName}}] Value1= {{Value1}}, Value2= {{Value2}}, Value3= {{Value3}}
Finish
AppStoreからアプリをインストールしてログインする。
サーバー側の処理が不要なら、EC2でサーバーを立てずにS3 + CloudFrontでサイトを構築する。
作成したバケットの、
アクセス権限 > バケットポリシー > バケットポリシーエディター
に下記を入力して保存。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::{バケット名}/*"
}
]
}
確認用にhtmlファイルでもバケットにアップロードしておく。
Origin Domain Name でS3に作成したバケットを選択。
Default Root Object にアップロードしたhtmlファイルを指定。
作成までに数分かかります。
S3上でファイルを更新してもキャッシュのおかげで、すぐに変更が反映されません。
キャッシュを削除するには対象DistributionのInvalidatinsから削除したいキャッシュのPathを指定して作成。
存在しないパスにアクセスするとAccessDeniedとなるので、ErrorPageを設定する。
403のときに404(Not found)として、適当なファイルにアクセスさせる。
この変更にも時間がかかるので注意。
型定義があるライブラリはここを参照。
ただ、そもそもない時の回避方法を考える。
無視する
該当の処理の前に、
// @ts-ignore:
型定義を作る
ただしく定義するのは大変なので、
declare module “{パッケージ名}” を記載した .d.ts を作成
declare
declare var xxx: any;
でany型として宣言してしまう。
原因は設定とかいっぱいあるが、その一つとして。
export default {
↓
export default Vue.extend({
created or mounted で行う。
export default Vue.extend({
・・・
created: function() {
・・・
},
mounted: function() {
・・・
}
https://qiita.com/mshrwtnb/items/9ec8e0dc7933b01c97f1
func xxx(srcFunction: String = #function) {
print("\(srcFunction)")
}
デフォルトパラメータにしているので、呼び出し元に影響がないので素晴らしい。