diary凡人の凡人による凡人のための備忘録この広告は、90日以上更新していないブログに表示しています。手順をすっかり忘れていたので、備忘録としてここにまとめておきます。www.npmjs.comnpmデベロッパー登録まずはこちらのサイトでnpmデベロッパーの登録を行います。https://www.npmjs.com/signup必須な入力項目は下記3つです。いうURLになるので後悔のないユーザ名にしましょう。いうnpmの最新情報を流してくれるメールマガジンに登録するかどうかなので、最新動向に興味があればチェックします。https://registry.npmjs.org/.Git/GitHubリポジトリの準備npmパッケージの公開元になるソース管理をGit/GitHubで行います。ここで注意が必要なのですが、npmでは大文字が使えないので、名称を合わせたい場合はリポジトリ名に気をつけてください。package.json作成Gitリポジトリをnpm管理下とするためにpackage.jsonを作成します。initで作成しても、ファイルを直接用意してもかまいません。ここで記述した内容がサイトにも公開されるので、情報に間違いのないように注意します。"ライセンスの種類"}それぞれの項目の意味や書き方は、こちらの公式ドキュメントを見れば明快です。取扱説明書ここでも1点注意が必要なのですが、既に公開済のパッケージと同じ名前にすることはできないので、事前にnpmサイトで検索して使われていないことを確認してください。パッケージの中身を作成・コミット公開したいパッケージの中身を実装します。README.mdにnpmのバージョンを表示させたい場合は、下記のようなバッジサービスを利用してURLを取得します。badge.fury.ionpmのバージョンを上げても、下記のような書き方にしておけばREADME上のバッジもしばらく後に反映されます。コマンドで、下記一連の流れを行ってくれます。更新してコミットgitのtagも同じバージョンで作成コマンドの最後に指定するバージョンはセマンティックバージョニングに準拠しています。(major|minor|patch)コマンド実行後、忘れずにGitHubにもタグ毎pushしておきます。--tagsパッケージ公開ついに外部公開します。コマンドでパブリックに公開します。公開したパッケージがnpmレジストリで確認できたらOKです。installも成功することを確認して完了です。publishの流れを辿ります。おわりにとても簡単に公開できるので、便利なツールは世界中の人にどんどん触ってもらってブラッシュアップしましょう。学歴も経験も関係ない。すべての評価はどれだけ家を売ったかだけ。大学を卒業して松尾が入社したのは不動産会社。そこは、きついノルマとプレッシャー、過酷な歩合給、挨拶がわりの暴力が日常の世界だった......。物件案内のアポも撮れず、当然家なかちっとも売れない。上司に「辞めてしまえ」と通告される。明確な定義はありませんが、ペンシルハウスとも呼ばれており、一般に約15坪以下の土地に建てられる住宅がそのように呼ばれています。正面から見るとえんぴつのように細長く見えるため、いくらか揶揄する意味を込めてそう呼ばれることがあります。容積を最大化するために建物は三階建てで、日照権の関係で多くは屋根が鋭角に切れ込んでいる、そんな都内の手狭な土地に戸建てを建てて、それを売る不動産営業の主人公の物語です。最後の上司の言葉が頭から離れません。これから家を買おうと考えている方にも、社会人に成り立ての学生にも、幅広い方を対象に人生・仕事・幸せとは何かを考えさせられるような、決して他人事とは思えない作品に仕上がっています。ページ数も単行本で176ページと、早ければ1日で読んでしまえるボリューム(私は1日で読んでしまいました)なのでおすすめです。EngineeringTweet4回に分けて連載しましたが、本記事で最後となります。ここでは、Lambda関数の実装解説と、実践で困ったことを紹介します。前回の記事kitakitabauer.hatenablog.comインストールご紹介するコードを含めたツールは、実行が可能な状態でnpmかGitHubからインストールできます。前回までの手順を元にLambda関数をAWSに設定しておくことで、毎回AWSコンソールから実行することなくローカルでも実行できるようにしているのが特徴です。www.npmjs.comgithub.com実行する前に、aws-cliをグローバルにインストール・configureした後、AWSに設定した関数名を下記に渡してください。実際のコードを少しずつ解説します。AWS.EC2({});ローカルで実行する場合は、.envに必要な環境変数を指定して、それをdotenvで読み込んでいます。aws-sdkはAWS上で実行する場合は不要ですが、ローカルで実行するためにdependenciesに指定しています。呼び出すことができる関数です。コールバックパラメーターは省略可能で、呼び出し元に情報を返す場合には使用しますが、今回はslackにPOSTするだけなのでcallbackは呼びません。CloudこちらのAWSの公式APIを使ってイベント情報を取得しています。true"にすれば、Configurationでサブネットに指定したサブネット以外の全インスタンスのステータスが取れました。Logsに記録します。});}最後に取得した全イベントをslackに通知します。...}普通のJavaScriptでは、変数の存在判定でnullかどうかも判別できます。Lambda上ではできなかったので仕方なくerrがnullかどうかを指定しました。});}PropertyShorthandも使えませんでした。困ったのは、対応済のイベントもAPIで取得してしまうことでした。Webコンソールだと、下記のようなリクエストパラメータで、対応完了したイベントは取得しません。https://ap-northeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#Events:resourceTypeFilter=all-resource-types;eventsStatusFilter=in-progress-and-scheduled-events;eventsTypeFilter=in-progress-and-scheduled-events"継続中と予定"を示す、"eventsStatusFilter=in-progress-and-scheduled-events"であれば、対応済のイベントは表示されませんが、"all-statuses"だと表示されてしまいます。APIのFilterパラメータ仕様を見ても、対応済のイベントを取得しない方法が見つからなかったので、下記のようにDecriptionの"[Completed]"で判断する運びとなりました。Echoに追加できたりと重要性が高まっているため、これ以外にも日常業務で使えそうなツールを開発していきたいです。EngineeringTweet前回の記事kitakitabauer.hatenablog.com登場人物おさらいこの記事では4を行っていきます。Functionの作成・実装Lambda前提知識メモリはデフォルト128MBで、64MBごとに最大1.5GBまで指定可能タイムアウト時間はデフォルト3秒で、最大5分まで指定可能ステートレスに実装する必要あり。永続化したい場合はDynamoDBやS3などを利用する。