create-react-app で始めたプロジェクトで、pug を使う

create-react-app をして作ったプロジェクトで、pug を使う方法。 基本的なことなのだが、日本の記事があまりないようなので書くことにする。 pug の書き方 pugという関数でタグ付けされたテンプレートリテラルを使う書き方になる。テンプレート文字列 - Jav…

Paker で Chef を利用時、ライセンスエラー

Packer で type に chef-solo を指定時、コマンドが失敗するようになった。 これは、ライセンスの承諾が必要になったことが原因。 Chef Infra Client cannot execute without accepting the license Chef never successfully completed! Any errors should b…

Kubernetes を利用時、大きいデータサイズの画像を複数回POSTするとエラーが出る

Rails を用いて、画像アップロードをするシステムを作っていた時、画像を連続3回アップロードすると502エラーが出る場合があった。これは、メモリの使用量が大きくなり、pod 内のプロセスがkill されていたことが原因だった。 Ruby on Rails のメモリ消費が…

Android で スタティックライブラリを利用する

Android の開発時に、C++などで作られた 静的ライブラリ〜.a や、共有ライブラリ〜.so を利用したい時。まず、ビルド設定方法は1つではない。CMakeLists.txt を使う方法、Android.mk を使う方法と、やり方が選べる。また、 so ファイルは、アプリケーション…

Google Cloud Storage 静的ウェブサイトのホスティング 時、 index.html へリダイレクトされる

静的ウェブサイトのホスティング | Cloud Storage | Google Cloudgcs を利用し、 website をホスティングした時に、 スラッシュ無しのパスへアクセスしたとき、/index.html が存在する場合、/index.html が付加されたURLへリダイレクトしてしまう。 しかも、…

CloudFront の Origin に API Gateway を入れた場合に リダイレクトが発生する

API Gateway で API を作った場合など、そのURLをCloudFrontのOriginに指定したい時がある。その時に、Origin Protocol Policy を、HTTP Only にしていると、リダイレクトが発生する。HTTPS Onlyにする必要がある。

Vue のファイル出力先を変更する

Vue の デフォルトの出力フォルダは、dist フォルダになっているが、他のフレームワークと共に使うような時、出力先を変えたい場合がある。 さらに出力先を公開ディレクトリ(/public)のサブディレクトリ(/public/webview)にしたい場合の vue.config.js の設…

GKE Kubernetes で 、無料で https を利用する

GCPでは、https にて通信するための、マネージドな証明書を発行する仕組みがあるため、とても簡単に利用できます。 GKEで利用するためには、 Ingress に annotations を追加するだけです。 まずマネージドな 証明書を作成 $ gcloud beta compute ssl-certifi…

GKE Kubernetes で Redis を利用する

GCP で フルマネージドのインメモリ データストア を使いたい場合、Memorystore for Redis を利用することになる。Redis インスタンスに接続するためには、同じリージョンに配置され、同じネットワークを使用するGoogle Kubernetes Engine クラスタである必…

GKE Kubernetes で Ingress が 503 を返す

GKE を利用時に、GKE Ingress を利用した時に、どう考えても設定が正しいのに 503 が帰る場合があった。 注意しなければいけないポイントは、 ヘルスチェックのURLは200を返さなければいけない (当然BASIC認証もかかっていてはいけない) ヘルスチェックのURL…

GKE Kubernetes で CloudSQL を利用する

Cloud SQL を利用するためには、直接接続するのではなく、 Cloud SQL Proxy を利用します。 Cloud SQL Proxy は Docker image として公開されているため、こちらを使います。 Googleのドキュメント通りに設定すれば通信出来ます。 Pod 内に Proxy の Contain…

Mysql8.0 で パスワードを無しに設定したい場合

パスワードを空に設定しようにも、バリデーションが働き、空に設定できません。 バリデーション機能を無効化することで、自由なパスワードを設定できるようにします。 無効化 UNINSTALL COMPONENT 'file://component_validate_password'; 有効化 INSTALL COM…

ActiveJob で active_elastic_job を利用時、設定が反映されない

active_slastic_job を利用しているとき、Rails のバージョンを変更したところ、 I, [2018-10-12T16:21:11.029048 #653] INFO -- : [d8e52f46-4c12-40b5-ab99-f593f6306a95] Started POST "/" for 127.0.0.1 at 2018-10-12 16:21:11 +0000 F, [2018-10-12T16…

ActiveAdmin の update url に対して、ajax通信すると302リダイレクトし続ける

例えば 管理画面上の action ボタンで、データを更新できるようにした場合ですが、 ActiveAdmin.register Message do index do script do raw <<-'EOS' function censor(id, url){ var elem = document.querySelector('#message_'+id+' > .col-text > span')…

Carrierwave から ActiveStrage に乗り換えたときに、予想外だったこと

route の一番下に、404用のアクションを定義していると、画像が表示されない $ config/route.rb # ... get '*path', to: 'application#error_404' これは、active storage が定義する 以下よりも先に、上記が処理されているため。 get "/rails/active_storag…

Alexa 開発時、スキルの呼び出し名の変更が反映されない

2018/09/21現在、スキルの呼び出し名を変更しても、それだけでは反映されない。 ストアに公開するための認定時にも、古い呼び出し名のまま動作確認が行われてしまう。これを反映させるには、一度テストを無効にして、再度有効にすることで反映される。それに…

Mysql8 に接続できないとき

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) MariaDBと同じく、ログイン認証プラグインがかわり、現在のユーザーとmysqlにログインしようとしているユーザーが異なるとログインできない状態になっている。 そのま…

UPS Eaton IPP を利用する

Daitron の製品、無停電電源装置(UPS) イートン を CentOS 7 で利用するときの設定方法です。 Lenovo UPS 1000VA、UPS 1500VA は、EATON社製UPSです。CentOS 7.4 インストール手順 | 無停電電源装置(UPS) | イートン ここの説明で大体は大丈夫ですが、もっと…

Serverless Framework で、functions block に定義した 関数名を参照する

$ serverless.yml service: aws-nodejs # NOTE: update this with your service name provider: name: aws runtime: nodejs8.10 region: ap-northeast-1 stage: ${opt:stage, 'development'} ... functions: webApp: handler: 'handler.main' #name を指定し…

AWS 利用時に、HTTPS 通信する方法いくつか

ドメイン認証でよいのであれば、https で通信する時は、AWS Certificate Managerで証明書を取得し、CloudFront で選択すれば良いが、いろんな条件でそれが出来ないことがあるため、そのときの対処方法と問題点です。 AWS Certificate Manager で、CNAME を利…

AWS Mysql に IAM Role で接続する

MySQL 5.6 マイナーバージョン 5.6.34 以降、MySQL 5.7 マイナーバージョン 5.7.16 以降、Amazon Aurora 1.10 以降 で対応している。ただし、1秒間あたりの接続開始の認証回数が20回と少ないため、アクセスの多いシステムでは採用できない。 IAM データベー…

最近 Apple の審査でリジェクトされた時の対応方法

Guideline 2.1 - Information NeededWe have started the review of your app, but we are not able to continue because we need access to a video that demonstrates Audio on background your app in use on a physical iOS device.Please ensure the vi…

CloudFront の CNAME は、サブドメインであれば実質2個まで同じドメインが指定可能

CloudFront の CNAME の設定は、全CloudFrontでユニークにしなければなりませんが、 CloudFront の CNAME には、ワイルドカードでも指定できるため、 *.testdomain.test と www.testdomain.test で 2つ登録すれば、実質、同じドメインが指定できます。ただし…

一般提供された CloudFront lambda@Edge で、Basic認証を設定する

preview と 仕様が変わっています。nodejsは6.10を選ぶ必要があり、headers の構造も変わっていました。 Cloudfrontのarn指定に、lambda を version がなければいけないのも、なかなかめんどくさい変更です。 あとは、role の設定も面倒ですが、一旦書きませ…

CloudFront にCloudFront を入れるときの注意点

CloudFront は、Request header に含まれる Hostの値が、CloudFrontに設定されたCNAMEと一致していないとレスポンスを返さない。 CloudFrontに設定されたCNAMEは、すべてのCloudFrontで2つ同じCNAMEを設定できない。Behavior の Forward Headers は、Host を…

mysql5.7 の 注意点 (< 5.7.11)

RDS 上で mysql 5.7 を使うときに覚えておかなければならないことは一つで、default_password_lifetime この値が、5.7.10 以下の時、360 になっています。 SELECT @@default_password_lifetime; つまり360日で期限切れになりログインできなくなります。RDS …

Route53 で Domain name status code がブランクな場合

jp や、io のドメインで確認しましたが、Domain name status code がブランクのままになるドメインがあります。 whois コマンドで、 [状態] Active となっていれば、気にせず安心して良いと、AWSに回答いただきました。

CloudFront lambda@Edge で、Basic認証を設定する

S3+CloudFrontなど、サーバーレスでBasic認証をかける方法を何年も検討していたのですが、CloudFrontにLambdaを割り当てられるようになり、試したところ実装することがで来ました。まだPreview版ですが、フォームから申請することで、数日で許可が得られます…

SES でメール送信時にリジェクトされる

Net::SMTPFatalError: 554 Message rejected: Email address is not verified. The following identities failed the check in region US-EAST-1 ActionMailer で送信した例だが、このようにメール送信がデフォルト状態だと出来ない。 Your Amazon SES accou…

Lambda@Edge を利用し、Cloudfrontに設定ようとしたとき、エラーが表示される

There was an error creating the trigger: Completing this action would cause the maximum number of distributions with Lambda function associations per owner to be exceeded (maximum allowed is 0). Lambda@Edge は現在プレビュー版となっており、…