AWS Lambda のトリガーで CloudWatch の定数(JSONテキスト)を使った場合の起動方法

AWS Lambda が .Net Core をサポートしたと言うけど実際に書くときに引数ってどうするんだろうって思ったので調べてみた。 Lambda のトリガーには CloudWatch を指定できて、 CloudWatch のイベントからルールを設定することでバッチ処理のようなことをさせ…

CircleCI 2.0 で AWS CodeDeploy を使う

AWS

まず、 CircleCI 1.0 で CodeDeploy を使っているという前提で話を進めます。 そのため、デプロイ先のインスタンスへの CodeDeploy エージェントインストールなどについては触れません。 先に示すこれは失敗する例です。 成功する例はこの記事の一番最後に書…

GitHubで二段階認証を有効にしたときに聞かれるパスワード認証の回避方法

GitHubで二段階認証をすると、 http 通信ではなく、 ssh 通信を使う必要があります。 ssh 通信を使用すると、 CLIなどで pull や push などの操作をしたときに秘密鍵のパスワードを聞かれます。 Enter passphrase for key '/path/to/id_rsa': このパスフレー…

VSCodeのExtensionを端末間で共有する方法

VSCodeでインストールしたExtensionを端末間で共有したり、PCを新しく買ったときにどうやって同じ設定にしようか悩んでました。 どうやら Settings Sync を使うことで簡単に Gist で管理できるみたいです。 marketplace.visualstudio.com

AWS CloudFormationで名前に - が使えなくて困ったこと

AWS

AWSの環境ではWAF など、名前に - が使えない物があります。 CloudFormationからWAFの設定をしようとした時に少し困ったのでメモを残しておきます。 何に困ったのか? CloudFormationのテンプレートで、Parametersから入ってくる変数の値に - が入っていると…

AWS Lambda@Edgeの設定でハマった話

AWS

CloudFront + S3 の構成で静的なWebページを公開したいが、Basic認証を付けたいということがあります。 Lambdaを使うと上記問題は解決できるのですが、Lambdaの設定にいくつか制約があったのでメモとして残しておきます。 ビューワーリクエストの場合はLambd…

Route53の設定だけは手動でした話

AWS

AWSでインフラを構築する際は極力Cloud​Formationを使うようにしています。 ですが、Route53の設定はCloud​Formationの設定を使いませんでした。 Route53は最低1つはAレコードを登録しなければいけません。 ですが、CloudFormationの設定からではAレコードに…

create-react-appでTypeScript環境を構築したときにsourcemapを出力しない方法

Reactのテンプレートを作る方法にcreate-react-appがあります。 github.com これを使うとcreate-react-appコマンドで簡単にテンプレートを作って、初期設定されているnpm scriptsでサーバー起動やビルドといったことが簡単にできるようになっています。 Reac…

Reactでシングルクリックとダブルクリックを区別して使いたい

先に今回の話のソースコードです。 github.com Reactでは シングルクリックイベントとダブルクリックイベントが用意されています。 シングルクリック <a href="javascript:void(0)" onClick={(e) => this.handleOnSingleClick(e)}> Single Click </a> onClickイベントが用意されています。 ダブルクリック <a href="javascript:void(0)" onDoubleClick={(e) => th</a>…

AWSで最初からCloudFormationでインフラを管理する方法を考えてみる

AWS

AWSで最初からCloudFormationを使ってインフラを管理していく方法について考えてみました。 個人でサービスを作ろうと思い、あまりお金もかけたくなかったのでサービス選定は 項 サービス名 クラウドサービス AWS ソースコード管理 Bitbucket CI/CD CircleCI…

CircleCI2.0でawscliを使いたいのでDockerイメージを作ってみた

AWS

CircleCI2.0で awscli を使いたいと思ったとき、毎回 .circleci/config.yml で awscli のインストールコマンドを書くのも面倒に感じます。 dockerhubを使うと特定のイメージの更新をトリガーにして、自分のイメージも更新することができます。 Dockerイメー…

phpでlocalstackのs3にファイルをアップロード

AWS

AWS周りのものをローカルで開発する場合 localstack を使うと便利だというのを聞いたので試してみました。 github.com localstackは、GUIはあまり提供されていない用で、主にawscliコマンドを使います。 s3にファイルをアップロードしたい場合は、 --endpoin…

docker exec で cd する方法

dockerを使っていて、普段は↓のコマンドでコンテナ内に入って作業してます。 $ docker exec -it {container-name} /bin/bash 最近はコンテナ内でお決まりの作業(特定のディレクトリに移動してコマンド実行など)をしたいときに $ docker exec -i {container…

ISUCON7予選に参加しました

id:Maco_Tasu に、ISUCONに一緒に出ませんかと誘ってもらえたのでいい機会だしと思い参加しました。 LabALICEというチームで、メンバーはid:Maco_Tasu, id:karia です。 macotasu.hatenablog.jp karia.hatenablog.jp 全員のスコアと順位を出して頂けて運営の…

javascriptのスプレッド演算子(...)

javascriptで関数を呼び出すところで、引数に ... と書いているソースコードを見かけるがこれが何か調べてみた。 ES2015から追加された、スプレッド演算子というらしい。 参考 「…」←これ、ただの省略記号かと思ってました。(Spread operatorのお話)|もっ…

TypeScript2からのReactとnon-null assertion

TypeScript2からコンパイルオプションの strictNullChecks で、nullability をチェックできるようになった。 最近になってこのオプションを有効にしたら意外と修正するところが多かったのでメモ。 TypeScript1系の時は↓の様に書いてました。 import * as Rea…

go言語をインストールしてvimで保存時にコードフォーマットを走らせるまでの設定

Macの環境でgo言語をインストールして、vimでソースコード保存時に自動でコードフォーマットが走るまでの環境設定です。 普段はIDEを使うので、vimでファイル保存時に go fmt を実行させる設定に手間取ってしまったのでメモしておきます。 ※ vim のプラグイ…

AWS CloudFormationでECSを管理するときにハマったこと

CloudFormationでECSを構築したときにハマったメモです。 CloudFormationのテンプレートを書いて AWS::ECS::Cluster AWS::ECS::Service AWS::ECS::TaskDefinition あたりの設定をして、構築しました。 動作確認ができたので、AWS::ECS::Service の設定を更新…

nodeのバージョン管理にnaveを使おうと思ったら上手くいかなかったのでメモ

basherからnaveをインストールしたあと、 $ nave use latest を実行したところ、nodeのインストールに失敗した。 $ nave cache clear したら直った 環境 AWS EC2 OS Debian Jessie AMI ami-dbc0bcbc 問題が発生した手順 basherインストール naveインストール…

MacにVisualStudio for Mac を入れてみたけど、dotnet coreが動かなかった

Macに VisualStudio for Mac を入れて、プロジェクトの作成から Console Application を選びました。 プロジェクトは作成されたのですが、リストア・ビルドが成功しませんでした。 $ which dotnet dotnet not found となり、どうやらdotnetコマンドが使えま…

AWS CloudFormationでインフラを構築するときに CAPABILITY_NAMED_IAM というエラーが出た

AWS

AWS CodePipeline + CloudFormation でインフラをソースコードで管理しようと思い、cfn-ci-cd-demo というRepositoryをベースにいろいろ試してみました。 github.com IAM Role を作るときに、 Requires capabilities : [CAPABILITY_NAMED_IAM] というエラー…

esaの任意ページを素早く表示するesajump公開しました。

Chrome Extensionで esajump というものを公開しました。 chrome.google.com esajumpはドキュメント共有ツールにesaで、任意の番号のページを素早く表示することを目的としています。 esa.io たまに、口頭で「esaの何番です」といった形で共有されるケースが…

AWSのCloudFormationでs3バケット名変更

AWS

CloudFormationからs3バケット名を変更しようとした時の注意メモ CloudFormationのテンプレートでs3を構築/管理しているときにバケット名を変更しようとします。 変更時の動作は 新しく名前のバケットを作成する 古い名前のバケットを削除する の流れのよう…

windows10 + docker for windows + intellij idea

windows環境のintelliJ IDEAでdocker integrationを使おうとしたときに、接続できなかった。 docker for windows 側の設定を直すことで解決できたのでメモしておく。 前提条件 intellijのdocker integrationプラグインを追加 解決方法 docker for windows の…

docker for windows で docker pull に失敗する場合の対処方法

docker for windows にて docker pull に失敗する場合の対象方法について dockerイメージを取得しようとすると下記のエラーが出た $ docker pull debian Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: net/…

.NET Core コンソールアプリで日本語出力する方法

Windowsでコンソールアプリを作成し実行すると日本語が文字化けする。 Consoleの出力文字コードがUTF8固定になっていることが問題の様です。 対応方法 NuGetから System.Text.Encoding.CodePages をインストールする Main関数の先頭に下記を追加 Encoding.Re…

AWSのEC2に自動デプロイする(github+circleci+CodeDeploy)

githubにpushしたとき、自動でデプロイし、失敗した場合はslackに通知する設定方法のメモです。 期待する動作 githubにpush circleciでビルド CodeDeployでデプロイ もしデプロイに失敗したらslack通知 設定するもの s3 EC2 CodeDeploy circleci SNS lambda …

TypeScriptでReactを書くときはStateのパラメータに?を付ける

TypeScriptでReactを書いているとき、Stateに複数パラメータを用意した時に ? を付けてオプションパラメータにします。 そうしないと、setState の更新時に全てのパラメータを更新しないといけなくなります。 なので、必ず付けろというよりは、パラメータを…

sendgrid-phpで添付画像を付けてメール送信する方法

PHP

phpでメール送信する方法の一つとしてSendGridがあります。 github.com 添付ファイルを付けてメール送信する方法についてのメモです。 ※ 前提として、composerを使用して、sendgrid-phpをインストールしているものとします テキストのみのメール

AWS CloudWatch Logs で選択可能なOSについて

以前は debian にインストールできなかった、 AWS cloudlogs のインストール可能なOSが増えていました。 regionの選択肢も増えて、アジアパシフィック (東京) ap-northeast-1 も選択できるようになっていました。 もともとは下記方法でawslogsを使おうとして…