あとらすの備忘録

チラ裏のメモ帳 | C#とかVue.jsとかAWSとか興味のあることちまちまやってます。

AWS CodeBuildのビルド結果をLambdaを使ってLINEへ通知する

概要

タイトルの通りAWS CodeBuildのビルドステータスをCloudWatchと使って監視し
イベントを検知したらLambdaを起動し自身のLINEへビルド結果を通知します。
トークに返信して自動で再ビルド実行とかは組み込んでません。純粋にビルド結果の通知です。

世間じゃSlackに通知とかなんでしょうがこちとらぼっちの個人開発なんでSlackなんぞ使ってません。
LINEに通知が来てくれたほうが気付きやすいんです。

こんな感じになります。

f:id:HM_Atlas:20190414162326p:plain

目次

  • 概要
  • 目次
  • 参考サイト様
  • 成果物
  • 環境構成
  • 作業手順と注意事項
  • LINE Developersに登録&チャネル作成
    • アクセストークン(ロングターム)の発行
  • AWS Lambda関数の作成
    • ローカルでLambda関数を作成
      • LambdaでLINE BOTHello World
      • Lambda関数を結果通知用に編集
        • ①クライアント作成
        • ②通知用のメッセージ作成
        • トーク送信APIを実行
    • AWSコンソールからLambdaで関数の作成&アップロード
      • Lambda関数の作成
      • ローカルで作成した関数のアップロード
      • 環境変数の設定
      • Lambda関数のDesignerによるトリガーの追加について
  • AWS CloudWatchのイベント設定
  • Lambda関数のテスト
  • 雑感

参考サイト様

続きを読む

AWS CodeBuildでGitHub Webhookイベントをフィルタリングする

概要

CodeBuildでGitHubのWebhookイベントをフィルタリングします。
少し前まではCodeBuildのbranch filterで「masterブランチだけ検知する」と言ったことができてたんですが
2019/2/8のアップデートでbranch filterが廃止され代替としてWebhook filterが実装されました。

CodeBuild now supports webhook filter groups to specify events that trigger a build.
For more information, see Filter GitHub Webhook Events and Filter Bitbucket Webhook Events.
AWS CodeBuild User Guide Document History - AWS CodeBuild

Google翻訳大明神よるとこんな感じ。

CodeBuildは、ビルドをトリガーするイベントを指定するためのWebhookフィルタグループをサポートします。
詳細については、「GitHub Webhookイベントをフィルタする」および「Bitbucket Webhookイベントをフィルタする」を参照してください。

これを知らずにmaster以外のブランチをバカスカGitHubへPushしてたらビルドが走りまくってました...Orz
詳細には検証できていませんが自分のやりたいことはできたので記事にしておきます。

前段が長いのでやり方だけ見せろって人はCodeBuildでWebhookイベントのフィルタリング設定から読んでください。

目次

  • 概要
  • 目次
  • 参考サイト様
  • 環境構成
  • CodeBuildの開始イベントをフィルタリング
    • 前提
      • やること&やらないこと
      • 公式ドキュメントについて
    • 設定確認
    • CodeBuildでWebhookイベントのフィルタリング設定
      • 設定箇所
      • ブランチを指定
    • 補足1:フィルタリング設定の複合条件について
    • 補足2:HEAD_REFとBASE_REFについて
  • 雑感

参考サイト様

続きを読む

.NET CoreプロジェクトのC#言語バージョンを変更する

概要

Mac環境の.NET CoreプロジェクトでMainメソッドにasync Taskを使おうとしたらC#の言語バージョンをC# 7.2に上げなさいよって怒られたのでバージョン変更方法のメモです。

VisualStudio for MacからC#の言語バージョンを変更します。

目次

  • 概要
  • 目次
  • 参考サイト様
  • 環境
  • VS for MacからC#の言語バージョンを変更
  • 番外:Console(Terminal)からC#の言語バージョンを変更(失敗)
    • 変更可能な言語バージョンの確認
    • 言語バージョンの変更(失敗)
  • 雑感

参考サイト様

続きを読む

VuePressでAlgolia DocSearchを有効化する(申請パターン)

概要

VuePressでAlgolia DocSearchでの検索を有効にします。

VuePressの標準機能でAlgoliaの検索機能は組み込まれているので有効化すること自体は簡単です。
しかし、AlgoliaとDocSearchが何者なのかを理解していなかったために時間がかかったので備忘録として残します。

AlgoliaのINDEXを作成するには下記の2パターンがありますがこの記事では申請してクロールをお願いするパターンを紹介します。

  • Algolia DocSearchにクロールの申請をしてINDEX作成をお任せする。
  • Algolia DocSearch-Scraperを使用してクロール(INDEX作成)を自前で行う。

※VuePress 0.X系を使用しておりますが1.X系もほぼ変わりません。

実際にAlgolia検索を有効にしたサイトが下記です。

Algolia有効化前(標準の検索機能) Algolia有効化後
f:id:HM_Atlas:20190404133224p:plain f:id:HM_Atlas:20190404133242p:plain

目次

  • 概要
  • 目次
  • 参考サイト様
  • 環境
  • VuePress標準検索機能とAlgolia検索の違い
  • Algoliaとは
    • AlgoliaのIndexってなに
    • Algolia DocSearchとは
    • Algolia 検索を有効化する方法
      • Algolia DocSearchのクロールを利用可能な条件
  • DocSearchの自動クロールを申請してAlgolia検索を有効化する
    • Algolia DocSearchに申請
    • VuePressでAlgolia検索を有効化
  • 雑感

参考サイト様

続きを読む

Algolia DocSearch-Scraperでクロールを実行する(INDEXを作成する)

概要

Algolia DocSearch-Scraperをローカルで動かして、クロールを実行してINDEXを作成します。

Algoliaを使って検索機能を実装するにはINDEXを登録する必要があります。
そこで、Algoliaでは技術文書向けに最適化されたクローラであるDocSearchが提供されています。

しかし、クロールを実行するにはDocSearchに申請する必要があります。
条件を満たせば24時間毎に自動でクロールしINDEXを作成してくれるようになります。

条件に一致しない場合や任意のタイミングでINDEXを更新したい場合などに自前でINDEXを作成する必要があります。
自前でINDEXを作成するためにGitHubでDocSearch scraper(クローラ)が公開されています。
使用方法は公式ドキュメントで公開されていますが少し分かりづらくて自分で詰まったりしたので備忘録として残します。

INDEXの作成(クロール)までを実践します。クロールの定期実行などはここでは触れません。

目次

  • 概要
  • 目次
  • 参考サイト様
  • DocSearch scraperを使ってINDEXを作成する
    • Dockerイメージを使ってINDEXを作成する方法
      • 前提(環境)
      • Environmentファイルの作成
      • jqのインストール
      • config.jsonの作成
        • クロール中のINDEX作成のエラーについて
      • Dockerコンテナの起動&クロールの実行
    • pipenvを使ってINDEXを作成する方法
      • 前提(環境)
      • docsearch-scraperをclone
      • Environmentファイルの作成
      • pipenvのインストール
        • Error: Permission deniedが発生
      • pipenv installで仮想環境を構築
      • pipenv shellで仮想環境を起動
      • config.jsonの作成
        • クロール中のINDEX作成のエラーについて
      • クロールの実行
      • playgroundを使ってクローリングの結果確認
  • 雑感

参考サイト様

記事内で参照したサイト様は適宜リンクしていますがalgoliaのイメージを掴む上で参考になったサイト様をここで紹介させていただきます。

続きを読む