開発– category –
-
自宅サーバ/VPS/クラウド
nginx + certbot + Let’s Encrypt で TLSv1.0やTLSv1.1が無効化できない時
TLSv1.0やTLSv1.1は既知の脆弱性があるために、各種ブラウザでも対応が打ち切られています(参考「ついにTLS 1.0/1.1の無効化が決定!影響や確認・対応方法とは? | さくらのSSL」)。なので、もうサーバー側で対応する理由はないわけで、無効化する必要があるのですが、nginxの設定をなんぼいじっても無効化できないと思ったら、certbotでLe... -
プログラミング
Node.js 6 + http + Promise で複数のAPIを直列で順次実行する
2020年だが、Node.js 6を使う必要がある、標準モジュールを使わなくてはいけない、という制約下で複数のAPIを順番に実行していく必要がある場合のメモ。まぁ自分用のスニペット。 async / await は使えないのでPromiseで頑張る。async / await 使いたい。つらい。でもJavaScript使えるだけ有り難いといえばそう。 環境 node.js 6.11.0 標準の... -
自宅サーバ/VPS/クラウド
DynamoDB から DocumentClient で get() した StringSet型 の値を取り出す
AWS DynamoDBで使える型の一つに、StringSetがある。これは文字列の集合だ。JavaScriptでもES6以降にはSet型があるので、それと対応していればよいのだが、残念ながらしていない。 といっても、値を取り出すには、.values でアクセスすればよいだけ。というメモ。普段Python使っているのですぐに忘れる。 環境 node.js 12.20.0 aws-sdk 2.580... -
自宅サーバ/VPS/クラウド
AWS Lambdaでイベント起動した時にeventに渡されるパラメータあれこれ
AWSのLambda関数で、S3とかSNSとかのイベントで発火させる時に、event変数に渡されるパラメータのjson形式についてのまとめ。 CloudWatch Events 定期実行のやつ。 { "version": "0", "id": "xxxx", "detail-type": "Scheduled Event", "source": "aws.events", "account": "xxxx", "time": "2021-06-10T06:45:27Z", "region": "ap-northeast... -
自宅サーバ/VPS/クラウド
AWS Lambda (Python 3.8)から Amazon Elasticsearchを使う(LambdaはSAMで)
LambdaからAmazon Elasticsearchにクエリを投げるためのテンプレメモ。LambdaはSAMで用意するが、Amazon Elasticsearchのドメインは事前に準備しておく。RuntimeはPython 3.8。Elasticsearchの接続にはelasticsearchのモジュールを利用する。 権限周りとかけっこうたいへん。 前提条件 SAM CLI 1.6.2 LambdaのRuntimeはPython 3.8 今回はSNS... -
自宅サーバ/VPS/クラウド
AWS SAM CLIでSNSからLambdaを起動する(Python 3.8)、S3からSNSに通知する
AWS SAM CLIを使って、 SNS -> Lambda (Python3.8) 起動できるようなテンプレートのメモ。ついでに、S3のイベントでSNSに通知するような場合についても記述する。 環境 AWS SAM CLI 1.6.2 LambdaのRuntimeはPython 3.8 SNS -> Lambda node12.xだとSNS起動のテンプレートが用意されているのだが、Pythonでは用意されていない。まぁだい... -
電子工作/ハードウェア
LoRaWAN 1.0.2 の Confirmed な message の仕様メモ
LoRaWANにはConfirmedとUnconfirmedなUplinkないしDownlinkがある。Confirmed、ということはつまりACK応答を確認するということだが、それはつまり具体的に何をしているのかのメモ書き。LoRaWAN Specification 1.0.2 に基づく。 ざっくり概要 仕様書から読み取れることをざっくり書くと以下。なお( )内は仕様書のセクション番号。 LoRaWANで... -
自宅サーバ/VPS/クラウド
Grafana on EC2 で Let’s Encrypt 使ってSSL
AWSでGrafana用のEC2インスタンスをたてている。AWSならば、ELB経由にすると、ELBにACMで発行した証明書を割り当てられて楽なのだが、今回は漢のEC21本立ちなので、Let's Encrypt を使って発行することにした。 grafana-serverでcertbotコマンドがうまくいかなかったので、nginxのリバースプロキシ機能を使い、nginx経由にしている。 環境 AW... -
自宅サーバ/VPS/クラウド
httpでPOSTする受け口をSAM CLI + API Gateway + Lambdaで作る
httpで何かPOSTしてその内容を確認したい時がある。しかしそのためだけにわざわざWebサーバーたてるのも面倒。ということで、API Gateway + Lambdaでさらっと確認できるようの受け口を作りたい。 SAM CLIを使って構築する。楽。 環境 macOS 10.15.4 AWS SAM CLI 0.47.0 Python 3.8 どうでもいいけどほとんどクラウド環境になってくると、ロー... -
自宅サーバ/VPS/クラウド
DynamoDBで多対多のテーブル設計
DynamoDBの設計を始めてからたいていの人が引っかかるであろう、DynamoDBにおける多対多(many-to-many relationship)の対応について、つらつらとメモする。 AWSのドキュメントにベストプラクティスがあるので、それについて書き連ねるだけではある。 DynamoDBの2番目くらいの壁 ウキウキしながらDynamoDBを始めた後、だんだん「あれ?これク...