USD/Monthはちょい高め。勉強がてらSES、S3、Lambdaを使ったメール送受信を導入してみることにしました。いえ、SESは本来送信専用なので受信はどこか普段使いのメールに転送する想定になります。S3のライフサイクルポリシーメール送信のセットアップSMTPの情報を取得する試験的に送信してみるSandbox外への払い出しAWSのサポートへ連絡メール受信(転送)のセットアップまずはメールの受信から。基本的にはAWSの公式ドキュメントを参照します。https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-getting-started.htmlAWSで痛い目に遭いたくなければ日本語ドキュメントは読まないことです。古事記にもそう書かれている。初期設定まずSESの設定とかを始める前にやっておくことが2点あります。AWSのアカウントを作っておくRoute53にドメインを登録しておく基本的にこれらはできてる想定で話を進めます。ドメインの認証SESでドメインを利用するに当たってドメインの認証が必要になります。SESのコンソールに行きましょう。https://console.aws.amazon.com/ses/リージョンは東京がないのでとりあえずバージニア北部(us-east-1)を想定してます。Managemen」の「Domains」に行きます。Domain」をクリックします。Domain」をクリックします。DKIMに関しては設定してなくても基本いけると思いますが、送信先によってははじかれたりするので設定しておくのが無難かな、と思います。Domain」をクリックすると、ダイアログの内容が少々変わってなんかでてくると思います。Route53を利用しない場合は表示されているレコードをドメインに設定する必要がありますが、AWSに命を捧げている者はAWS様がよしなにしてくれます。53」をクリックしましょう。53」というダイアログが出てきます。前の段落で設定する筈だった項目をウィザードでやってくれます。Record」の部分もチェック入れて良いと思いますが、もし他にメールアドレスを登録してる人などはMXレコードが上書きされてしまうので要注意です。Sets」をクリックします。するとSESのコンソールに戻り、設定していたドメインがpendingになってるのが分かります。ここで5分ほど待ちます。待ってる間にRoute53で設定したドメインのレコードに先ほどのウィザードで設定したレコードが追加されているか確認してもいいと思います。時間がたったらたぶんverifiedになってると思います。受信ルールの作成Step2でドメインの認証を済ませたら、受信設定を作成します。Rule」をクリックしましょう。最初に出てくるのは受信対象の設定です。受信するドメインを限定したりする場合はこの辺を設定しましょう。Step」をクリックしましょう。保存先の設定(Actionの設定)メールが来たときにそのメールをどうするかの挙動(Action)を設定します。action」から「S3」を選びます。bucket」を選択します。(もし既に作成済みなら該当するbucket名を選んでください)適当なbucket名を入力します。(email-ドメイン名、など分かりやすい名称がいいとは思います。)prefixなど設定できますがたぶんS3のパフォーマンスを落とすだけなので無視しましょう。Step」をクリックします。Details」の項目が出てきます。Step」で問題無いかと思います。今まで設定してきた項目が一覧で確認できます。何か間違いがあればここで修正できます。Rule」でルールを作成します。問題無ければSESのコンソール上で表示されている筈です。メール送信テストまだ設定半ばなのですが、一端ここまでの設定が正しいか確かめてみます。ドメイン名の前は何でも良いので、「test@設定したドメイン」のように適当なアドレスに向けてメールを送ってみます。(例えば、example.comというドメインを設定したなら「test@example.com」のような。受信したメールを見てみる設定がうまくいっていれば、先ほどテストで送ったメールがS3に保存されている筈です。)から先ほど設定したbucketを見つけて中を見てみましょう。2ファイルが存在していると思います。謎の英数字の羅列が保存されたメールとなります。ダウンロードして中身を確認してみると、メールのソースになっていると思います。(いわゆる本文だけではなく送信元情報などのデータとしてのメール。)これでメールの受信が機能している所までは良さそうです。S3にPUTされたらLambdaで転送する様にするS3にあがるだけではIMAPやPOP3形式で受信できないので、どこかのメーラーでやりとりしたいものです。(例えばGmailやThunderbirdなど)本来設定しているメールアドレスに一時的に転送して、閲覧は普段使いのメーラーでできるようにします。転送用のLambda関数を作成する何はともあれLambda関数が必要です。CLIなどでデプロイしてもいいんですがそんなにいじらないし全部ブラウザ上から済ませます。https://github.com/arithmetric/aws-lambda-ses-forwarder使い捨てるので適当なディレクトリで大丈夫だと思います。必要なのはindex.jsのみです。(なんならコピペでもいいんですが・・・)コンソールでLambda関数を作成するソースが準備できたらLambdaのコンソールに行きます。https://console.aws.amazon.com/lambda/home右上の「関数の作成」からLambda関数を作成します。「一から作成」で基本的な情報を入力していきます。関数名は適宜決めていただいて(例えば、「sesForwarder」など)、ランタイムは、現在(2020/02/14)ではNodeのv12が利用可能ですが、念のためv10にしておきました。v10と記載があるので、多分v12でも大丈夫だけど)実行ロールは後で編集するとして、特に触らずに「関数の作成」でLambda関数を作成します。Lambda関数はできました。作成した関数をaws-lambda-ses-forwarderに書き換える先ほどcloneしたaws-lambda-ses-forwarderの中にある「index.js」をアップロードします。めんどくさい人はエディタで開いてコピーしてからブラウザ上のエディタに貼り付けても良いと思います。zipに固めてアップロードする手法を採ります。「index.js」のみzipに固めます。固めたzipをLambdaにアップロードします。先ほどのコンソールから「関数コード」という項目を探しだし、「コードエントリタイプ」から「zipファイルをアップロード」を選択します。「アップロード」という箇所が出てくるので、先ほどのzipをアップロードする。「アップロード」の横にzipファイル名が記載されていればアップロードできているので、「保存」をクリックしてアップロードしたzipファイルを関数に適応する。Lambdaのコンソール上のエディタにaws-lambda-ses-forwarderが表示されていればOKaws-lambda-ses-forwarderの設定を書き換えるこれでアップロードは完了しましたが、ちょっとだけ設定を変更します。30行目のdefaultConfigの値を変更していきます。SESの設定でprefixを設定している場合は設定。}};SESは仕様上、転送するメールアドレスの差出人を自分のドメイン以外にすることができません。「hogefuga@hoge.com」からメールが来た場合に、「example.john@hoge.com」へメールを転送するのですが、上記の設定では、「example.john@hoge.com」へ届くメールの差出人は「noreply@example.com」に書き換わっています。図示するとこんなかんじforwardMappingのみ追加で説明しますと、上に記載されているものから順にマッチするか評価され、最初にマッチした宛先に転送されるようです。基本的には1対1か1個のメールアドレスに集約されるように書くのがいいんじゃないでしょうか。変更した後は右上の「保存」をクリックすることをお忘れ無きよう。現状ただのLambda関数ですのでSESはおろかS3にアクセスすらできません。コンソール上の下の方にある「実行ロール」という項目を確認します。「既存のロール」という項目の下にある「【関数名】-role-(英数字の羅列)ロールを表示」という箇所をクリックします。するとIAMのコンソールが表示されますので、「インラインポリシーの追加」を押します。「ポリシーの作成」というページが表示されますので、編集していきます。設定する対象がわかりきっている場合はJSONの方が早いです。「JSON」をクリックして下記のように設定しましょう。]}S3-BUCKET-NAMEの箇所はemailが保存されているS3のbucket名に変更して下さい。厳密に言えばSESのリソースなども対象を絞った方がセキュアだと思いますが、その辺は割愛します。JSONの編集が完了したら、右下の「ポリシーの確認」をクリックします。最後に、設定したポリシーがどのようなものか一覧で表示されます。ポリシー名を付けないといけないので「名前」の箇所を「LambdaSesForwarder」としておきました。問題無ければ「ポリシーの作成」をクリックして完了します。別のLambdaに別のメールアドレスを設定する可能性などある場合はポリシーを作成しておくと再び作成しなくていいのですが、どうせS3のbucketも変わると思いますのでインラインポリシーで良いと思います。大丈夫な気がするんですが、一応aws-lambda-ses-forwarderのREADMEによると「メモリ制限が128MBで10秒がええんとちゃうか?」のような記述があるので、タイムアウト時間だけ10秒に変更しておきます。(大きな添付ファイルが想定される場合はメモリを512MBにするか、タイムアウトを30秒にするかした方がいいかも、とも書かれているので心配な方は30秒に設定しておいた方がいいかも)設定を変える場所は先ほど編集していた「実行ロール」の隣にあると思います。「基本設定」という項目を見つけ「編集」をクリックして下さい。タイムアウトを10秒に変更して、「保存」をクリックします。SESの設定にLambda関数を追加するここまできてようやくSESとLambdaを連携させます。Sets」を編集します。Set」をクリックし、設定したRule(たぶん一番上に表示されてるヤツ)をクリックして編集します。actionからLambdaを選択します。対象の関数は作成した関数名を入力すれば出てくると思います。それ以外は基本デフォルトで。Rule」を押して編集したルールを保存します。permissions」で作成したSESにlambdaを起動する権限を付与します。SESの設定で転送先のメールアドレスを認証しておく(一時的なもの)おそらくスパム対策だと思いますが、初期状態ではSES+Lambdaでメールを送信する場合は転送先のメールアドレスを前もって認証しておく必要があります。どのメールアドレスにも送信できるようになります。)試験的にメールを送信するために、SESのコンソールから転送対象の認証を済ませます。Address」をクリックします。Lambda関数のところで転送先を編集したと思うので、そのアドレスを入力します。Address」をクリックすると、前の画面に戻ってpendingになっているのが確認できます。Request...」というタイトルのメールが届いていると思いますので、記載されているリンクを24時間以内にクリックします。「検証に成功しました」的な旨のページが出ればOKです。コンソール上で先ほど設定したメールアドレスがpendingからverifiedに変わっていれば転送の準備は完了です。転送されるか試しにメールを送ってみるとりあえずメールを送りましょう。宛先は何でも良いと思いますが、Lambda関数の中でマッピングを複雑にした場合は色々試してみると良いと思います。上記のままだとメールが未来永劫たまり続けます。基本残したままで困る容量ではないですが、SES+Lambdaで究極のコスパを攻めるならS3には極力データは残しておかない方がいいかもしれません。S3にはライフサイクルポリシーという生成されてからどの期間残しておくかが設定できますので、そちらを設定しておけば極力容量は抑えられるとは思います。ここでは割愛しますが、需要があればそのうち追記します。メール送信のセットアップと項目を書いたのですが、受信のセットアップが終わっていればほぼ完了しているも同然です。いえまだSMTPの情報などがないのでセットアップしていきましょう。Settings」をクリックします。Credentials」をクリックします。Nameはデフォルトで入ってる適当な名称を利用します。変更しない右下の「作成」でSMTPのユーザーを作成します。書いてあるとおり、認証情報はこのタイミングでしかダウンロードできないので慎重に保存しておきます。最悪ユーザーを作り直せば良いだけだと思いますが、くれぐれもこの辺の認証情報を公開しないように注意しましょう。上記の画像に書いてある「ユーザーのSMTPセキュリティ認証情報を表示」でユーザー名とパスワードを表示して設定してもいいですが、ファイルに保存しておいた方が確実かと思いますので、右下の「認証情報のダウンロード」から認証情報を保存しておきましょう。試験的に送信してみる先ほどのSMTPの情報で、試しに認証している(上記までの例では、転送先のメールアドレス)にメールを送信してみて下さい。SMTPのポートを587に設定して上記の情報を利用すれば送信できると思います。Sandbox外への払い出しSESのサービスを利用し始めたときは、認証したメールアドレスにしかメールを送ることができません。(転送だけしかしない場合はこれでも問題ないでしょう)なので、認証してないメールアドレスにも送信できるようにAWSに申請する必要があります。右上にある「サポート」から「サポートセンター」を開きます。increase」を選択します。送信制限」を選択します。その他の入力項目は適宜合わせて貰えば良いと思いますが、今回は普段使いのメールなので「メールの種類」を「その他」、「ウェブサイトのURL」を空欄、残りの項目を「はい」にしました。case.と記載されていますのでAWSサービス条件とAUP(ウェブサイトでリンクがありますのでご確認ください)を満たしているか受け取る意思がある人にのみメールを送信するか(メールのやりとりなので、よっぽど特殊なケースでない限りはあるはず。不特定多数の営業とかには使っちゃダメですね。)苦情などが来たときにハンドリングする手順があるか(普通のメールなので基本的には考えなくて良いと思います)といった感じでしょう。アプリケーションなどにも活用を考えている場合はこのへんは慎重に回答してください。次に、「Requests」の項目を埋めます。value」を「200」に設定します。この200は公式ドキュメントに書いてあります。基本的にはドキュメント通りに設定すれば問題無いと思います。1日に200通以上も送る(受信ではなく送信)人は通常の人ではないので僕は知りません。description」を記入します。classification」ではいと答えている項目には言及しておいた方がいいかもしれません。自分は普通にメールとして使うよ!ということと、苦情対策としてはCloudWatchでSESの送信制限を監視して、ヤバそうだったら利用を停止するよ!ということを書いておきました。options」ですが、基本的にはデフォルトのままで良いと思います。language」はもしかしたら英語の方がレスポンスが早いのかなぁとも思ったんですが、その後でやりとりが発生する可能性を考慮して一応日本語にしておきました。「submit」を押して起票完了です。1日ぐらいで返信が来ます。(自分は約1日で来ましたが、2~3日たっても気長に待ちましょう。サンドボックスから移動いたしました。」との記載があれば問題無く利用できる状態になっていると思います。プログラミング結論から言えばhttps://visualstudio.microsoft.com/ja/downloads/からビルドツールを取得してインストールすればOKです。2017など若干バージョンが違ってたりするので、その辺バージョン上でも問題無いのか一応確認しました。Tools」にチェックを入れてインストールしました。installが通ると思います。PCどうも、靖宗ですRyzenでPCを組んでセットアップしていたのですが、Docker(Toolbox)をインストールするときに何カ所か詰まりました。AMDのCPUでHyper-Vを有効化するとVMがうまく起動しないWindowsの機能のHyper-Vを切るコマンドで機能を無効化するインストールするDockerのバージョンをちょっと古いヤツにするAMDのCPUでHyper-Vを有効化するとVMがうまく起動しないこれなんとかして欲しい所ではありますが、今のところあんまり有効な手立てはないようです。諦めてHyper-Vを無効化してVMを動かすしか無さそうです。)_たぶんHyper-Vを意識的に有効化してない人はなにもしなくていいんでしょうが、自分は無意識のうちにHyper-Vを有効化していたようです。Hyper-V関連の機能を無効化します。Windowsの機能のHyper-Vを切るこの操作が必要かあやしいんですが、自分は一応したので書いときます。コントロールパネルの「プログラム」→「プログラムと機能」の「Windowsの機能の有効化または無効化」→「Hyper-V」のチェックを外すという操作をしておきます。再起動が求められます。コマンドで機能を無効化する上記の操作だけではまだ正しくVMが作成できなかったので、下記の操作を行います。/Disable-Feature:Microsoft-Hyper-Vというコマンドを実行します。一応ここで再起動します。再起動後に下記のコマンドを実行します。offこれでDockerのVMが正しく起動する環境が整ったと思います。上記のコマンドに関しては下記のStackOverFlowを参考にしました。Toolboxではうまいこといかないそうなのでちょっと古いバージョンにしておきます。自分は"v18.06.1-ce"を選択しました。Toolboxのリリースからダウンロードします。github.com基本的にウィザードに従ってインストールで問題無いかと思います。バージョンの選定に関しては下記の記事を参考にさせていただきました。Lambdaどうも、靖宗です。CLIを利用し始めました。そこまでは良かったものの(逆になんで使って無かったんだ?というぐらい快適だしCloudFormation最高)、Cognitoとの連携をやり始めてCORSでPOSTするAPIがうまくいかず悩んでました。言っても基本的には全てリクエストに情報は載っているもの。調べて見るとPOSTの手前のOPTIONSリクエストでCognito認証がはじかれてる模様。axiosでPOSTリクエストを送っている環境下だったので、わざわざOPTIONSのリクエストを描いてヘッダーにトークンを・・・というのはなんだか解決方法として間違ってる気がしたので執拗にウェブをあさっておりましたら該当する情報にたどり着きました。Gatewayの箇所にAddDefaultAuthorizerToCorsPreflightという項目を追加しfalseに設定すれば良いとのこと。'https://${ApiGateway}.execute-api.${AWS::Region}.amazonaws.com/${StageName}/'これで問題無くAPIが使える筈です。2)で立ち上げるAWSどうも、靖宗です。友人との話で度々「マイクラサーバー立てる」と言って無視してきた日々に終止符を打つべくAWSを利用してマイクラサーバーを立てることにしました。料金的な観点で言えば動かしっぱなしにするなら絶対VPS(かLightsail)の方がいいんですが、EC2に慣れ親しむというのと拡張性(EC2だとインスタンスの性能がすぐ変えられる)という点でEC2をチョイスしました。これに当てはまらない方はVPSを選びましょう。EC2でインスタンスを立ち上げるこの辺は記事が腐るほどあると思いますので割愛。気が向けば別記事にします。あと、もしかしたらAMIが転がってるかも。他の記事などで「small以上じゃないと動かない」という報告をいくつか見受けました。自分は疑り深いので、敢えてt3.microで実行してみました。Xms512M(最大メモリ900MB、最小メモリ512MB)で実行してみると、起動はするのですが非常にラグ(ブロックを破壊したのに破壊したことにならない)が生じたり、サーバーがクラッシュして落ちたりするところから最小メモリ1024MB程度は確保しておく必要があるのかもしれません。この検証は後述するForgeサーバで行っていますので、もしかしたらバニラのサーバーはなんとか動作するかもしれません。以上より、この記事ではt3.small相当のインスタンス(自分はt3a.smallを利用)することを想定しております。Serverのセットアップとりあえずパッケージマネージャーのアップデートと、Javaを入れときます。java-1.8.0-openjdk.x86_64次に、Minecraftのサーバー版をダウンロードしてきます。今回は1.14.4を公式サイトから直接ダウンロードします。https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jarたぶんこの辺でディレクトリを作成してその中で作業した方が良いです。僕は後で後悔しました。minecraft_serverとりあえず起動してみます。nogui文句言われて起動しないと思います。使用ライセンスを許諾するか否かの確認が必要ですので、実行したら作成されるeula.txtを編集します。eula=falseの箇所をeula=trueにします。2017eula=trueこれでサーバーが実行できるようになってる筈です。先ほどのコマンドで実行します。noguiこれで、EC2のIP(か、ドメインを設定している場合はそのドメイン?)にアクセスすればMinecraftサーバーにアクセスできる筈です。動作確認ですので、実行したサーバーは終了しておきます。Ctrl+Cで強制終了するか、コマンド入力できる状態でstopと入力すれば止まります。Forgeというものにしておくと便利と聞きます。実際にどうなのか知りませんが、大体サーバーのセットアップの記事を書いてる人達はForgeを導入しているので一応導入しておきます。必要最低限構成で動かしたい方はスルーしてください。少々重たくなるかもしれません。こいつのせいでt3.microとかが使えないのではないかと思っています。ForgeのダウンロードForgeの公式サイト(https://files.minecraftforge.net/)からインストーラーをダウンロードします。参考にしたサイトにはuniversal.jarもダウンロードするよう指示がありましたが、1.14.4ではうまく動作しなかったので不要です。installer.jarのみダウンロードしてください。wgetでダウンロードしたいところですが、広告を読ませるためにリダイレクトする形式になってます。無料で使えるありがたみをかみしめながら広告を読むぐらいは我慢しましょう。Forgeインストーラをアップロード先にForgeのディレクトリを作成しておきます。通常のサーバーのディレクトリをそのままコピペします。forge_server作成したディレクトリにForgeインストーラをアップロードします。SSHでアクセスしてる場合はSCPかなんかでアップロードしてください。インストールインストーラを実行します。何はともあれ起動してみます。参考にしたサイトにはuniversal.jarを起動するよう書かれていましたが、なんか起動しなかった(のと、Webフォーラムで生成された奴を実行しろと書かれていた)ので、生成されたforge-1.14.4-28.0.83.jarを実行します。noguiこれでしばらくまってサーバーが立ち上がれば問題無いと思います。念のためMinecraftのクライアントから接続して確かめてみるのも良いと思います。自動起動+コマンドを用意メンテナンススクリプトの作成このサイトを参考にしました。大概の方の実行コマンドが最大メモリと最小メモリが同じになっているケースが多いんですが、折角最大と最小を指定出来るので一応分けておきます。上記の手順に従った方は下記のスクリプトで起動などが可能かと思います。Forgeサーバーでない方はディレクトリや実行するjarを適宜変更してください。パーミッションMinecraftサーバーのみ動かしている方は特に気にしなくてもいい気がしますが一応パーミッションも変更しておきます。mc_script.sh実行テストスクリプトを作成したらとりあえず手動でスクリプトが実行するか確認します。startMinecraftサーバーの標準入出力はscreenに飛ばされてるので、まずscreenに存在しているか確認します。/var/run/screen/S-ec2-user.数字とかは適宜変わると思います。サーバー上で直接コマンドを入力したい場合(ホワイトリストの入力とか?)はscreenで接続します。minecraftscreenから抜けるときはCtrl+aを押した後にdを押して抜けて下さい。実行テストが終わったら停止しといてください。stop自動起動の設定systemdに登録して起動したら実行されるようにしておきます。/etc/systemd/system/minecraft.serviceを作成します。stop[Install]WantedBy=multi-user.target上記が作成できたら、systemctlコマンドで登録します。minecraftこれで再起動して接続できれば問題無いかと思います。動作状況インスタンスの選定のところで言及しましたが、メモリがまあまあ食ってるみたいです。0余裕を持っての動作でしょうけど、やはり2GBぐらいはメモリを確保しておきたいところです。VPSでMinecraftサーバーを立てる方は、少人数であれば2GB程度は見ておくのが良いのではないでしょうか。メンテナンスどうも、deus(靖宗)です。メンタリストDaiGoさんの放送やパレオな男こと鈴木さんのブログをよんでいる人なんかはエクサー社のステッパーを利用している人が多いと思います。(あとはオリンピック選手?)ただ、たまに音が鳴るのが気になったので原因調査と対処をしてみました。対処法だけで良いよ!って人が大半だと思いますので先に対処法から書いておきます。対処1だけであれば別にばらさなくてもいいので、1からやってそれでも直らなければ2もやってみるのをお薦めします。必要な物グリス油を拭き取るペーパー(キッチンペーパー、キムタオルなど、ティッシュでも可?)シリンダーの露出部分の油を拭き取る本当はパーツクリーナーなどで洗浄の後にグリスを塗布するのが鉄則ではありますが、明らかに分解できないので仕方なく気持ちペーパーで露出部分を拭き取ります。キッチンペーパーやキムタオルの様な物がベストだと思いますが、ティッシュとかでも別に良いと思います。拭かなくてもうまくいきますが、後々のトラブルを避けるために念のため拭き取っておきましょう。シリンダーの露出部分にグリスを塗布するシリンダーの露出部分にグリスを塗ります。全面に広がるように指などで塗り広げて下さい。露出している全面にグリスを塗る運の良い方はコレで異音が直ると思います。スパナ)パーツクリーナーパーツクリーナーの液を拭き取るペーパー(キッチンペーパー、キムタオルなど、ティッシュでも可?)、なんでもいいです。グリスパーツクリーナーで綺麗にする内側のボルトの頭をペンチかウォーターポンププライヤー的な何かで押さえながら、外側のナイロンナットをスパナか何かで(こちらもペンチとかで良いけどできればきちんとした工具を使おう)外します。多少緩めればあとは手で行ける筈。部品を外したら、ボルトが刺さっていた箇所とその辺の部品をパーツクリーナーで洗浄します。場合によってはシリンダーと接触してる箇所も同様に洗浄しておくといいかも。あと、可能ならステッパー側の穴もパーツクリーナーや綿棒で洗浄しておく。グリスアップする洗浄したら接触部分にグリスを塗布していきます。いわゆる「グリス」と呼ばれる物だったら何でも良いと思います。付ける箇所は接触部分全般。だいたいこんなもんで良いと思います。シリンダーとの接触部分も洗浄していればそこもグリスアップするといいかも?補足:シリコンスプレーじゃだめなの?結論から言えばダメです。このステッパーのボルトの箇所に入っている樹脂ワッシャーの部分はシリコンスプレーでもいいんですが、基本的に金属と金属の潤滑にシリコンスプレーは不向きです。力のかかる場所ではシリコンワックスは逆に抵抗感になる恐れがあります。今回で言うボルトに塗布した箇所や穴の内側などはシリコンスプレーは逆効果でしょう。原因調査そもそも今までどう対処してたか買った当初から若干気になっており、今まではボルトの両サイドにシリコンスプレー(潤滑剤)を吹いて済ましていました。上でダメって言っておきながらですが、ばらすのがめんどかったので・・・(樹脂ワッシャー部分のこすれだと思っていたというのもありますが)これでも多少はマシになることがあるただ、今回これでは改善しない謎のコツコツ感?みたいなのを感じたのでいっそのことボルト周りを綺麗にして確かめてみます。今回は右側のみ異音を感じたので右側のみ対処しました。パーツクリーナーで綺麗にする内側のボルトの頭をペンチかウォーターポンププライヤー的な何かで押さえながら、外側のナイロンナットをスパナか何かで(こちらもペンチとかで良いけどできればきちんとした工具を使おう)外します。多少緩めればあとは手で行ける筈。部品を外したら、ボルトが刺さっていた箇所とその辺の部品をパーツクリーナーで洗浄します。場合によってはシリンダーと接触してる箇所も同様に洗浄しておくといいかも。あと、可能ならステッパー側の穴もパーツクリーナーや綿棒で洗浄しておく。現段階で音は鳴るか潤滑油とか付けてないんで結構なる筈なんですが、意外と大きな音はなりませんでした。グリスアップする洗浄したら接触部分にグリスを塗布していきます。いわゆる「グリス」と呼ばれる物だったら何でも良いと思います。付ける箇所は接触部分全般。だいたいこんなもんで良いと思います。原理的に接触部分にはグリスで潤滑してるはずなのでそれ以外、という事はシリンダーか!左右反転してみるシリンダーは前後逆(180度回転)しても取り付けられるので、左右のシリンダーが逆になるようにセットしてみました。すると案の定、今度は左のみ音がなる(一瞬の抵抗感?がある)ようになりました。犯人はシリンダー・・・シリンダーの露出部分にグリスを塗布する本当はパーツクリーナーなどで洗浄の後に塗布するのが鉄則ではありますが、明らかに分解できないので仕方なく気持ちペーパーで露出部分を拭き取って、グリスを塗布しました。露出している全面にグリスを塗るすると、とうとう音が消えた!!!なんだったのかよく考えてみると、自分はステッパーを使っていないときは左だけ押し込んで右がマックス露出してる状態で置いてることが多いです。露出してる側のグリスが劣化して異音が鳴るようになったのでしょう。19:00Xiser(エクサー)のステッパーで踏み込む度に音が鳴る対処法(たぶん他の音も直る)Tweetもっと読むコメントを書く2019-08-23Nuxt.jsが2.9になってからTypeScriptの対応が変わったようです。プログラミングどうも、靖宗です。一生環境構築してる気がします。フロントもう嫌や・・・ということでTypeScriptの対応がなにやら変わった?ようなので公式に沿ってセットアップしてみます。Nuxtプロジェクトのセットアップここに関してはいつも通りです。よければ以前の記事をどうぞ。TypeScriptのセットアップ公式サイトのSetupに沿って進めます。必要なパッケージのインストールをyarnで行います。@nuxt/typesコンフィグファイルnuxt.config.js編集コンフィグファイルを編集します。buildModulesという項目に@nuxt/typescript-buildを追加します。[...tsconfig.jsonの追加tsconfig.jsonを追加します。一応tscコマンドで追加しますが普通に作成して大丈夫だと思います。--init一応ここまでの設定で動作はするようです。nuxt.configをtsにするこれもうjsのままの方がええんでない?って気もしてきましたが、一応対応します。必要パッケージのインストールnuxt.configをtsにする場合はnode環境にもTypeScript対応が求められますので@nuxt/typescript-runtimeが必要になります。yarnで追加していきますが、-Dではなく普通に依存関係に追加するようです。devの実行をnuxtからnuxt-tsに変更します。generate",...以上でNuxt.jsでTypeScriptを利用できるようになるみたいです。煩雑なパッケージ関係が整理された感じではありますが、ちょっと手間が増えた感もありますね。そのうちnuxtのウィザードに追加されそうな気はします。ついでにLintにも対応するつまり以前の記事はもう古い。しわけないです・・・パッケージのインストールこれも必要なパッケージがあるのでインストールします。@nuxtjs/eslint-config-typescript.eslintrc.jsを編集.eslintrc.jsに先ほどのパッケージ情報を追加していきます。],...Prettier周りでたまに前後関係が効いてくる場合があるので念のため、Prettierよりは前に追加しました。package.jsonを編集package.jsonにlintのコマンドが記載されていますので、それを編集しておきます。いっても.tsを付け加えるだけですが。lintを実行するとnuxt.config.tsがチェックされているのが分かります。parserの変更parserがbabel-eslintのままだと色々ESLintに怒られる時があります。parserを@typescript-eslint/parserに変更しておきます。必要なパッケージをインストールします。pluginsに'@typescript-eslint'を追加しておきます。vueファイルなどにも対応vueファイルではscriptタグにlang属性を付与することでTypeScriptとしてvueファイルのスクリプトを記載することができます。moduleとか怒られるのでその辺を対応します。本当はtsconfig.jsonにincludeオプションを利用することで解決できるかと考えていましたが、どうにも解決しませんでしたのでqiita.comこちらを参考にして、srcディレクトリにshims-vue.d.tsを作成し、tsconfig.jsonにfileを追加することで対応しました。21:00Nuxt.jsが2.9になってからTypeScriptの対応が変わったようです。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。