- 1. CognitoユーザープールにAWS SDK for JavaScript v3でアクセス その2 – ユーザ登録
- 2. TypeScriptでコマンドラインパラメーター解析
- 3. Node.jsでハッシュ値を生成する
- 4. Node.jsからLighthouseを使用して認証付きサイトを検証する方法
- 5. Socket.io学習① 簡単なチャットアプリの構築2
- 6. UbuntuにNode.js LTSをインストールする方法
- 7. Socket.io学習① 簡単なチャットアプリの構築1
- 8. CognitoユーザープールにAWS SDK for JavaScript v3でアクセス その1 – ユーザ一覧取得
- 9. CircleCI に登録している secrets を確認する
- 10. オンラインゲーム開発に向けて
- 11. GridDBを用いた小惑星の地球への距離の解析
- 12. 【Firebase】エミュレーターの忘備録
- 13. Rails(6系)のマイナーバージョンを上げる手法(メモ)
- 14. AWS SDK V3 のSNS(Simple Notification Service)で、いくつか動作確認した話(AWS SDK V2 → V3 移行Tips)
- 15. node.jsでalexaスキル その4
- 16. AWS LambdaでSSM RunCommandを実行する(AWS SDK for JavaScript v3)
- 17. Webサイトを「100デバイス」以上でチェックできるスクリーンキャプチャー・ツール作った#1
- 18. Notionを操作するシンプルなRaycast 拡張機能を作って色々学んだ
- 19. dockerでnodeを立ち上げる
- 20. AWS Lambda Node18.xでSystem Manager(Paramter Store)にアクセスする方法
CognitoユーザープールにAWS SDK for JavaScript v3でアクセス その2 – ユーザ登録
https://qiita.com/pilot/items/df8f3091e5ed0e35b4b4
の続き
# Cognitoクライアントの設定確認
1. AWSコンソール→Cognito→MyUserPool→アプリケーションの統合タブ→MyAppClient
1. クライアントIDとクライアントシークレットをメモ ★1# 登録メール受取用gmailアカウント
今回はCognitoから送られるメールについてなりすましとみなされる件(メールのFromのドメインと実際の送信元IPアドレスが異なる)の対応は行わない
そのため、例えばdocomoメアドだとメールを受け取れない
gmailだったら受け取れるのでgmailアカウントを用意する (新規でも既存でも良い) ★2# ユーザ登録 (メール送るまで)
1. 作業フォルダに以下のファイルを作成 → 使用クラス https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cognito-identity-provider/classes/signup
TypeScriptでコマンドラインパラメーター解析
Node.jsのCLIなツールをいくつかTypeScriptで作っています。
毎回コマンドラインパラメーターの解析が似たような処理になるので、関数にして使い回していました。
せっかくなのでパッケージとして公開しています。
– [optionalist](https://www.npmjs.com/package/optionalist)
## 特徴
– コマンドラインパラメーターの解析として、当然指定されたパラメーターの情報に合わせて解析します。
TypeScript用なので解析結果は指定した名前と型のプロパティを持つオブジェクトとして返します。
このときのオブジェクトの型は可能な限り指定されたパラメーターの情報を反映したものにしてあります。
– 指定されたパラメーター情報からヘルプ用の文字列を生成します。
CLIに指定されたパラメーターにエラーがあれば自動的にヘルプ用文字列を表示するようにもできます。
– プロパティの型情報にはパラメーターのヘルプ用の文字列や制約などの情報を載せています。`VS Code`などの型を表示してくれるエディターであれば、プロパティに
Node.jsでハッシュ値を生成する
Node.js でSHA1, SHA256のハッシュ値を作成するには、[Web Cryptography APIのdigest メソッド](https://w3c.github.io/webcrypto/#subtlecrypto-interface)を使用します。
もう一つの方法は、[Node.js の Crypto モジュールのcreateHash メソッド](https://nodejs.org/api/crypto.html) を使用します。
## サンプルプログラム(Web Cryptography API版)
SHA1, SHA256アルゴリズムでハッシュ値を生成し、出力するプログラムです。
“`javascript
//Web Crypto APIを使用した場合
const { subtle } = require(‘crypto’).webcrypto;subtle.digest(‘SHA-1’, ‘Hello World’).then(function(result) {
const hex = Buffer.from(new Uint8Arr
Node.jsからLighthouseを使用して認証付きサイトを検証する方法
## 目的
Node.jsからLighthouseを使って認証付きサイトの測定を自動化しようとして色々調べていたが、情報が散らばっていて構築するのにすごく手間がかかったので、メモがてら残しておく## 環境
nodeがインストールされていることが前提
node v16.13.1## 準備
まずは`Lighthouse`とブラウザ操作をするために`Puppeteer`、パスワードなど環境変数を使用するために`dotenv`をインストールする“`
npm install lighthouse
npm install puppeteer
npm install dotenv
“`## Node.jsで動かすためのコード
.envやコンフィグファイルを使用して、ユーザー名やパスワードをフォームに入力し、狙いのURLをLighthouseで検証するコードは以下となる。
Basic認証を通している。“`lighthouse.js
const fs = require(“fs”);
const puppeteer = require(“puppeteer”);
cons
Socket.io学習① 簡単なチャットアプリの構築2
前回の続きを書いていく。
“`
const express = require(“express”);
const app = express();const http = require(“http”);
const server = http.createServer(app);
const { Server } = require(“socket.io”);
const io = new Server(server);const PORT = 5000;
server.listen(PORT, () => console.log(`server is running on ${PORT}`));
“`この部分の解説をしていく。
const なになに という部分ではインストールしたモジュールをインスタンス化している。インスタンス化は分かったつもりにはなるが意外と説明するのは難しい概念である。
一応、インスタンス化は何なのか調べてみる。調べてみると、オブジェクト指向で出てくる表現の1つでクラスから実体を作ることと書かれている。
自分なりの噛み砕き方で説
UbuntuにNode.js LTSをインストールする方法
UbuntuにNode.jsのLTS版をインストールする方法を個人的なメモとしてここに置いておきます。
2023年1月13日現在、LTS版は、v18.xになります。“`
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash – &&\
sudo apt-get install -y nodejs
“`
Socket.io学習① 簡単なチャットアプリの構築1
マルチプレイのオンラインゲーム開発に向けてsocket.ioの勉強をしている。
その中で見つけた良い参考動画がこちらこれを参考にして簡単なチャットアプリを構築しつつ、socket.ioとnode.jsの勉強をしていこうと思った。
まず、ネックになるのはそもそもnpmが何なのかである。
node.jsなどを始める際に必要になるパッケージ管理システムであるがそのインストール方法は複雑に見えた。
さらにMacについての説明は多く見られたがWindows用を探すのにも一苦労した。結局こちらのサイト
https://zenn.dev/antez/articles/a9d9d12178b7b2
を参考にしてインストールした。割と簡単で
https://github.com/coreybutler/nvm-windows/releases
こちらのサイトからインストーラー(nvm-setup.zip)をダウンロードして実行すれば良い。
そうすれば最低限の動作はするようになった。
そして、
CognitoユーザープールにAWS SDK for JavaScript v3でアクセス その1 – ユーザ一覧取得
https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cognito-identity-provider/index.html
を使用してみる
Windows 11にて
Cognitoの設定は
・ユーザ名はメアド
・SMSは使用しない
・メアド・パスワードのみ保持 (他に必要なユーザ属性あれば別DBに保持)
とするユーザ一覧取得はCognitoのクライアントとしての接続方法は見つけられず、IAMでのアクセスとなる
(実案件ではCognitoのメンテナンス目的でしか使わないかも、しかし今回は最初の一歩ということでここから始めてみることとする)# AWS Cognitoユーザープール
1. aws.amazon.comにサインアップ/ログイン
1. コンソールのホームからCognitoサービスへ移動
1. [ユーザープールの管理]押下
1. [ユーザープールを作成する]押下
1. ステップ1 サインインエクスペリエンス
1. サインインオプション:Eメールのみ
1. 他:デフ
CircleCI に登録している secrets を確認する
## はじめに
最近、 CircleCI に登録していた secrets を確認することがありました。
CLI tool の [CircleCI-Env-Inspector] が公開されていたのでその使い方を記載します。## [CircleCI-Env-Inspector] について
CircleCI に登録している secrets を出力する Node.js 制の CLI tool です。
https://github.com/CircleCI-Public/CircleCI-Env-Inspector
出力出来る secrets は以下 3つです。
– Organization に定義する “Context variables”
– Project に定義する “Project environment variables”, “Project SSH keys”### 準備
[CircleCI-Env-Inspector] を実行するためには以下が必要です。
– (必須) CircleCI Personal API Token
– Docker, Shell
オンラインゲーム開発に向けて
エンジニアになるために友人とゲーム開発をする計画を立てているが、全くの無知からのスタートである少しの段差でも躓いている。
ゲームと言ったらやはりオンラインでマルチプレイが出来るものを想像する。
友人と計画したゲームはネプリーグであるクイズに対して複数人で1文字ずつ答えるというマルチプレイを想定したものだ。はじめはUnityでの実装を考えたが、Unityは多機能なゲーム開発が可能な分オンラインゲームを最初に開発しようと言うのは中々に愚かな話だ。
そこで、socket.ioを用いてJavaScriptで開発するという手段を取ることにした。
この手段に至る理由は大きく3つである。
・JavaScriptの学習が容易であるという点。
・我々が作成するゲームがJavaScriptで十分作成可能であるという点。
・socket.ioは比較的日本語の情報があるという点。友人と私はJavaScriptの学習を済ませたばかりである。また、1から学ぶのはモチベーションにつながらない。
Unityは後々学ぶにしても1回ゲームを作りたいのである。
我々が目指すゲームが複雑な処理が不要であり、J
GridDBを用いた小惑星の地球への距離の解析
今回は、小惑星が地球にとって危険かどうか、つまり、軌道を外れて地球に降り、住民に危害を加えるかどうかを科学者がどのように判断しているかをGridDBを使って解析してみます。
ソースコードの全文はこちらでご覧いただけます。
## GridDBを使ったデータセットのエクスポートとインポート
GridDBは、高いスケーラビリティと最適化を実現したインメモリNo SQLデータベースで、特に時系列データベースにおいて、より高いパフォーマンスと効率性を実現するための並列処理を可能にします。今回はGridDBのnode jsクライアントを使用し、GridDBとnode jsを接続し、リアルタイムにデータをインポートまたはエクスポートすることができます。
これらは、我々のデータセットに存在する列です。
1. id : NASAの科学者がつけた小惑星のID。
2. new_name : NASAの科学者がつけた小惑星の名前。
3. est_diameter_min :
【Firebase】エミュレーターの忘備録
# 忘備録の趣旨
僕は普段、仕事のプロジェクトではReact NativeとFirebaseを使って開発を行っています。
React NativeとFirebaseを使って開発を行うときは、FirebaseのエミュレーターであるFirebase Local EmulatorSuiteを使って開発を行います。
この記事では、どのようにローカルでエミュレータを起動しているかと、どのようにアプリからエミュレータに接続するのかを、将来の自分のためにまとめようと思います。
# Firebase Local EmulatorSuiteを起動する手順
まずは、プロジェクトをビルドします。
“`shell
yarn build
“``GOOGLE_APPLICATION_CREDENTIALS`環境変数に、サービスアカウントファイルのパスを指定しながら、`firebase emulators:start`コマンドを実行してエミュレータを起動します。
“`shell
GOOGLE_APPLICATION_CREDENTIALS=’./path/to/serviceAccountK
Rails(6系)のマイナーバージョンを上げる手法(メモ)
# はじめに
筆者の環境は以下のとおりです。(テンプレート)
・VSCodeを使用(CLIでWindows Terminalを利用する場合があります)
・Windows10にてWSL2でUbuntu20.04LTSを使用
・Bash、Git、asdfを使用Rails6.0系からRails6.1系にマイグレーションする際、職場の先輩から教わった
Ruby(+bundler再インストール)及びNode.js(+yarn再インストール)のアップデート
+Railsマイグレーションの流れをメモ書きします。あくまで __メモ書き__ なので過度な期待はしないでください。
■バージョンの呼称方法例
・〇〇(ツール名) XX(メジャー).XX(マイナー).XX(パッチ)■バージョン読み方参考サイト
https://dev.classmethod.jp/articles/versoning-with-pictures/
## 共通する注意点
・「環境の変更」というリスクが高い作業を行うため、gitで管理している場合に
main(master)ブランチやdevelopブ
AWS SDK V3 のSNS(Simple Notification Service)で、いくつか動作確認した話(AWS SDK V2 → V3 移行Tips)
# はじめに
https://qiita.com/Syoji_Yonemoto/items/f96a4d10b05715e95d1c
引き続いて、今度は、SNS(Simple Notification Service)についても確認しました。
と言っても、それ程、確認したメソッドは多くありません。# 結論
SNS(Simple Notification Service)に関しては、私が普段使うメソッド群については、問題ありませんでした。
やはり、Firehoseだけが罠だったのでしょうか、、、# V2 と同じ使い方で問題なく動作確認できたメソッド
+ subscribe
+ publish# 余談
subscribeが、「何故あるのか?」というネタ話。その昔、SNS(Simple Notification Service)にLambdaをsubscribeするのに管理コンソールからは、「一覧に表示された100件の中からしか選択できない。」というイケてないUIだった時代があって、LambdaからARNを指定して、subscribeを追加するという運用をしていた時期が
node.jsでalexaスキル その4
# 概要
node.jsでalexaスキル、やってみた。
練習問題やってみた。# 練習問題
dynamodbを、使え。# サンプルコード
“`
const LaunchRequestHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === ‘LaunchRequest’;
},
async handle(handlerInput) {
const attributesManager = handlerInput.attributesManager;
const attributes2 = await attributesManager.getPersistentAttributes() || {};
let counter = attributes2.hasOwnProperty(‘counter’) ? attributes2.counter : 0;
let speakOutput
AWS LambdaでSSM RunCommandを実行する(AWS SDK for JavaScript v3)
# 概要
LambdaからSSMのRunCommandを実行する処理の作成方法について記述します。言語は`JavaScript`でSDKのv3(バージョン3)で書いてあります。v3では、サービスのインスタンスを作成して、非同期で`send`メソッドを呼び出すというのが全サービス共通の書き方になります。`send`メソッドはPromise型を返します。何のアクションを行うかは`send`メソッドの引数の型によって判断されます。
## 公式ドキュメント
https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/
# サンプルプログラム
## 処理の流れ
SSMClient生成 → SendCommandCommand生成 → send実行 → ListCommandsCommand生成 → send実行 (RunCommandが終了するまで繰り返し) → send実行 → send実行 → …
注意点としては、RunCommandを実行した後その処理がサーバーで正常終了したのか異常終了したのかすぐにわからない点です。R
Webサイトを「100デバイス」以上でチェックできるスクリーンキャプチャー・ツール作った#1
普段、大学やプログラミングスクール等で教えてたりするのですが、
**「 1週間で何か作るっていう課題 」**
を学生にも出してたりします。私もやってみる!というスタンスで作ってみました。
創ることの大切さを改めて認識しました。以下スクリーンショットです。URLも掲載しております。
サイト名は「 Web shot!! 」
上記で**URLと機種**を選択してポチ、っと少し待つと以下のように表示されます。
いくつか実行した例をお見せします?**例)「デジタルハリウッド・オンライン」のサイトをスクショしてみました**
【表示】PCブラウザ ZOOM:100%
Notionを操作するシンプルなRaycast 拡張機能を作って色々学んだこんにちは、Androidエンジニア志望のHalkoです。
最近、Raycastというランチャーツールを使用し始めました。
Raycastは自分で拡張機能を保存できます。
そこで、普段Notionに記録している作業記録を、Raycastから保存できるような拡張機能を作ってみました。# 準備
インストールすべきもの
– Raycast 1.26.0 またはそれ以上のバージョン
– Node.js 16.10 or またはそれ以上のバージョン
nvmのインストールが推奨されているようです
– Visual Studio Codeをコードエディタとして使用します。## 新しく拡張機能を作る
Raycastを開いて、create Extensionと入力します
作成画面が出てくるので、
dockerでnodeを立ち上げる
Dockerに関しては業務である程度触ってはいるが、自分で立ち上げたことはなかったため、やってみることにした。
expressを利用したプロジェクトのディレクトリの作成から、Dockerfileを使ってdockerイメージを作成するところまで。### Dockerfileとは?
Dockerイメージを構築するために必要なコマンドを記述するファイル。
– 「使用するnodeのバージョン」「Dockerイメージ内に作成するファイル」などのコマンドを記述する。
– `docker build –tag [name-tag] .` (`[name-tag]`は任意のタグ名)を実行すると、`Dockerfile`に記述されたコマンドを上から1つずつ実行し、Docker イメージを作成してくれる。### 手順
1. プロジェクトのディレクトリを作成する。
1. 作成したディレクトリ下に`server/src/index.ts`を作成する。
1. `cd server`でディレクトリを移動した後、 `npm init -y` を実行して `package.json`を作成する。
1.
AWS Lambda Node18.xでSystem Manager(Paramter Store)にアクセスする方法
### はじめに
AWS Lambda, Node.js(18.x), System Manager(Paramter Store)で簡単なサーバーレスバックエンドを構築した時、Node.js 16.x以前とParamter Storeにアクセスする記述が変わったので変更点をまとめます。
—
### 対象となる読者
– AWS Lambda初心者の方
– AWS System Manager初心者の方—
### Lambda実行環境
– Node.js 18.x
—
### ポリシーの作成とLambda関数の実装
AWS LambdaのデフォルトではParamter Storeにアクセスする権限がありません。そのためParamter Storeにアクセスするにはポリシーを設定し、そのポリシーを対象のLambda関数にアタッチ(権限付与)する必要があります。以下はParameter Storeにアクセスするポリシーのサンプルです。
“`
{
“Version”: “2012-10-17”,
“Statement”: [