Open52

Azure学習記録

t13801206t13801206

試験 AZ-900: Microsoft Azure の基礎

試験日:6/4

残り12日で残り5モジュール
7割正解で合格ギリギリを目指す

  1. 主要概念 94分
    1. 基礎の概要 43分
    2. 基本的な概念 24分
    3. アーキテクチャのコアコンポーネント 27分
  2. 主要サービス 115分
    1. Azure Computeサービス 52分
    2. ネットワークサービス 36分
    3. ストレージサービス 27分
    4. データベースおよび分析サービス 43分
  3. コアソリューションおよび管理ツール 113分
    1. ニーズに最適なAIサービスを選択 23分
    2. ビジネスシナリオに最適なサーバレステクノロジを選択 20分
    3. 組織がより優れたソリューションを構築するための最適なツールを選択 21分
    4. Azure環境の管理と構成に最適なツールを選択 27分
    5. 可視性、分析情報、サービス停止の軽減策のために最適な監視サービスを選択 22分
  4. 一般的なセキュリティ機能およびネットワークセキュリティ機能 59分
    1. Azureでのセキュリティ脅威からの保護 25分
    2. Azureネットワーク接続をセキュリティで保護する 34分
  5. ID、ガバナンス、プライバシー、およびコンプライアンス機能 92分
    1. Azure ID サービスを使用してアプリケーションへのアクセスをセキュリティで保護する 17分
    2. Azureでのクラウドガバナンス戦略を構築 48分
    3. Azureのプライバシー、コンプライアンス、データ保護の標準 27分
  6. Azure Cost Management およびサービスレベルアグリーメント 70分
    1. Azureのコストを計画して管理 43分
    2. SLAとサービスライフサイクルを調べて適切なAzureサービスを選択 27分
t13801206t13801206

Azure Portal

多くの点で、Azure CLI で実行できることは Azure PowerShell とほぼ同じです。 主な違いは使用する構文です。 既に PowerShell または Bash に習熟している場合は、好みのツールを使用できます。

テスト1週間前

AZ900のラーニングパスを消化した

模擬試験を受ける

  • データベースの種類がたくさんあって、名前と中身が一致しない
  • 可用性ゾーンやら管理グループやら、最初のほうに学習したことが頭から抜けている
  • ラーニングパスの知識チェックは1問選択形式ばかりだが、本屋に並んでいる参考書では該当するものをすべて選べ形式がある(まずい)

余談

料金計算ツールは、これからAzureツールを無料で使うための見積もり計算に使えそう

t13801206t13801206

練習問題(問題集)( Azure Fundamentals(Azure基礎)AZ-900)

ほんとうに類似問題が出るのかわからないが利用してみる
解説にMSドキュメントへの関連リンクが置いてあって使いやすい

下17問間違えた。ギリギリ合格できるか・・・

Q3: Azure StorageはIaaS?PaaS?
Q9: 物理サーバのセキュリティ管理はベンダー責任
Q11: よくわからないが、専門性はパブリック以外に置く
Q15: 可用性ゾーン=AZ≒データセンター。西日本はAZが1個、東日本は3個
Q16: AIは関係ない。Apache Sparkと連携。Hadoopに比べSparkは後発であり、リアルタイム処理が得意だとか
Q17: 分析基盤のHDInsightはHadoopのHDかとおもったけど、、比較表を読んでもわからない。復習すること!
Q21: サブスクリプションの上限を引き上げるにはサポート要求する
Q29: Powershell Core だけでは足りない
Q30: 「AppService はサーバレス環境を提供する」がなぜ間違いなのか?
Q39: Service Health以外にもポータルから仮想マシンのところを見ると計画メンテ情報が得られる
Q44: IoTで取得したデータはDataLakeにいれる
Q45: AzureCLIはアンドロイドにはインストールできない
Q48: Public IP はそれ単体でリソースであることを知った
Q59: セキュリティトークンはADから取得する
Q61: タグを必須にすることもポリシーで規定できる
Q66: Security Center はクラウドディフェンダーに名称変更した。参照。ディフェンダーで検知し、Sentinelで対処する。
Q72: MS Learnで勉強しなかったような・・・。サポートプランの比較

t13801206t13801206

海外のExamをChromeで翻訳して解説を読む

  • 英語も平たんなので、十分に読める
  • 1ページに5問掲載されていて、次ページに行くたびに「ロボットですか?」と聞かれる
  • ひっかけ臭い問題だったり、どうしても納得いかない問題がある場合、併設されているディスカッションページを開くと、同じように愚痴っている人がいて気が収まる

Azure Storage はIaasか?PaaSか?

こちらでも議論されている。投票も真っ二つ。この問題は出題してほしくない・・。

t13801206t13801206

試験前日までにAZ-900と名の付く参考書を4冊ほどパラ読み
模擬試験を解いた感じだと7割はいけそうな予感(フラグ?)
次はAZ-104を受けるのがよさそう

t13801206t13801206

1つの部門の請求は1つにまとめたい

  • Azureの請求単位はサブスクリプション
  • 管理グループには複数のサブスクリプションが含まれる
    • たとえば「総務部」という管理グループであっても、請求が分かれてしまう。(それはめんどくさい)
  • 一方で、サブスクリプションにはタグをつけることができる
    • 同一のタグを持つものをグループ化できる
      • 論理的にサブスクリプション(請求)を1つにまとめることができる
  • 「総務部」管理グループは「Soumu」タグをつけよう!、と総務部長が決めれば、総務部にある複数のサブスクリプションを1つに(論理的に)まとめることができる

部長の命令を忘れてしまった!

  • 人は忘れる生き物である
  • 総務部のうっかり者が新たな仮想マシンを作ったときにSoumuタグをつけるのを忘れてしまった!
  • サブスクリプション分だけ費用は払ったものの、タグで論理的にまとめた請求と計算が合わない
    • (うっかり者が仮想マシンにタグをつけ忘れたので、その1台分の請求が論理的には計上されていないからだ)

タグ付けを忘れないようにポリシーにおまかせ

  • 「あなたが作るリソースにはSoumuタグをつけなさい」という総務部長の命令をポリシーに書く
  • そのポリシーを「総務」管理グループに適用する
  • ポリシーの評価を行うことで、タグをつけ忘れた仮想マシンがあぶりだされる
    • ポリシーを適用した途端に、すべてのリソースにタグ付けが自動的にされたりはしない
    • あくまで「ポリシーに違反してますよ~」と教えてくれるだけ
t13801206t13801206

AZ-104のラーニングパス

  • AZ-104:Azure 管理者向けの前提条件
    • ツールを使用して Azure リソースを構成する
    • Azure Resource Manager を使用する
    • Azure Resource Manager テンプレートを使用してリソースを構成する
    • PowerShell でスクリプトを使用して Azure タスクを自動化する
    • CLI を使用した Azure サービスの制御
    • JSON ARM テンプレートを使用して Azure インフラストラクチャをデプロイする
  • AZ-104:Azure での ID とガバナンスの管理
    • Azure Active Directory を構成する
    • ユーザー アカウントとグループ アカウントを構成する
    • サブスクリプションを構成する
    • Azure Policy を構成する
    • ロールベースのアクセス制御の構成
    • Azure Active Directory に Azure のユーザーとグループを作成する
    • Azure ロールベースのアクセス制御 (Azure RBAC) を使用した Azure リソースのセキュリティ保護
    • Azure Active Directory のセルフサービス パスワード リセット を使用して、ユーザーがパスワードをリセットできるようにする
  • AZ-104:Azure でのストレージの実装と管理
    • ストレージ アカウントの構成
    • BLOB ストレージを構成する
    • ストレージ セキュリティを構成する
    • Azure Files と Azure File Sync を構成する
    • ツールを使用したストレージの構成
    • Azure Storage アカウントの作成
    • Shared Access Signature を使用して Azure Storage へのアクセスを制御する
    • Azure Storage Explorer を使用してデータをアップロード、ダウンロード、管理する
  • AZ-104:Azure のコンピューティング リソースのデプロイと管理
    • 仮想マシンの構成
    • 仮想マシンの可用性を構成する
    • 仮想マシン拡張機能を構成する
    • App Service プランを構成する
    • Azure App Service を構成する
    • Azure Container Instances を構成する
    • Azure Kubernetes Service の構成
    • Azure CLI を使用して仮想マシンを管理する
    • Azure で Windows 仮想マシンを作成する
    • Azure App Service で Web アプリケーションをホストする
    • Azure Automation State Configuration を使用して仮想マシンの設定を保護する
  • AZ-104:Azure 管理者向けの仮想ネットワークの構成と管理
    • 仮想ネットワークを構成する
    • ネットワーク セキュリティ グループを構成する
    • Azure Firewall を構成する
    • Azure DNS を構成する
    • 仮想ネットワーク ピアリングを構成する
    • VPN Gateway を構成する
    • ExpressRoute と Virtual WAN を構成する
    • ネットワーク ルーティングとエンドポイントを構成する
    • Azure Load Balancer を構成する
    • Azure Application Gateway を構成する
    • Azure デプロイの IP アドレス指定スキーマを設計する
    • Azure 仮想ネットワーク全体にサービスを分散させ、仮想ネットワーク ピアリングを使用して統合する
    • Azure DNS でドメインをホストする
    • ルートを使用して Azure デプロイでのトラフィック フローを管理および制御する
    • Azure Load Balancer を使用してアプリケーションのスケーラビリティと回復性を向上させる
  • AZ-104:Azure リソースの監視とバックアップ
    • ファイルとフォルダーのバックアップを構成する
    • 仮想マシンのバックアップを構成する
    • Azure Monitor を構成する
    • Azure アラートを構成する
    • Log Analytics の構成
    • Network Watcher を構成する
    • Azure のアラートを使用したインシデント対応の向上
    • Azure Monitor ログを使用して Azure インフラストラクチャを分析する
    • Azure Monitor VM Insights を使用して仮想マシンのパフォーマンスを監視する
t13801206t13801206

ラーニングパスAZ104をひと通り読み終えた

模擬試験サイトに着手した
設問1から議論が紛糾している(学びがある)

グローバル管理者

  • 既存のAzureADでUser1とUser2がグローバル管理者
  • User1があたらしいテナントを作成する
  • このときUser2はあたらしいテナントに新規ユーザーを作成できるか?

答えは「できる」となっているが、議論では「できない」派が多数

ある人の意見を引用↓

外部テナントを作成すると、グローバル管理者自身がゲストアカウントになるため、別のアカウントを追加してグローバル管理者にする必要があります。ユーザー2が2番目のテナントにアカウントを作成するには、最初にゲストとして招待されてから、管理者ロールまたはユーザー管理者ロールの割り当てが行われる必要があります。

ユーザー管理者

ユーザーの追加、ユーザー管理者はできそうだけど、設問3の答えはNo!

ユーザーを追加または削除するには、ユーザー管理者またはグローバル管理者である必要があります。

動的グループ

  • 「部長」グループに決裁権を与えるイメージ
    • グループ自体は存続し続け、そのグループに属する人が半期ごとに入れ替わったりする

アクセスレビュー

全然頭に入ってなかった・・・

設問8 VNetの作成が禁止されているところでVMを作成できるか?

  • ネットワークがつくれないRGでVMをつくって意味があるのかわからないが、つくれることはつくれる?
  • サブスクリプションは管理グループ間を移動できるが、同時に2か所に属することはできない
t13801206t13801206

組み込みロール

おもったよりもAzure 組み込みロールの話が多い
DevTest Labs Userは仮想マシンの起動・再起動などはできるが、Logic Appの作成はできない

Logic App Contributor ロジック アプリを管理できますが、アクセス権を変更することはできません。
Logic App Operator ロジック アプリの読み取り、有効化、無効化ができますが、編集または更新はできません。

kusto

Azure Monitor Log Analytics でのクエリはkusto
searchとパイプでつなぐ構文が特徴的

Kusto クエリは、データを処理して結果を返すための、読み取り専用の要求です。

DNS

実際の業務では必要なドメイン管理のところ

Blobストレージ

オブジェクトストレージデータは、Blobストレージおよび汎用v2(GPv2)アカウントのホット、クール、またはアーカイブにのみ階層化できます。汎用v1(GPv1)アカウントは、階層化をサポートしていません。
汎用v2アカウントは、Azure Storageのギガバイトあたりの最低容量価格と、業界で競争力のあるトランザクション価格を提供します。https://www.examtopics.com/exams/microsoft/az-104/view/10/

LRSは3回レプリケートされる

AzCopy を承認する

ストレージの種類 現在サポートされている認証方法
Blob Storage Azure AD および SAS
File Storage SAS のみ

File Sync手順

  • プレミアムファイル共有はファイルストレージのみ
  • hot/coolなどの階層化が汎用v2またはブロブストレージのみ
t13801206t13801206

スケールセットの更新

アプリケーションのダウンタイムを最小限に抑えるため、アップグレードはバッチで行われ、いつでもスケール セットの 20% を超えてアップグレードされることはありません。

t13801206t13801206

テスト2週間前

Microsoft AZ-104 Examは総ページ数の半分までしか実施できないとわかる。残り半分の問題にアクセスするためには、アカウント登録が必要。
面倒くさいので、登録はせず、時間があれば前半だけを復習する。

MS Learn AZ-104 知識チェック

知識チェックのページだけ復習し、頭に入っていないところを記録する。

保存されているアクセス ポリシーを使用すると、サーバー側でのサービス レベルの共有アクセス署名 (SAS) をさらに制御できます。 保存されているアクセス ポリシーを設定することで、共有アクセス署名をグループ化し、ポリシーによって規定された署名を詳細に制限できます。

t13801206t13801206

App Serviceプラン

知識チェックの答えが腑に落ちない。
Stanndardの容量は50GBだから、正解はPremiumではないのか?


https://docs.microsoft.com/ja-jp/learn/modules/configure-app-service-plans/6-knowledge-check

https://azure.microsoft.com/ja-jp/pricing/details/app-service/windows/

t13801206t13801206

テスト2週間前じゃなくて、来週がテストだった

無料国際認定試験参考書

Qiitaで紹介されていたのをみつけた。
MS Learnや日本語の参考書章末問題にくらべて、けっこう難しい

t13801206t13801206
  • Azure Policyは実行できるときは実行する。準拠していない場合は"評価"でエラーになる。
    • 常にエラーを確認→手動で変更かと思っていたが、いける場合はいくのがPolicy
    • 新規リソースへのタグ付けは自動でできる
  • File Syncの2問目回答がまちがえている。
    • 登録済みサーバーは複数のサーバー エンドポイントをサポートできますが、同期グループには、常に登録済みサーバーあたり 1 つのサーバー エンドポイントしか含めることができません。

  • App ServiceのバックアップはStanndard以上が必要!
  • Policyの割り当て範囲と除外範囲
    • サブスクリプション、管理グループ、リソースグループに割り当て
    • リソースグループとリソースを除外
t13801206t13801206

ファイル操作元 同期周期
サーバーエンドポイント 即時
クラウドエンドポイント (Azure Portal または SMB) 約 24 時間ごと

  • タグ付けポリシーは修復タスクをトリガーすることで、既存のリソース グループを修復できます参考
  • HAポートなんてはじめて聞いた・・・

やっぱり解きやすい問題サイトはexamtopics

手持ちの章末問題にくらべて、実際の問題のほうが難しい(当たり前?)で不安になる

t13801206t13801206
  • ネットワークコントリビューターはバックエンドプールもヘルスプローブも設定できる
  • 180日後に削除ときたら
    • 有効期限ポリシーは、Azure Active Directory(Azure AD)のOffice365グループに対してのみ設定できます

  • タグ付けポリシーは、先にあったものは変更かからない。後から追加したものはそのタグがつく
  • リソースグループ間でAppServiceを移動すると、そのRGに割り当てられているポリシーを適用できる
  • 質問#34Office365ライセンスがなくても動的割り当ては行われる
  • blobとfileがリカバリーと同じリージョンにあっても、バックアップできるのはfileのみ
    • アクセスの方法:SAS、blobのみAzure AD
t13801206t13801206

試験当日(2022/7/2)

  • 無事合格
  • 8割以上は見たことのある問題だった(ネットにあるフリーの過去問)
  • 30分くらい余裕をもって終わり、見直しをして10分前に終わろうとしたらまだ問題が続いていた!
    • ケーススタディのような情報がたくさん書いてあって設問が3つくらいあるやつ
    • 最初に56問?100分ってあって、問題が46問くらいしかなくて違和感はあったものの、完了を押して次のフェーズに進むものとは・・・
t13801206t13801206

試験 AZ-204: Developing Solutions for Microsoft Azure

  1. Azure App Service Web アプリを作成する
  2. Azure Functions を実装する
  3. BLOB ストレージを使用するソリューションを開発する
  4. Azure Cosmos DB を使用するソリューションを開発する
  5. サービスとしてのインフラストラクチャ ソリューションを実装する
  6. ユーザー認証と承認を実装する
  7. セキュリティで保護されたクラウド ソリューションを実装する
  8. API Management の実装
  9. イベントベースのソリューションの開発
  10. メッセージ ベースのソリューションを開発する
  11. 監視とログ記録をサポートするソリューションをインストルメントする
  12. キャッシュとコンテンツ配信をソリューション内に統合する
t13801206t13801206

機能フラグ

ポータルの構成を変更することで
デプロイした後からでもアプリのふるまいを変えることができる
あとで実際に使ってみたい

https://docs.microsoft.com/ja-jp/azure/azure-app-configuration/use-feature-flags-dotnet-core?tabs=core5x

スロットのルーティング

?x-ms-routing-name=selfまたはstagingにすることで、明示的にアクセス先を切り替えることができる

WebJobs

AZ-104では聞いたことがなかった
Functionsの前身になるらしい

Azure FunctionsとCosmos DBのバインド

これもあとで使ってみたい

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-cosmosdb-v2?tabs=in-process%2Cfunctionsv2&pivots=programming-language-csharp

Duarable Functions

"永続的な関数"

パターンがいくつかある。チュートリアルもしっかり用意されている

https://docs.microsoft.com/ja-jp/learn/modules/implement-durable-functions/2-durable-functions-overview

なんか内容が盛りだくさんすぎてついていけない
参考になりそうな記事👇

https://tech-lab.sios.jp/archives/12991

これは1度手を動かしてみないと、全然手のひらに乗った感じがしない

https://blog.okazuki.jp/entry/2019/08/05/210627

t13801206t13801206

BLOBの種類

  • ブロック:テキストとバイナリ
  • 追加:ロギング
  • ページ:VHD、仮想マシンのディスク

論理パーティションはパーティションキーで区切られる

https://docs.microsoft.com/ja-jp/azure/cosmos-db/partitioning-overview

az group create --location japaneast --name testrg

ストアドプロシージャ

データが格納される前後で実行される関数をJavascriptで書く
ここまでは.NETで完結していたのに、ついにJavascriptが出現してしまった

CosmosDBの整合性

RDBでいうところのリピータブルリードなどの区分けに相当するのか?
日本語だとまったくイメージがわかない。とりあえず5種あることだけ。

強固、有界整合性制約、セッション、一貫性のあるプレフィックス、最終的

テンプレートスペック

Azureポータルでは"テンプレートの仕様"と表現される
ARMテンプレートを保持しておくためのリソース

t13801206t13801206

GraphAPI

いろいろAzureいじってみたけど、.NET コンソールから自分のプロファイル取得できず。
リベンジする。

https://qiita.com/ns_mitsu/items/841d5109708e0971449d

マネージドID

種類 説明
システム割り当て ID アプリが削除されると消える。アプリは1つしかIDを持てない
ユーザー割り当て ID 独自のリソース。アプリは複数IDを持てる

Azureポータルからはアクセス権を付与できなかったりするので、初心者には敷居が高い

Azure App Configuration

こんな機能があるのも初めて知った
無料版もある

Key Vault

  • 認証のベストプラクティスは、リソースのマネージドID(ユーザー割り当てID)を使う方法
    • キーボルトにアクセスできるIDをあらかじめ作成しておき、適宜アプリに割り当てる
  • アプリにIDを割り当てられない場合は、Azure ADにアプリを登録する
t13801206t13801206

Event Hub

無料プランが無いだけで、(気軽に試せないという理由で)学習意欲が下がる

Event Grid

こちらは一か月あたりの無料枠がある!なので演習ができる!

システムトピックでAppServiceのリソースが一覧に出てこなくて、画面を閉じた。

CDN

とくに書くことなし

Redis

NoSQLのインメモリDB
SQLiteのNoSQL版?

API Managementの演習

t13801206t13801206

キュー

Storageのキューと、Service Busのキューの2種類がある

Service Busのメッセージングは3種

  • キュー
    • 取り出してしまう方法と、ロックして削除をマークする方法の2方式
    • Peekとは、中身を取り出さずに見るだけの操作
  • トピックおよびサブスクリプション
    • Pub/Subパターン
  • ルール/アクション
    • プロパティに変更を加える?よくわからない

AMQPでシリアル化する

従来型の通信規格であるHTTPと比べ、通信時間が短縮できるAMQPは、IoT産業における作業の効率化に役立ちます。IoT用語辞典

演習はこちら

メッセージキューとは

AWSだけど・・・
キューがバッファになるから、処理系はピーク時のことを考えずに平常運転すればよい

https://aws.amazon.com/jp/message-queue/

t13801206t13801206

ExampTopics

AZ-204は1~22ページまでは無料、23ページ以降は月26ドルの有料コンテンツ
とりあえず22ページまでを完璧にする

ログインすれば23ページ以降も無料かと思ったら、そうではなかった・・・

page1

質問2

  • 「Azure Storage キュー→Azure Function」 を Kubernetes に移行
  • Kubernetes カスタム リソース定義 (CRD)

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-storage-queue-trigger?tabs=in-process%2Cextensionv5&pivots=programming-language-csharp

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-kubernetes-keda

質問3

GitHubを使ったAppServiceのデプロイ。実用的。

質問4

  • ユーザーがWebアプリに画像をアップロード
  • WebアプリがBlobストレージに画像を保存
  • 保存されたらFunctionsがモバイル要画像を生成

Event Gridを使う?

関数アプリがアイドル状態になっている場合、新しい BLOB の処理が最大で 10 分間遅延する可能性があります。

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=in-process%2Cextensionv5&pivots=programming-language-csharp#alternatives

page2

質問5

  • デプロイスロットの自動スワップ設定
  • configファイルのapplicationInitialization

https://docs.microsoft.com/ja-jp/azure/app-service/deploy-staging-slots#specify-custom-warm-up

https://docs.microsoft.com/ja-jp/learn/modules/understand-app-service-deployment-slots/4-swap-deployment-slots

質問8

質問4と同じ

https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-blob-event-overview

t13801206t13801206

page3

質問9

クライアント照明書はリクエストヘッダーBase64エンコーディングされている

https://docs.microsoft.com/ja-jp/azure/app-service/app-service-web-configure-tls-mutual-auth#access-client-certificate

質問10

  • Linux 上の App Service でコンテナーを実行
  • まだリソースグループは無い
  • 3つの Azure CLI コマンドは?

グループ作成→プラン作成→アプリ作成

質問11

Docker イメージをホストし、カスタム ドメインを App Service Web アプリにマップする

模範解答と議論が食い違っているが
おそらく「変数定義→アプリ作成→コンテナセット→ホスト名設定」だと思う

https://docs.microsoft.com/ja-jp/azure/app-service/tutorial-custom-container?pivots=container-linux#deploy-the-image-and-test-the-app

質問12

  • Azure Functions ホストのインスタンスを動的に追加および削除
    • 自動スケール
  • コールド スタートを回避(インスタンスが常にウォーム)
    • 事前ウォーミングはプレミアムプランのみ
  • VNet に接続
    • プレミアムプランのみ
  • Functionsが削除された場合は、Azure Key Vault インスタンスへの認証を削除

プランは「プレミアム」にして、システム割り当てIDをつくり、キーボルトのポリシー変更

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-scale#overview-of-plans

https://docs.microsoft.com/ja-jp/azure/active-directory/managed-identities-azure-resources/overview#managed-identity-types

t13801206t13801206

page4

質問15

Javascriptの問題、雰囲気で解ける気がする。アンスコ2連続の意味は分かってない

getRequest(!"tip" in i)setBody

最後ローカル変数rserBodyしたところで何になるのだろうか?

質問16

Duarable Function の非同期APIで実現可能か?

このパターンを実装する一般的な方法は、HTTP エンドポイントによって実行時間の長いアクションをトリガーすることです。

https://docs.microsoft.com/ja-jp/azure/azure-functions/durable/durable-functions-overview?tabs=csharp#async-http

要件「アプリがタイムアウトせず、BLOB データを処理することを確認する必要があります。」に対して、Functionsのタイムアプトは230秒でタイムアウトする

関数アプリのタイムアウト設定に関係なく、HTTP トリガー関数で要求に応答するためにかかる最大時間は 230 秒です。
より長い処理時間では、Durable Functions async pattern の使用を検討するか、実際の作業を遅らせて、即座に応答を返します。

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-scale#timeout

t13801206t13801206

page5

質問17

またもやAzure Functionの230秒問題に係る問題
ディスカッションを読む限り、「Duarable Functionが最適解だけどService Busで受けるのもあり」という感じ

質問18

質問17と同じ問題
App Serviceのプラン変更では対応できない

質問19

これも既出の問題
ユーザー→Web サービスに写真アップ→Blob ストレージに保存
この先にAzure Functionへ処理が移動することは正解

途中でEvet Gridを挟む場合、汎用v2BlobのみがEvent Gridに対応していることに注意する

イベントの統合をサポートしているのは、StorageV2 (汎用 v2) 、BlockBlobStorage、および BlobStorage の種類のストレージ アカウントだけです。 Storage (汎用 v1) では、Event Grid との統合はサポート "されていません"。

https://docs.microsoft.com/ja-jp/azure/event-grid/event-schema-blob-storage?tabs=event-grid-event-schema

質問20

Blobストレージのあれこれを保存するには、change feed(変更フィード)を有効にする

https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-blob-change-feed?tabs=azure-portal

t13801206t13801206

page6

質問21

Dockerfileの書き方

- FROM - WORKDIR - COPY - RUN - CMDの順

質問22

Blobストレージの格納後にAzure Functionを発動するには
常にON状態のプラン(≒従量課金)を選択し、トリガーを機に発動する

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-scale#overview-of-plans

トリガーとバインドの違い

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-triggers-bindings?tabs=csharp

質問23

ARMテンプレートの穴埋め

  • concatの第一引数にはcopyIndex()関数
  • copy構文でリソースを複数生成
  • VMの依存dependsOnには各リソース

https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/templates/copy-resources#syntax

質問24

HTTPトリガーしか使ったことないからわからなかったけど
キューをトリガーとした場合、5回試行&バッチ16がデフォルトらしい

5回試行してダメだった場合、有害キュー=ポイズン(毒)に移動する

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-storage-queue-trigger?tabs=in-process%2Cextensionv5&pivots=programming-language-csharp#poison-messages

t13801206t13801206

page7

質問25

CosmosDBの整合性レベル
両極端のStrongEventual以外がまだあやふや

https://docs.microsoft.com/ja-jp/azure/cosmos-db/consistency-levels

質問26

チーム全体に整ったVMを配布する場合は、Powershellでジェネレイトし、そのイメージはBlobに保存する

https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/tutorial-custom-images

質問27

プロジェクトファイルにPreBuildを追加と、リポジトリに.deploymentを置くのが正解らしいけど、要検証!!

質問28

ARMテンプレートをエクスポートして、他のリージョンへコピーする作業
順不同のように思える選択肢があり、議論がまとまっていないようにみえ、正解わからず

https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/templates/quickstart-create-templates-use-the-portal#edit-and-deploy-the-template

page8

質問29

VMのFirewallの構成にはコマンド実行、Powershellスクリプトの実行はカスタムスクリプト拡張機能

https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/run-command

https://docs.microsoft.com/ja-jp/azure/virtual-machines/extensions/custom-script-windows

質問30

App Serviceのデプロイ手順。Powershellコマンドになったところで、難しくはない

質問31

VMにシステム割り当てIDを付与する

https://github.com/MicrosoftDocs/azure-docs.ja-jp/blob/master/articles/active-directory/managed-identities-azure-resources/qs-configure-powershell-windows-vm.md#システム割り当てマネージド-id

質問32

既出。Azure Functionの従量課金プランはコールドスタート

https://docs.microsoft.com/ja-jp/azure/architecture/serverless-quest/functions-app-operations#understand-and-address-cold-starts

t13801206t13801206

page9

質問33

スワップ時のウォームアップについて
applicationInitializationの記述がないから「いいえ」かと思ったら、議論では「はい」が優勢っぽい

https://docs.microsoft.com/ja-jp/azure/app-service/deploy-staging-slots#specify-custom-warm-up

質問34

Powershellスクリプトの問題。長い割には易しい問題。

質問35

rustを使ってAzure FunctionでBlobストレージと接続もする

カスタムハンドラーでrustが使える。拡張バンドルについては要復習!!

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-custom-handlers

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-register

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-cosmosdb-v2?tabs=in-process%2Cfunctionsv2&pivots=programming-language-csharp#install-extension

質問36

AzureコンテナAppのログを永続化する方法

WEBSITES_ENABLE_APP_SERVICE_STORAGE=true DIAGDATA=/home

https://docs.microsoft.com/ja-jp/troubleshoot/azure/app-service/faqs-app-service-linux#---------------------------------smb--------------home-----------------

t13801206t13801206

page10

質問37

Application Gatewayの問題。全然わからなかった!

  • [アプリ サービスに使用]
  • [バックエンド パスをオーバーライドする]

証明書を登録する必要はない!

https://docs.microsoft.com/ja-jp/azure/application-gateway/application-gateway-web-app-overview

ここから質問セット2

質問1

  • CosmosDBはTableAPIが使える
  • gameIdがパーティションキーであることは問題文からは読み取れない

https://docs.microsoft.com/ja-jp/azure/cosmos-db/table/introduction

質問2

AcquireLeaseAsync の引数がnullだから無限リースなのか・・・まんまと引っかかった。(というか、この関数を知らない状態で挙動を推測するのは酷)

If null, an infinite lease will be acquired.

https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.storage.blob.cloudblobcontainer.acquireleaseasync?view=azure-dotnet-legacy

質問3

アーカイブ層のリハイドレーションは15時間

https://docs.microsoft.com/ja-jp/azure/storage/blobs/access-tiers-overview#archive-access-tier

page11

質問4

Bounded Staleness

単一書き込みリージョンで構成されているマルチリージョン Cosmos アカウントの場合、Azure CLI または Azure portal を使用して自動フェールオーバーを有効にします。

Region障害に耐えるよう、マルチリージョンにする

どうもやっぱり、この5つの整合性がまったくわからない。変な訳語のせいでもある。

https://docs.microsoft.com/ja-jp/azure/cosmos-db/consistency-levels#bounded-staleness-consistency

質問5

linux に v1.0.0 指定で、-docker-registory-serverとユーザ/パスも指定

https://azure.microsoft.com/ja-jp/services/app-service/containers/#demo

質問6

https://docs.microsoft.com/ja-jp/azure/service-bus-messaging/message-counters

質問7

  • FetchAttributesAsync
  • Metadata.Add
  • SetMetadataAsync
        // Add metadata to the dictionary by calling the Add method
        metadata.Add("docType", "textDocuments");

        // Set the blob's metadata.
        await blob.SetMetadataAsync(metadata);

https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-blob-properties-metadata

t13801206t13801206

page12

質問8

イベントをキャプチャするのはEventGridではなくEventHub

https://docs.microsoft.com/ja-jp/azure/event-hubs/event-hubs-capture-overview#how-event-hubs-capture-works

質問9

メッセージを受信する.NETのオブジェクトはQueueClientクラス

https://docs.microsoft.com/ja-jp/azure/storage/queues/storage-dotnet-how-to-use-queues?tabs=dotnet#create-the-queue-storage-client

質問10

質問が壊れている気がする

https://docs.microsoft.com/ja-jp/azure/storage/common/storage-account-upgrade?tabs=azure-portal#specify-an-access-tier-for-blob-data

質問11

.NET APIでNoSQLに接続するには、CosmosClientを使う

https://docs.microsoft.com/ja-jp/azure/cosmos-db/sql/sql-api-get-started#Connect

page13

質問12

ストレージ間でデータを自動でコピーするにはAzCopy

質問13

Instance Metadata Serviceからの応答をJsonデシリアライズしてトークンを得る

https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/instance-metadata-service?tabs=windows

https://docs.microsoft.com/ja-jp/azure/active-directory/managed-identities-azure-resources/how-to-use-vm-token#get-a-token-using-http

質問14

  • ORDER BYはcompositeIndexes
  • DESCは直前の1列のみ修飾する。デフォルトはASC

https://docs.microsoft.com/ja-jp/azure/cosmos-db/sql/how-to-manage-indexing-policy?tabs=dotnetv2%2Cpythonv3#composite-index-defined-for-name-asc-age-desc

質問15

”高速道路ごと”と書いてある。それがPK

t13801206t13801206

page14

質問16

Kubernetes 難しい・・・

デプロイはHelm、確認(View)はKubeCtl、ルーティングはイングレス

https://docs.microsoft.com/ja-jp/azure/aks/ingress-basic?tabs=azure-cli

質問17

"何も通さないフィルター"としてCorrelationFilterが使える

https://docs.microsoft.com/ja-jp/azure/service-bus-messaging/topic-filters#filters

質問18

CDNの4選択肢並べ替え問題

質問19

NoSQLのパーティションキーはカーディナリティが高いモノを選ぶ

乱数やハッシュ値がサフィックスになっている、など

page15

質問20

CosmosDBを.NETで操作する問題。簡単。

質問21

AzureADにアプリを登録する問題。簡単。
※ディスカッションのほうが正しい回答だと思われる。

質問22

多要素認証を使うには、AzureADをPremiumプランにして条件付きアクセスポリシーを作成

https://docs.microsoft.com/ja-jp/azure/active-directory/conditional-access/overview#commonly-applied-policies

質問23

CosmosDBオペレーターはアカウントやコンテナを作成できるが、キーにはアクセスできない

https://docs.microsoft.com/ja-jp/azure/role-based-access-control/built-in-roles#cosmos-db-operator

t13801206t13801206

記載誤り:「質問21~質問23」は質問セット3の質問1~質問3をさす

t13801206t13801206

page16

質問4

AppServiceの承認
「はい」が正解のようにもみえるけど、「いいえ」が多数 (承認の機能がないから?)
日本語が難しい

https://docs.microsoft.com/ja-jp/azure/app-service/scenario-secure-app-authentication-app-service

質問5

つづきの問題

https://docs.microsoft.com/ja-jp/azure/active-directory/develop/reference-app-manifest#groupmembershipclaims-attribute

https://e-words.jp/w/JWT.html

質問6

こちらもつづきの問題。別の解決方法。

質問7

論理削除を有効にして、パージ保護を強制する

https://docs.microsoft.com/ja-jp/azure/key-vault/general/soft-delete-overview#soft-delete-behavior

page17

質問8

API Managementの認証

https://docs.microsoft.com/ja-jp/azure/api-management/api-management-authentication-policies#AuthenticationPolicies

質問9

AzureAD アプリケーションへのAPI許可

user_impersonationと委任が答え

https://docs.microsoft.com/ja-jp/azure/active-directory/develop/v2-permissions-and-consent?WT.mc_id=Portal-Microsoft_AAD_RegisteredApps#permission-types

質問10

ASP.NETミドルウェアの問題

認証、認可、機能フラグを使えるようにする

https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/middleware/?view=aspnetcore-6.0#middleware-order

質問11

Appアプリとユーザー割り当てマネージド IDを組み合わせてキーボルトの秘密情報にアクセスする問題

t13801206t13801206

page18

質問12

受付フォームの情報ごと公開鍵で暗号化して、DBに保存する

質問13

続きの問題。DBデータは暗号化されていても、ダウンロード先では複合されてしまう

質問14

続きの問題。意味がよくわからない。

質問15

VMの暗号化。問題数が多いだけで、内容は簡単。

https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/disk-encryption-cli-quickstart

page19

質問16

API の呼び出し元は、資格情報を API に送信してはなりません。

資格情報を送れない→AzureのマネージドIDをアプリに付与し、マネージドIDで認証
(システム割り当てでもユーザ割り当てでも、どちらでもよい)

https://docs.microsoft.com/ja-jp/azure/api-management/api-management-authentication-policies#ManagedIdentity

質問17

GetとSetを繰り返しつかう

質問18

https://docs.microsoft.com/ja-jp/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-arm#get-an-access-token-using-the-vms-system-assigned-managed-identity-and-use-it-to-call-azure-resource-manager

質問19

続きの問題。

Invoke-RestMethod コマンドレットを実行して、Azure リソース エンドポイントのローカル マネージド ID に要求を行います

t13801206t13801206

page20

質問20

リクエストヘッダーのHTTP_USER_AGENTを見ればiPhoneまで特定できる

https://qiita.com/kapiecii/items/093ffd6f0b09ad775250

質問21

既出。ユーザの認証をする問題

質問22

既出。

Invoke-RestMethod コマンドレットを実行して、Azure リソース エンドポイントのローカル マネージド ID に要求を行います。

質問23

OAuthをつかってアプリへのアクセス制御する

"oauth2AllowImplicitFlow": false,

https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-connect-fed-group-claims#configure-the-azure-ad-application-registration-for-group-attributes

https://docs.microsoft.com/ja-jp/azure/active-directory/develop/reference-app-manifest#oauth2allowimplicitflow-attribute

t13801206t13801206

page21

質問24

Blobのコピー自動化は、EventGridでStart-AzureStorageBlobCopy

https://docs.microsoft.com/en-us/powershell/module/azure.storage/start-azurestorageblobcopy?view=azurermps-6.13.0

質問25

FrontDoorキャッシュから、特定のファイルを削除する必要がある
→単一パスで指定して消す

https://docs.microsoft.com/ja-jp/azure/frontdoor/standard-premium/how-to-cache-purge

質問26

既出。マネージドIDでAzureFunctions

質問27

認証なしでいくつかの Web サービスを呼び出すことができる

jwtのトークンで認証する

page22

質問28

APIマネージメント
入ってきたものをキャッシュする

すぐに試せそうなので、あとでやってみる!

https://docs.microsoft.com/ja-jp/azure/api-management/api-management-sample-cache-by-key

質問29

SecretClientのデフォルトクレデンシャルでキーボルトに接続できる

CloudClientsクラスは、主語が大きすぎるし、そもそも複数形だから違うとわかる

https://docs.microsoft.com/ja-jp/azure/key-vault/secrets/quick-create-net

質問30

WebAppからユーザ情報を更新する
WebAppにAPIの許可をする

  • MSAL
  • GraphAPI

AZ204ラーニングパスでGraphAPIつかったときに、うまくいかなかった気がする
MSALが関係しているのだうか・・・要検証

https://docs.microsoft.com/ja-jp/graph/azuread-identity-access-management-concept-overview

質問31

SASが侵害されたときの対処

キーを取り消して、RBACを見直す

https://docs.microsoft.com/ja-jp/rest/api/storageservices/create-user-delegation-sas#revoke-a-user-delegation-sas

t13801206t13801206

IT EXAMS

アカウントを使ってログインすると、ケーススタディのほうの問題もできる
普通の質問のほうは、ざっと見た感じだとExamTopicsと同じ

ケーススタディ1

質問1

Azure コンテンツ配信ネットワーク (CDN) を使用して、動的コンテンツのパフォーマンスを最大限に高めながら、待機時間とコストを最小限に抑えます。

CDNの種類 Standrd Akamai の動的サイトアクセラレーション

https://docs.microsoft.com/ja-jp/azure/cdn/cdn-features

質問2

VMのAzure BackupとNetworkアクセラレーション

https://docs.microsoft.com/ja-jp/azure/virtual-network/create-vm-accelerated-networking-cli#enable-accelerated-networking-on-existing-vms

t13801206t13801206

質問3

関数アプリがタイムアウトする
⇒実行時間の長い HTTP 非同期 API Durable Functions を使用する

質問4

関数アプリを従量課金にせず、プレミアムプランにして常時ONにする

https://docs.microsoft.com/ja-jp/azure/azure-functions/dedicated-plan#always-on

質問5

Azure Container RegistryとEventGridを連携して、イメージが更新されたら検証するRepositoryUpdated

https://docs.microsoft.com/ja-jp/azure/event-grid/event-schema-container-registry?tabs=event-grid-event-schema

質問6

AKSにビルドしてエイリアスしてプッシュ

質問7

ClaimsPrincipalクラスをヘッダーから取り出す

t13801206t13801206

Microsoft.AZ-204J.v2022-01-26.q97

質問1

Azure Functionsの遅延問題。単純にforeachループを並列にする

質問2

DBのデータをマネージャーだけ閲覧可能にする→Masking

https://docs.microsoft.com/en-us/powershell/module/azurerm.sql/new-azurermsqldatabasedatamaskingrule?view=azurermps-6.13.0

質問3

SpanContextなのか、CorrelationContextなのか?

https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/correlation#correlation-headers-using-w3c-tracecontext

質問4

レストラン配達

Service BusのNamespaceを1つ。トピックをレストランごとにたてて、ドライバーが購読する

https://docs.microsoft.com/ja-jp/azure/service-bus-messaging/service-bus-queues-topics-subscriptions#topics-and-subscriptions

質問5

EventGridからのメッセージをService Busのトピックで受信する

質問6

https://docs.microsoft.com/ja-jp/azure/service-bus-messaging/service-bus-azure-and-service-bus-queues-compared-contrasted#consider-using-service-bus-queues

質問12

領収書処理の同時実行を防ぐためにBLOBリースをつかう

https://docs.microsoft.com/ja-jp/azure/storage/blobs/concurrency-manage?tabs=dotnet#pessimistic-concurrency-for-blobs

t13801206t13801206

質問14

マイクロソフトにサポート依頼をするために

Set-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole2.json"

読み取りread権限をサポートに授ける

https://docs.microsoft.com/ja-jp/azure/role-based-access-control/tutorial-custom-role-powershell#update-a-custom-role

質問15

Redisはキーバリュー型であるからSetString(key,value)でキャッシュを消す

https://gooner.hateblo.jp/entry/2014/08/26/azure-redis-cache/

質問21

SearchServiceClientではなくSearchIndexClientをつかう

https://qiita.com/syantien/items/8a45cdc7ddfdc4ae9525#azure-search-sdk-for-c

質問22

AKSクラスター内のAzureリソースを管理するには?
イングレスで定義されたネットワークからのトラフィックのみ受信可能にする

https://kubernetes.io/ja/docs/concepts/services-networking/network-policies

質問24

Service BusのSessionIDReplyToSessionID(応答先)に、
MessageIDCorrelationID(一意制)に、それぞれ割り当てる

https://docs.microsoft.com/ja-jp/azure/service-bus-messaging/service-bus-messages-payloads

t13801206t13801206

久しぶりにExam Topicsにアクセスしたら

AZ-204 の質問は、2022 年 9 月 7 日に最終更新されました。

とのこと!

page1

質問1

VMを移動するには再デプロイする

質問2

パスワードを平文で保存しないためには、キーボルトとアクセスポリシー

質問3

kubectl apply -f ./my-manifest.yaml # リソースを作成します

https://kubernetes.io/ja/docs/reference/kubectl/cheatsheet/#objectの作成

質問5

WebジョブなのかFunctionsなのか・・・
もし本番で出題されたらFunctionsを選びたくなる

https://docs.microsoft.com/ja-jp/azure/app-service/webjobs-create

page2

質問6

障害ドメインの数はMAXにする。そもそも10や30などは規定値外!

https://docs.microsoft.com/ja-jp/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-manage-fault-domains

質問7

更新ドメインの最大値は20

https://docs.microsoft.com/ja-jp/azure/virtual-machines/availability-set-overview#how-do-availability-sets-work

質問8

SendGrid bindingで電子メールをFunctionsから送る

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-sendgrid?tabs=in-process%2Cfunctionsv2&pivots=programming-language-csharp

質問9

mongoDB→CosmosDBはAzCopyではなくmongorestoreをつかう

https://docs.microsoft.com/ja-jp/azure/cosmos-db/mongodb/pre-migration-steps

質問10

Webアプリとキーボルトの組み合わせときたら、マネージドID

t13801206t13801206

page3

質問11

モバイルAppのOAuth・・リダイレクトURIがあればいいらしい
(下線部が表示されてないから問題文がよくわからない)

質問12

キーボルトの90日間保持→論理削除とパージ保護

質問13

質問が壊れている?

質問14

AD統合認証をつかってSSMSからAzure SQL DBに接続できる!

https://docs.microsoft.com/ja-jp/azure/azure-sql/database/authentication-aad-configure?view=azuresql&tabs=azure-powershell#configure-your-client-computers

質問15

キーボルトの90日保護のスクリプト版
選択肢4は論理削除をfalseにしているから誤り

t13801206t13801206

page4

質問16

"avg Percentage CPU > 90"、5分間で:--window-size

https://docs.microsoft.com/en-us/cli/azure/monitor/metrics/alert?view=azure-cli-latest#az-monitor-metrics-alert-create-examples

質問17

Redisはキーバリュー型であるから、ビデオのキャッシュには不向き

質問18

つづきの問題。CDNをつかって配信することで、ユーザ体験を向上させる

質問19

続きの問題。SAN(ストレージエリアネットワーク)では実現できない

質問20

Webアプリの自動スケーリングはD1(開発)ではなく標準プランで行う

page5

質問21

アラートはメトリック信号

質問22

AzureSearchで正規表現を使用してインデックスを検索
QueryType

質問23

LogicAppはLogic App Code View または Logic Apps Designerを使う
とくに開発者はコードビュー、一般ユーザはデザイナをつかう

質問24

API Managementの認証

HTTPエンドポイントに対しては基本認証(ID,PASS)もしくはクライアント証明書

https://docs.microsoft.com/ja-jp/azure/api-management/api-management-authentication-policies#AuthenticationPolicies

質問25

続きの問題

t13801206t13801206

page6

質問26

続きの問題

質問27

続きの問題

質問28

AzureSearchで距離や価格の範囲で絞り込む場合は、Filterプロパティをつかう

質問29

既出。開発者がLogicAppを編集する場合はコードビューをつかう

質問30

IndexBatchを渡す

 SearchIndexClient indexClient = CreateSearchIndexClient(configuration);

https://docs.microsoft.com/ja-jp/azure/search/search-howto-dotnet-sdk#example-application

page7

質問31

EventGridでトピックとサブスクリプション

質問32

C++を使ったAzureFunctionsのhost.jsonの書き方

typeはhttpでカスタムハンドラーをつかう。

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-custom-handlers#hostjson


以上、32個の質問が9/7に新規追加された