銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

MS LearnのAOAIのDALL-E 3を使用して画像を生成するサンプルを動かす方法

Azure OpenAI Serviceを試しているのですが、以下のページのDALL-E 3を使うC#のサンプルコードが動かなかったので、2024年2月25日現在で動かした手順を載せておきます。フィードバック済みです。 learn.microsoft.com まず前提条件が足りていません。DALL-E …

.NET Aspire プレビュー3が公開されました

.NET Aspireの最新の機能などをまとめてみます。 現在はpreview3が最新です。 learn.microsoft.com アップデートと破壊的変更 Aspireの開発ツールのアップデートは、Visual Studioを使う場合はVisual Studioをアップデートすれば自動的にアップデートされま…

Microsoft Fabricをお試しするには (Microsoft AI Tour Tokyoに参加してきました)

昨日、Microsoft AI Tour Tokyoに参加してきました。その中で、Microsoft MVPとして「Microsoft Fabric でデータサイエンスを始めよう」というワークショップのお手伝いをしてきました。 envision.microsoft.com お手伝いのために自分でもMicrosoft Fabricを…

Radiusを知る(11) v0.30のリリースと最近の機能追加

Radius v0.30 がリリースされました。 github.com Terraformレシピの強化 サブモジュールのサポート、Git モジュール ソースのサポート、バージョン範囲など、Terraform レシピにサポートされる新しい機能とシナリオが多数追加されました。private moduleは…

OpenFeature .NET SDKを試してみた(3) データ型と評価API

OpenFeature .NET は1/23にv1.4.1がリリースされました。 github.com 今回からこのバージョンで検証したコードを書いていますが、(1),(2)で扱った範囲では SetProviderメソッドが非推奨となり、代わりに非同期なSetProviderAsyncメソッドが導入されました。 …

OpenTelemetry .NETを理解する(10) .NET 8 におけるOpenTelemetry 概要

OpenTelemetryに関する記事をしばらく書いていなかったので、改めて .NET 8 がリリースされた時点でのOpenTelemetry への対応についてまとめてみたいと思います。 .NET 7のときはリリースノートにもOpenTelemetry対応が記載されていたのですが、.NET 8では記…

OpenFeature .NET SDKを試してみた(2) 名前付きクライアント

前回の記事のにコメントをいただいたので名前付きクライアントを試してみました。 tech.tanaka733.net プロバイダーは一度に1つ登録できるのですが、名前を付けることで複数登録してクライアント取得時に分けることができます。前回の記事では前半だけ書いて…

Radiusを知る(10) v0.29のリリースとロードマップ

Radiusに関してしばらく記事を書いていなかったので最近のRadiusについてまとめようと思います。 v0.29のリリース 最新版は1/6にリリースされたv0.29です。 github.com ハイライトとしては2点あり、1つはエッジバージョン(edge version)の公開です。最新の…

OpenFeature .NET SDKを試してみた(1)

OpenFeatureとは OpenFeatureは2023年12月CNCFのincubationプロジェクトに昇格したプロジェクトです。以下の記事の冒頭を翻訳して引用する形でOpenFeatureを紹介します。 www.cncf.io OpenFeature は、さまざまな機能フラグ管理ツールと互換性のある、機能フ…

.NET Aspireについて発表しました

.NET の 2 日間 2024 冬 (1 日目) ~3 コミュニティ合同イベント~ にて.NET Aspireの概略というセッションで発表しました。 dotnet-communities.connpass.com 発表資料はこちらです。 www.docswell.com 2日目のテーブルトークでも話題になりましたが、Aspir…

Radiusを知る(9) PodSpecを適用する

前回の記事で紹介したPodSpecを適用するサンプルプロジェクトを試してみたいと思います。 tech.tanaka733.net こちらのドキュメントで紹介されているものになります。 docs.radapp.io まずは、ドキュメント通りシンプルなRadiusアプリケーションを定義し展開…

Radiusを知る(8) Radiusのコンテナとは

前回から少し間が空きましたが、引き続きRadiusのコンテナを見ていきます。 docs.radapp.io RadiusにおけるコンテナはDockerコンテナと同等のものと読み取れます。サポートされるランタイム間ではコンテナワークロードを移植できるとありますが、現時点でサ…

Radiusを知る(7) Radiusのアプリケーションとは

ここからは、どのようにしてRadiusでアプリケーションの定義をしていくかというHow-to guideを読み進めていきます。まずはRadiusにおけるアプリケーションについてです。 docs.radapp.io Radius アプリケーションとは、すべての「もの」を 1 つにまとめた定…

Radiusを知る(6) eShopを展開する

Tutorialsの中では最後となる「Tutorial: eShop on containers」を試してみます。 docs.radapp.io このTutorialでは以下のeShop on Containersのマイクロサービスデモアプリ群をRadiusを追加したもので展開することを体験します。 github.com Radiusを追加し…

Radiusを知る(5) Daprを利用する

動かなかった部分の回避策がわかったので、今回はDaprのTutorialを試してました。 docs.radapp.io 動かなかった場所は2か所ありますが、うち1か所に対応するためにRadiusを最新の0.26に更新する必要があります。コメントの通り、CLIの更新、radius-system名…

Radiusを知る(4) helmと合わせて利用する

Tutorialsに「Use Helm to run your first app」が追加されていたので、試してみました。 docs.radapp.io このTutorialでは初期設定のアプリ定義をGitHubのリポジトリから取得して試すことになっています。また、仕組みとしてはアプリケーションをhelmで定義…

Radiusを知る(3) Recipeを試す

前回に続いてTutorialを進めていきますが、Daprのチュートリアルが一部動かなかったのでRecipesを試してみました。 docs.radapp.io RadiusではRecipeを使ってインフラのデプロイを自動化することで、インフラチームと開発者間の懸念事項の分離を行います。開…

Radiusを知る(2) Radiusとkubernetesのリソース

Tutorialの「Create a new application」を進めながら、Radiusのリソースを作成するとkubernetes側にどんなリソースが作成されるかを対応させながら試したいと思います。 docs.radapp.io まずは作業用フォルダを作成し、rad initコマンドで始めます。このと…

Radiusを知る(1)

Microsoftから発表された「Radius」。ネットワークのプロトコルとして知られているものと同名ですが、別物です。いったいこれが何か調べてみたいと思います。 cloudblogs.microsoft.com まずは、このブログを読みながら何を目的としているのか見てみます。 W…

OpenTelemetry .NETを理解する (9) .NET 7でのOpenTelemetry対応の強化

この記事はOpenTelemetry Advent Calendarの6日目の記事です。 qiita.com 先日リリースされた .NET 7ではObservabilityへの投資がリリースブログに項目にあります。 devblogs.microsoft.com .NETにおけるOpenTelemetry対応は、.NET本体ではなくOpenTelemetry…

.NET 7で導入されたビルトインコンテナサポートを試してみた

.NET 7になって .NET SDKだけでコンテナのビルドができるようになりました。 devblogs.microsoft.com このブログの最初にある通り、Microsoft.NET.Build.Containers というライブラリを追加すると利用できる機能ですが、(temporary)とあるのでそのうち不要に…

.NET 7についてまとめてみた

自分の勉強がてらまとめています。公式ブログを日本語で、すぐ目を通せることを目的にしています。この記事では.NET 7のテーマについてまとめています。 devblogs.microsoft.com .NET 7の新機能 シナリオ ユニファイド 1つの基本ライブラリ .NET 7をターゲッ…

OpenTelemetry .NETを理解する (8) 手動でのトレースの接続例: Azure Service Busを経由したアプリ間でトレースをつなげる

複数サービス間での分散トレースは、必要な情報をサービス間で伝搬するContext Propagationによって実現されています。 opentelemetry.io HTTPでサービスを呼び出している場合、HTTPヘッダーを利用して伝搬させることがほとんどで、最近になってW3C Trace Co…

Visual Studioからdocker composeを使っていて、突然「unexpected character "»" in variable name near "\ufeff" 」というエラーが出たら

"\ufeff" はかの有名なByte Order Mark(BOM)です。 現状のdocker composeでは.envファイルなどにBOMがあると正しく処理ができずエラーになるようです。 github.com Visual Studio使わない場合でも起こりえると思いますが、Visual Studioを使った docker co…

インサイドWindows第7版(下)第10章の書評

今回、インサイドWindows第7版(下)を山内さんより献本いただきました。全部読了する前に、最も興味を惹かれた第10章「管理、診断、トレース」を読んで、書評を掲載します。なお、ご自身のブログにて目次が公開されています。 yamanxworld.blogspot.com この…

OpenTelemetry .NETを理解する (7) おさらいとASP .NET Coreでの計装サンプル公開

ここでいちどおさらいです。 OpenTelemetry .NETの現在地 GitHubのページで確認できる通り、Logs、Metrics、Tracesの3要素ともStableになりました。 github.com が、注意書きにある通り、ILoggerなどのログフレームワークから出力されたログを取り込む OpenT…

OpenTelemetry .NETを理解する (6) コード修正不要な自動計装ライブラリを利用する

前回の投稿から時間が空きましたが、今回は今までとは違う方法での計装を試してみます。 今までの方法は、ソースコードの修正を前提とするものでした。トレース、ログ、メトリクスの1つ1つを詳細に計測するコードは必要なく、例えばASP.NET Coreに対応した計…

公開スライドをSlideshareからドクセルに移しています

今まで登壇資料などはSlideShareに公開していたのですが、徐々にドクセルに移しています。 www.docswell.com 一時期、docs.com を利用したこともあったのですが、サービス終了したこともありSlideShareを使い続けていました。が、買収により所有企業がころこ…

OpenTelemetry .NETを理解する (5) HttpClientによる外部通信処理を計測する

前回はスパンに情報を追加しました。 tech.tanaka733.net 次にトレースをさらにスパンで区切ってどの処理に時間がかかっているか計測することにします。スパンは作業の単位で区切ります。原理的には1メソッド1スパンで記録することもできますが、計測のオー…

OpenTelemetry .NETを理解する (4) Spanに情報を追加する

今回は、第2回目で計装したコードを基に、計測したSpanに情報を追加してみます。 tech.tanaka733.net 以下のコードを出発点にします。 app.MapGet("/weatherforecast", (ILogger<Program> logger, HttpContext context) => { var forecast = Enumerable.Range(1, 5).S</program>…