ベビー母恵夢 冬のショコラ
前にグランスタで、チョコスチームケーキとメープルバタークッキーを買って送った際のお礼が妹夫婦からやってきた!!
母恵夢祭りや~!!
ベビー母恵夢冬のショコラ袋6個入: ベビー母恵夢冬のショコラ
(もちろんラス 1)
母恵夢の優しいお味はそのままに、ショコラ感というかココア感っぽい風味。
甘いんだけどほのかな甘さ。
こんな洒落た母恵夢、あたくしが子供の頃は無かったでぇ。
パイプライン実行時のサービスプリンシパルエラーについて
パイプライン実行時にサービスプリンシパル絡みのエラーが出る場合の対処法。
開発中にこのエラーが 2 回も出てきてしまい、お客さんへ説明がつかないので、中の人に聞いてみた。
コレはちょっと恥ずかしかったな。。。
Azure AD の設定&Azure Data Factory でリンクされたサービスまではお客さん側だったから、絶対ウチの責では無いと思ってた。まぁ、結局は MS の責なんだが。
夜間定期実行分にも、手動実行分にも、再実行処理を入れてなかったからな。。。
クラウドの原則を忘れていたよ。。。
以下、詳細。
<エラー内容>
エラーコード:2200
詳細:UserErrorFaildToGetAccessTokenByServicePrincipal …
<現象>
- 上記エラーが不定期に出る。エラーなのでパイプライン処理は実行されていない。
- 上記エラーが出た後、何も修正せずに再度パイプラインを実行すると、問題無くパイプラインが成功する。
- 再現性が不明。
<対処法>
Azure Data Factory のアクティビティに再実行処理を入れる。
再実行処理を入れると、通常のサービスプリンシパルの認証処理が最初から実施されるため、上記エラーになった際でももう一度最初から認証処理を実施できる。
項目 | 説明 |
---|---|
再試行(Retry) | リトライ回数。 |
再試行間隔(Retry interval) | 再試行の間隔(秒)。エラー発生後、再試行間隔で設定した秒後に再試行する。 |
<原因>
本件のサービスプリンシパルエラーは、『サービスプリンシパルの認証を利用、かつ、最新でないセルフホステッド IR を使ったとき』に生じることが確認できている不具合とのこと。
認証処理時のライブラリが、初回認証時とリトライ認証時で異なることに起因している。
一時的なクラウドの障害等に対応するため、Azure Data Factory はサービスプリンシパルの認証が失敗した際に、内部でサービスプリンシパルの認証リトライ処理を実施している。
セルフホステッド IR の認証リトライ時に、1 度目の認証処理時に使用したライブラリとは異なる認証ライブラリを使用しているため、上記のエラーとなる。
認証ライブラリを統一するという話もあったようだが、結果的に「クラウドで生じうる一時的なエラーの 1 つ」と判断され、ライブラリ統一は見送った模様。
理由:リトライ処理さえ組み入れてくれたら両方とも使えるから。今のアーキテクチャを変更するメリットが無いからかも。
【参考:一時的な障害の処理】
認証 | ライブラリ |
---|---|
初回認証 | Microsoft Authentication Library(MSAL) |
リトライ認証 | Active Directory Authentication Library(ADAL) |
※MSAL の方が新しい。ADAL を使っている場合、MSAL に移行しないとやばそう。ADF 内では今後どうなるんだろう?
<特記事項>
このエラーは Azure AD に対して API を使用した認証を実施した際、数%以下の確率で起こる。
→ということは、あたくし、SSR を 2 日連続で引いたってことになるね!
Azure Data Factory 内部のリトライ処理は、1 度目の認証処理の失敗直後に実施される。認証処理は Azure Data Factory で扱うデータ量とは相関が無いため、処理時間の長さによる影響は無い。
サービスプリンシパル認証利用時に上記エラーが起こる可能性があるということは、マネージド ID 認証でも同様の可能性がある。
→マネージド ID 認証も内部ではサービスプリンシパル認証を使っているため。
→SQL 認証なら上記エラーは出ないかも・・・?(未検証)セキュリティの観点でリスクはあるけど。
Azure Data Factory の機能として、パイプラインをまとめて再実行する機能は無い。パイプラインを構成するアクティビティごとに再実行を設定すること。
例)パイプラインにアクティビティ 1、アクティビティ 2、アクティビティ 3 があり、アクティビティ 2 でコケた場合、
アクティビティ 2 の再実行が実施される。
アクティビティ 1 は完了扱いとなる。
これはなかなか勉強になったな。
文面だけじゃなく、Teams でも直接打合せして説明してくれたから、とても分かりやすかったし印象深いわ。
神戸プリン
いつも出張時にお土産を献上してくれるくまおじさんからのお土産。
(4 個入りを貰ったんだけど、貰って早速 1 個食っちゃったw)
プリン本体とカラメルソースは別になってる。紙製のスプーンが付いているのが高ポイント!
日持ちもするからゆっくり食べられるよ。
プリンはやや固めで、甘過ぎず、コクがある感じ。
カラメルソースかけなくても全然美味しい。
カラメルソースをかけるとさらに大人な味に。
プリン本体のコクが増して、上品な味になる感じ。
3連休の2日目
本日は3連休2日目。
絶賛バッチ中(月のもの)なので、この休みは助かった…!!
股から血ぃ流してニコニコなんかできんでぇ。。。
料理作ったり、整体に行ったり、洗濯したり、その合間にドラけししたり。
なるべく家でゆっくりしてる。
リュウジさんの煮卵を仕込んでるので、今日の晩酌が楽しみ。
新しい職場になって1週間ちょっと経った。
今のところ、みんないい人。
周りに関西人が多いので、会話のテンポがいい。東京人(関東一帯を指す)ばかりだったから新鮮やな。
前の会社でも知らないこと多かったけど、転職して Azure 縛りが無くなったら、さらに知らんことばっかりだった。当たり前やけど;
でも、今までやってきたことが全く通用しないわけではなく、あたくししか知見の無いドンピシャなこともあり、それが基で案件がもらえたり。
自分の力がどこまで通用するか、不安でもあり楽しみでもあったけど…今のところ何とかなりそう。
コピーアクティビティのシンクよりストアドプロシージャを設定する際のタイムアウトエラー解消方法について
コピーアクティビティのシンクより、セルフホステッド IR を使用した Azure SQL Database データセットを設定すると、長い「読み込み中」の後、「ストアドプロシージャ名」の読み込みに失敗し、エラーメッセージが表示される場合の対処法。
案件でこのエラーが出てイラっとしたので、中の人に聞いてみた。
2 パターンあるけど、いずれも「コードで指定することで、SQLDB に通信させない(=ストアドプロシージャの一覧を取得して来させない)」方法であると理解している。
以下、詳細。
<エラー内容>
エラーコード:11408
詳細:The operation has timed out.Activity ID:(任意のID)
<現象>
- Azure Data Factory Studio を開き、パイプラインよりコピーアクティビティのシンクを選択すると、初回は必ず起こる。
- 当時、シンク側のデータベースはストアドプロシージャが 1 つも無い状態。ストアドプロシージャを設定する必要が無いため、本エラーが出てどうしても困っている、という状況では無い。
<対処法>
該当のパイプラインの「{}」ボタンからコードを表示し、copy activity sink で読み込みが失敗している部分の "sqlWriterStoredProcedureName" を変更する。
まずはパターン 1 を試し、それでも事象が解消されない場合はパターン 2 を試してみる。
※"sqlWriterStoredProcedureName" に指定したものが初期値になる。
パターン 1 // 何も指定しない
"sink":{ "sqlWriterStoredProcedureName":"", }
パターン 2 // 任意のストアドプロシージャ名(存在せずとも良い)を指定
"sink":{ "sqlWriterStoredProcedureName":"[dbo].[xxxxx]", }
案件では、パターン 1、パターン 2 ともに想定した動きになった。
今回、お客さん側がインフラの設計・実装、あたくしがパイプラインの設計・実装と分かれていたため、インフラ側で抜本的な対策をするとなるとちょっと話が変わってくるはず。
セルフホステッド IR のスペックを上げる、とかになるのかな?
ザ・メープルマニア メープルバタークッキー
グランスタに用事があった際に、いつも何か送ってくれる妹と自分自身へのお土産を買ってきた。
(写真は 9 個入り。もう既に 1 個食ってる)
あたくし的に、これはアタリ!
包装を開けたらメープルのかほりが。
ラングドシャよりも固めな生地とバタークリームっぽい固形クリームが上品な味をかもしだし、とても良き。
メープル好きな妹もたいそう喜んでくれた。
あたくしはコーヒーが飲めないので紅茶一択なんだけど、クッキー自体に甘さがあるから、温かい紅茶(ストレート)が一番合うと思う。
長い休みの終わり
休みが終わるぅぅぅぅう…
こんなに長く休んだのは、社会人になって初めて。
最初の温泉が遥か遠い昔のよう。
あれはいいリフレッシュになったなぁ〜。また行きたいな〜。
この休みは、あたくしが『やりたい』と思ったことができた。
温泉入ってぼーーーーっとしたでしょ、
デパ地下で美味しそうな惣菜と弁当買って食べたでしょ、
エステ締めしたでしょ、
足を3Dで測ってもらった上で靴を買ったでしょ、
散髪行ったでしょ、
リュウジのバズレシピ見て何品か作ってみたでしょ、
平日昼間から飲んで美味しいもの食べたでしょ。
できなかったこともあったけど、なかなか充実した休みだったな。
明日から新しい職場や。
あたくし環境の変化に弱い生き物やから、緊張するなぁ。
はよ寝よう。