- 0.1. Tektonを使ってAppsodyで作ったNodejsアプリケーションをK8sにデプロイする。
- 0.2. Tektonを使ってAppsodyで作ったNodejsアプリケーションをK8sにデプロイする。(Tekton準備編)
- 0.3. Azure DevOps を社内 npm registry として使う時の Tips
- 0.4. Node.jsからFBX SDK Pythonを呼べるDockerイメージ作った
- 0.5. [Node.js]モジュール定義について整理(exports-require / export-import)
- 0.6. [JavaScript][Node.js]メモ:アロー関数の文法
- 0.7. Typescript Node.js メソッドの結果をキャッシュする
- 0.8. Node.jsとDynamoDBで日時データの処理
- 0.9. Node.js、Web Speech APIを使って音声認識を出力
- 1. 音声認識サンプル
- 1.1. WSL と VSCode と Windows Terminal でコマンドプロンプトにさようなら
- 1.2. Slackに匿名で画像を投稿できるようにした
- 1.3. Glitchが全く動作しない時または誤作動でコード変えても反応しないときの対処法
- 1.4. pre-commitとtextlintを使ってHTMLに潜むゼロ幅スペース文字や記号の表記ゆれを倒す
- 1.5. [JavaScript][Node.js]メモ:アロー関数の即時関数(関数を定義してその場で実行する)
- 1.6. DynamoDBでPromiseが使えた(Lambda Node.js)
- 1.7. Cannot find module 'express' | dockerでNode.js
- 1.8. Node.js(axios)からDiscordに通知を送るメモ
- 1.9. JavaScript: 変数の初期化では`undefined` と `null` のどちらを使うのがよい?
- 1.10. Microsoft Bot FrameworkをMicrosoft Azureにデプロイするチュートリアルをかみ砕いてみた
- 1.11. nvmを使ったNode.jsのバージョン管理
Tektonを使ってAppsodyで作ったNodejsアプリケーションをK8sにデプロイする。
さて、
[Tektonを使ってAppsodyで作ったNodejsアプリケーションをK8sにデプロイする。(Tekton準備編)](https://qiita.com/motuo/items/8d768175abcb077067dc)で、`Tekton Dashboad`の用意ができたら、いよいよ`Appsody`で作った`Node.js`のモジュールをデプロイしていきます。## 今回は私のリポジトリをクローンします。
“`sh
$ git clone https://github.com/motuo1201/appsody-test-build.git
$ cd appsody-test-build/
“`## 一度、ローカルで動かしてみましょう。
[こちらの記事](https://qiita.com/motuo/items/1cde634a010e9e1d7d5a)にも書きましたが、下記のコマンドでローカルの稼働が確認できます。“`sh
$ appsody run
……
[Container] App started on PORT 3000
“``
Tektonを使ってAppsodyで作ったNodejsアプリケーションをK8sにデプロイする。(Tekton準備編)
先日、[Appsodyを使ってNode.jsモジュールをK8sに簡単にデプロイする方法](https://qiita.com/motuo/items/1cde634a010e9e1d7d5a)を記事にしました。
この記事ではさらに踏み込んで、作成した`Node.js`モジュールを`Tekton`を使ってK8sにデプロイするCI/CDパイプラインを作ってみましょう!
まず、この記事では以下の環境に`Tekton`を準備するところから始めます。
**※前回と同様に環境はmac。docker for macで`Kubernetes`が有効であることが前提です。**## What’s Tekton?
ざっくりいうと、**Kubernetes上で稼働するクラウドネイティブなCI/CDパイプライン**となります。
代表的な使い方は、`Github`からソースコードを取得して、それを自動的にKubernetesへデプロイする、というところでしょうか。
詳細は本筋とは逸れるのであまり触れませんが、[Githubのリポジトリ](https://github.com/tektoncd/pipelin
Azure DevOps を社内 npm registry として使う時の Tips
社内開発フレームワークの npm package を管理するために、Azure DevOps の Artifacts がメンバー限定 npm registry として使える事が判った。
その設定を行った際に判ったことをメモ。## Azure DevOps の設定
* [Use packages from npmjs.com – Azure Artifacts | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/devops/artifacts/npm/upstream-sources?view=azure-devops)
に書いてある通りなのだが、サラッと言うと。
1. Azure DevOps にプロジェクトを作成し、Artifacts を選択
2. Create Feed で Feed を作成。名前は適当に、Visibility は “Member of” で。”Upstream Source” もチェックを入れる。
3. 右上のギアアイコンをクリック → Upstream sou
Node.jsからFBX SDK Pythonを呼べるDockerイメージ作った
# Node.jsからFBX SDK Pythonを呼べるDockerイメージ作った
とある事情により、Node.jsからFBX SDK Pythonを呼ぶ必要があったので、Dockerイメージを作りました。作ったDockerイメージは以下に公開しました。
https://hub.docker.com/r/seguropus/fbx-sdk-python-nodejs# サンプルコード
サンプルコードを以下に置きます。
https://github.com/segurvita/docker-fbx-sdk-python-nodejs# サンプルコードの使い方
“`bash
# Dockerイメージをビルド
docker-compose build# Dockerコンテナを起動
docker-compose up
“`これで、以下のような表示が出れば成功です。
“`
fbx-sdk-python-nodejs | # FBX SDK can read the following formats.
fbx-sdk-python-nodejs
[Node.js]モジュール定義について整理(exports-require / export-import)
## はじめに
あるファイルに定義した関数等を別のファイルで使いたいときにどうするか。Node.jsでは二つのやり方がある。
1. exportsで公開してrequireで読み込む(CommonJS)
2. exportで公開してimportで読み込む(ES2015)**常に使えるのは1の方法。Babelを使うなら2の方法でも可能。**
どちらを選んでもメリット・デメリットがあるわけではない(と思う)ので、お好きなほうで。個人的には、常に使える1の方法がいいような気がしている。
## 使用例
### exportsで公開してrequireで読み込む(CommonJS)
#### 一つの関数だけをエクスポート
“`javascript:module.js
// 関数を定義
const f = () => {
console.log(‘Hello!’)
}// 関数を公開
module.exports = f
“`“`javascript:client.js
const f = require(‘./module’)
f() // Hello!
`
[JavaScript][Node.js]メモ:アロー関数の文法
アロー関数(ES2015)の書き方。
“`javascript
f = () => console.log(‘Hello!’)
f() // Hello!
“`“`javascript:評価した値を返す
// 式(Expressions)の評価結果が戻り値になる
sum = (a, b) => a + b
r = sum(1, 2)
console.log(r) // 3
“`“`javascript:returnで値を返す
// {}で文(Statements)を作り、returnで値を返す
sum = (a, b) => {
return a + b
}
r = sum(1, 2)
console.log(r) // 3
“`“`javascript:引数のカッコを省略
// 引数が一つの時のみカッコを省略可能(0個もしくは2つ以上のときは省略不可)
say = word => console.log(word + ‘!’)
say(‘Yeah’) // Yeah!
“`“`javascript:即時関数
(() => console
Typescript Node.js メソッドの結果をキャッシュする
## 背景
APIの結果を指定した時間キャッシュさせたかったので、シンプルにキャッシュできるクラスを自前で実装する。
## 使用ライブラリ
* ioredis
* zlib## 実装
“` typescript
import ioredis from ‘ioredis’
import zlib from ‘zlib’class Client {
private redis: ioredis.Redis = new ioredis(‘redis://exammple:6379’)async fetch
(key: string, func: () => Promise , expire): Promise {
const cached = await this.redis.get(key)
// キャッシュがあれば、解凍して返却
if (cached) {
const cacheString = await new Promise((resolve, reject) =>
zli
Node.jsとDynamoDBで日時データの処理
#DynamoDBに日時データを持たせる2つの方法
1. データ型を`String`にして`2016-02-15`や`2015-12-21T17:42:34Z`のように文字列で持たせる。
2. データ型を`Number`にして`1579740176030`のように数値で持たせる。2.項のNumber型の実用例としては、エポック時間 (1970 年 1 月 1 日の 00:00:00 UTC 以降の秒数) を利用することができる。([UNIXTIMEの詳細](https://ja.wikipedia.org/wiki/UNIX%E6%99%82%E9%96%93))
#Node.jsでエポック時間を扱う
##現在の日時をDateオブジェクトで取得する
“`javascript
const date = new Date();
console.log(date); // 2020-01-23T01:09:41.444Z
console.log(typeof date); // ‘object’
“`##現在の日時をエポック時間で取得する
“`javascript
Node.js、Web Speech APIを使って音声認識を出力
#概要
WebSpeechAPIを使用して聞き取った音声の文字おこしをブラウザ上に表示させます。#作成方法
1.WebSpeechAPIを含むhtmlフォルダの作成新規フォルダを作成し、その中にindex.htmlを作成。
“`html:index.html
音声認識サンプル
音声認識サンプル
“`
音声認識をするための処理をscriptタグ内に書いていきます。“`html:index.html