Azure DevOps 無料枠を使ってみた

Azuer DevOpsは五人までなら無料でプロジェクトを作成することができます。 今回は、Azure DevOpsを試しに使ってみました。 まず、Azure DevOpsで何ができるかというと プライベートリポジトリの作成・管理 CI / CD ツールを使ったビルド、デプロイ、テスト、の自動化(一個の並列ジョブまでなら無料) チーム内でのWikiの共有 Docker統合 といった、自分のような新参者から見ても、とても魅力的な機能が備わっています。 これが無料で試せるというヤバさですよ。 まだ試せていないのですが、他にも「Azure Test Plans」といったテストツールや「Azure Artifacts」といったパッケージ管理ツールがあることに加え、Marketplaceから拡張機能を追加することもできます。 それでは、簡単に、プロジェクト作成から、リポジトリの作成までの流れを見ていきましょう。 プライベートリポジトリの利用 Azure DevOpsのUIはとても見やすく、手順書とか必要ないんじゃないかという感じで、Azureを触ったことがないという人も、この記事を流し読みすれば、Azure Gitは雰囲気で使えるようになるんじゃないかと思います。 まず、URLからクローンするためにプライベートリポジトリーのURLをコピーします。一応、パブリックリポジトリも最初に選択できます。 SourceTreeでクローンすると、パスワードが求められるので、上図の「Generate Git Credential」からパスワードをコピーし、貼り付けます。 ローカルにクローンできたら、ローカルリポジトリに変更を加えてプッシュすると、リモートリポジトリに変更が反映されます。 これがあるだけで、チーム開発時のコードレビューがやりやすくなり、開発が楽しくなると思います。 次回は、、 業務で使うことになりそうなので、CI/CDツールの記事を描こうと思います。 Azure Pipelinesを使ってみた

Azure Functionチュートリアルをやってみた

.NET Core2.2でAzure Functionのプロジェクトを作成できるチュートリアルがあったのでやってみました。 Link:関数の作成 – C# (公式ドキュメント) Azure Functionはサーバーレスなサービスで、料金もあまりかからないところも魅力です。 Functionの価格設定は、毎月の関数の実行回数から算出されており、100万回アクセスまでは、無料(参考)となっているため、個人利用であればほぼ使い放題です。 今回は、このAzure Functionを試していきます。 プロジェクトの作成 選択するのはマーカーで印がつけられた部分 Function ランタイム :.NET Core2.2 関数テンプレート : HTTPトリガー → HTTP要求がトリガーとなって関数が呼ばれます。 ストレージアカウント : ストレージアカウントエミュレーター 承認レベル : Anonymous →Anonymousとすると、全てのクライアントからトリガーできます。チュートリアルのなので、とりあえずAnonymousとしました。 作成ボタンをクリックすると、プロジェクトが作成されます。 関数だけなので、かなりシンプルな構成ですね。

の部分が、関数名になります。 試しに「F5」キーを押して実行してみましょう。 Azure Function Core Toolsと呼ばれるコンソールが表示され、アプリケーションの動作が確認できます。 Visual Studioさん流石です コンソール画面の出力から、 赤線部のURLをコピーし、ブラウザーでの応答を確認します。 http://localhost:7071/api/Function1?name=debobonetとURLをたたいたら、Hello, debobonetという出力が返ってくることが確認できます。 これで、ローカル環境での開発は終わりです。簡単ですね Azureにデプロイ 次はAzureにプロジェクトを発行していきます。本来であれば、コマンドを叩いたりなどの操作が必要だったりすることが多いのですが、Visual Studioにはデプロイの機能も備わっています。 「ソリューションエクスプローラー」から、プロジェクトを右クリックし、「発行」を選択すると以下の画面へと遷移します。 Visual Studio Proのライセンスを持っていると、5000円分のAzureクレジットも付いてくるため、Visual Studio Professionalというサブスクリプションが選択できます。…

Syntax Highlighterプラグインでhtml特殊文字がエスケープされてしまう。

気合を入れてWordpressでブログを運営してみようと思いノリノリでSyntax Highlighterプラグインを入れてみたのですが、理想通りのものにならず、悔しい思いをしたのでその時の備忘録。 2019年11月16日時点でSyntax HighLighterはPrismaticというプラグインを使っていたのですが、html特殊文字の扱いに苦労したため、Crayon syntax highlighterに乗り換えました。 自分が使っているテーマはアルバトロスです。 現状 左側がマークダウンの状態で、矢印のように変換されるはずなのですが… 実際のところ「>」が特殊文字として判定され、変換されてしまいます😭 Prismの配色がとても気に入っていただけに本当に残念 いろいろと調べたのですが、結局Crayon syntax highlighterに乗り換えました。 Crayon syntax highlighterの場合、設定にて 赤四角のようにチェックを入れるとhtmlタグが不用意にエンコードされなくなります。 ただ見た目に関してはprismの方を圧倒的に気に入っていたので、できればもう一度prismに乗り換えたいなぁ WordPressのシンタックスハイライトをprismjsに乗り換えた

LINQの書き方(C#)

LINQとは LINQについて、Webサイトで調べると、"LINQはプログラミング言語(C#やVB)に統合されたクエリ用言語です。通常データベースアクセスに使用するSQLが、C#やVBのプログラム内では文字列として扱われるのに対し、LINQはそれ自体が言語に統合されたクエリとして認識されます。( 参考 )などと書かれていたりしますが、書籍管理アプリでLINQを使う場合のサンプルがあったほうが、わかりやすいかと思いますので、サンプルを貼っていきます。 基本的な考え方 ここでは、蔵書テーブルに対するやり取りのサンプルコードを使用します クエリ文の宣言

条件を加える

リストとして実体化する

1~3までの処理を一行にまとめる

処理を一行でまとめるとシンプルなコードが書けるのですが、 クエリ文を作成するところと、実体化する部分を分けることによって 、検索やソートの処理を簡単に実装することができます。以下は参考です。 Microsoft Document→ ASP.NET Core の Razor Pages と EF Core – 並べ替え、フィルター、ページング やりがちなミス 演習を進めていくと、貸し出しテーブルの「ステータス」と書籍マスタの書籍名を一つのページに表示させたいという場面があるかと思います。 その時に、以下のようにLINQを書くと、上手くいきません。

理由としては、上の図を見てもらえば分かると思うのですが、テーブルの設計上、BorrowBooksテーブルからしか、Booksテーブルの内容を参照できないことが原因になります。 他のテーブルのデータを取ってきたい場合は、青い矢印でたどっていくように、以下のようにコードを書くと上手くいくと思います。

Pythonでデータ加工(スクレイピング編)

BeautifulSoupというライブラリを使うと、簡単にスクレイピングができるので、そのことについてメモ

soup変数に格納された文字列を加工することが以下のように簡単にできます。

.NET Framework3.5を有効化する時に、「エラー: 0x800f0954」でハマった

前提 2019年11月8日時点 会社用PC Windows 10 →多分セキュリティ的な何かで上手く行かなかったと思われる。 開発中のアプリケーションでIE7に対応して欲しいとのことだったので、 .NET Framework4.7から.NET Framework3.5へと移行する必要があった。 解決策 普通にGoogle検索しても解決できなかったが、 Qiitaで調べたら一発だった。 【参考】1803を適用後のWindows 10で.NET Framework 3.5を有効にする 上記のサイトで手順7まで進んだら、コントロールパネルから.NET Framework3.5を有効化する。 【参考】Windows 8、Windows 8.1、および Windows 10 への .NET Framework 3.5 のインストール

ディレクトリ 構成図を作る

Qiitaの記事とかによくある

的なディレクトリ 構成図がtreeコマンドを打つだけで、表示できるみたいなので備忘録として。 MACの人はHomebrewでインストールできる 【参考】:こういうディレクトリの構成図、ツリー表示の簡単な書き方を今知った

kubernetes で ContainerCreating (FailedMount)

kubernetes で ContainerCreating (FailedMount) Podが起動しなかった問題 以下の記事にて解決 kubernetes で ContainerCreating (FailedMount) で Pod が起動しない時 Docker + Kubernetes で構築する Webアプリケーション 実践講座 上記の講座を受けている時に、mongodb Podが起動しないという問題発生。 変更を加えたマニフェストファイル

WordPressに記事を投稿した時に、”403 Forbidden”のエラーが出る

記事を投稿しようとした時に、今までは、普通に投稿できていたはずなのに、"403 forbidden"エラーに苦しんだので、備忘録を残しておきます。 結果として悪さをしていたのはおそらく以下のJSONが悪質なスクリプトだと判断されて、権限エラーになってしまったみたいです。

最初は、1行あたりの文字数制限とかを疑っていたのですが、そんな物は無かったようですね 笑☺️ 一応Xserverのトラブルシューティングの項目を貼っておきます。 結構いろいろ書いてありますが、今まで普通にエラーが出ていなかったのであれば、WAFの設定が怪しいですね。 サーバーのご契約が有効でない(サーバーの「凍結」状態) ドメインフォルダ内の[ public_html ]にデフォルトドキュメント(index.html や index.htm)がアップロードされていない [ public_html ](または上位フォルダ)が削除されている 特定のIPアドレスからアクセスを拒否している パーミッションに誤りがある .htaccessの記述に誤りがある WAF設定により不正アクセスと判断され拒否されている 記事の中にSQL文やJSONが書かれている時は、WAFにひかかっているかもという記事でした。

Kubernetes環境構築時に”The connection to the server 10.0.2.15:8443 was refused “

前提 以下の参考サイトを元に、Ubuntu環境、CentOS環境両方で試したのですが、同じエラーになってしまいました。 参考サイト:VagrantでkubeadmでKubernetesを起動する \ CentOS仮想環境は参考サイトの物を使いました。Ubuntuも確かそうだった気がする… 一応、最後には上手く行ったので備忘録を残しておきます CentOS 7 Vagrant upした後にkubectl versionと打つと、

となりHostServeにアクセス拒否されたというエラーになってしまいます。 調べてみるとFire wallのせいでアクセス拒否されている可能性があるとのことだったので、以下のコマンドを実行しておきます。

終わったら、kubernetesクラスターを実行しましょう

ここでこけたら、VMマシーンのメモリが足りていない可能性あり Ubuntu vagrant upした直後にkubectl vaersionを打ち込むと以下のようにエラーになってしまいました。

HostServerにアクセス拒否されたというエラーです。 どうやら設定が足りていないようです。スーパーユーザーで試してもダメでした。

ここで助けられたのが以下のサイトです。 参考サイトkubectl実行時に「localhost:8080 was refused」が出る時の対処

kubectl config viewで、Kubectlの接続ファイルが空であることが確認できたので、以下のコマンドを打ち込んでいきます。

kubernetesの接続設定が終わったので、kubernetesクラスターを実行します。

後半のエラーが気になりますが、Kubeコマンドが使えることを確認できました。 2020年4月5日 追記 この記事を読んでいる方のほとんどが学習用にKubernetes環境を用意しようとしている方だと思います。 僕自身もKubernetesについて学習している最中なのですが、今はローカルに全てのKubernetes環境を用意するのではなく、クラウドサービスのKubernetesエンジンを使って学習を進めています。 こっちの方が設定エラーなどに気を取られず、学習を進められるための準備としては手っ取り早いかと思います。 GCP クイックスタート | Kubernetes Engine のドキュメント | Google Cloud Google AccountでGoogle…