AZ-204受験するので、受かるまでOpenしてます。
パブリッシュ/サブスクライブ モデルをサポートするメッセージングサービス
ServiceBus
EventHub
EventGrid
パブリッシュ/サブスクライブ モデルとは?
データの受け手と送り手を分離し、非同期にメッセージを送れるサービス
サブスクリプション クライアントがすべてのメッセージを処理することを確認する必要があります。どのコードセグメントを使用する必要がありますか?
RegisterMessageHandler
subscriptionClient.RegisterMessageHandler(ReceiveMessagesAsync, messageHandlerOptions);
Azure Storage Queue
多数のメッセージを格納できるやつ。
HTTP もしくは HTTPS で認証された呼び出しが可能
以下みたいに呼び出せる
https://<storage account>.queue.core.windows.net/<queue>
最大サイズは 64KB
非同期的な処理用に作業のバックログを作成するために使用される。
Azure API Management のポリシー
ポリシー XML 構成は、inbound、backend、outbound、および on-error の各セクションに分かれています。 要求および応答に対して、指定された一連のポリシー ステートメントが順に実行されます。
<policies>
<inbound>
<!-- statements to be applied to the request go here -->
</inbound>
<backend>
<!-- statements to be applied before the request is forwarded to
the backend service go here -->
</backend>
<outbound>
<!-- statements to be applied to the response go here -->
</outbound>
<on-error>
<!-- statements to be applied if there is an error condition go here -->
</on-error>
</policies>
ソリューションでは、保証された先入れ先出し (FIFO) 順序の配信を提供するキューが必要です。
Service Bus
Microsoft Azure App ServiceのCPU 負荷が約 85% になったときに Web アプリが自動的にスケーリングされるようにし、コストを最小限に抑える必要があります。
Standard レベルは自動スケーリングをサポートしているため、コストを最小限に抑える必要があります。
ステップ 2: Web アプリで自動スケーリングを有効にする
まず自動スケールを有効にします -
ステップ 3: スケール ルールを追加する -
ステップ 4: スケール条件を追加する -
アプリケーション リクエスト ルーティング (ARR) とは
IISのリバースプロキシ
あなたは、いくつかの ASP.NET Web アプリケーションを開発し、Azure App Service にデプロイしています。セッション状態情報と HTML 出力を保存する予定です。
次の要件を満たすストレージ メカニズムを使用する必要があります。
すべての ASP.NET Web アプリケーション間でセッション状態を共有します。
✑ 複数のリーダーと単一のライターによる同じセッション状態データへの制御された同時アクセスをサポートします。
✑ 同時リクエストに対する完全な HTTP 応答を保存します。
情報を保存する必要があります。
Azure Cache for Redis
ASP.NET Web アプリケーションの異なるインスタンス間でセッション情報を共有できます。
Azure App Service の可用性テストについて
3つ方法がある
✑ URL ping テスト: Azure portal で作成できる簡単なテスト。
✑ マルチステップ Web テスト: 一連の Web リクエストの記録。これを再生して、より複雑なシナリオをテストできます。複数ステップの Web テストは次の場所で作成されます。
Visual Studio Enterprise を作成し、実行のためにポータルにアップロードします。
✑ カスタム追跡可用性テスト: 可用性テストを実行するカスタム アプリケーションを作成する場合は、TrackAvailability() メソッドを使用して結果を Application Insights に送信できます。
Azure Application Insights の依存関係の追跡がサードパーティのデータベースへの呼び出しに対して機能することを確認するためのプロパティ
message.Properties.Add("ParentId"、operation.Telemetry.Id);
message.Properties.Add("RootId"、operation.Telemetry.Context.Operation.Id);
Azure Notification Hubs
Azure Notification Hubs は、任意のバックエンド (クラウドまたはオンプレミス) から任意のプラットフォーム (iOS、Android、Windows など) に通知を送信できる、使いやすく、かつスケールアウトされたプッシュ エンジンを提供します。 Notification Hubs は、エンタープライズ向けとコンシューマー向けのどちらのシナリオにも適しています。 いくつかのシナリオの例を次に示します。
動的サイト アクセラレーション (DSA)
Akamai の Azure CDN Standard、Verizon の Azure CDN Standard、および Verizon の Azure CDN Premium プロファイルで利用できます。
DSA には、動的コンテンツの遅延とパフォーマンスに利益をもたらすさまざまな技術が含まれています。手法には、ルートとネットワークの最適化、TCP の最適化などが含まれます。
この最適化を使用すると、キャッシュできない多数の応答を含む Web アプリを高速化できます。例としては、検索結果、チェックアウト トランザクション、リアルタイム データなどがあります。静的データに対してコアの Azure CDN キャッシュ機能を引き続き使用できます。
Accelerated networking
高速ネットワークにより、VM へのシングル ルート I/O 仮想化 (SR-IOV) が可能になり、ネットワーク パフォーマンスが大幅に向上します。この高性能パスは、サポートされている VM タイプで最も要求の厳しいネットワーク ワークロードで使用するために、データパスからホストをバイパスし、遅延、ジッター、CPU 使用率を削減します。
Azure Storage BLOB
アカウントの種類: StorageV2 (汎用 v2)
シナリオ: Azure Storage BLOB が使用されます (展示を参照)。データ ストレージのコストは最小限に抑える必要があります。
汎用 v2 アカウント:BLOB、ファイル、キュー、テーブル用の基本的なストレージ アカウント タイプ。Azure Storage を使用するほとんどのシナリオに推奨されます。
ストレージ層: クール -
データ ストレージのコストは最小限に抑える必要があります。
注: Azure ストレージにはさまざまなアクセス層が用意されており、これにより、最もコスト効率の高い方法で BLOB オブジェクト データを保存できます。利用可能なアクセス層には次のものがあります。
ホット - 頻繁にアクセスされるデータの保存用に最適化されています。
Cool - アクセス頻度が低く、少なくとも 30 日間保存されるデータを保存するために最適化されています。
allowedMemberTypes
"appId": "8763f1c4-f988-489c-a51e-158e9ef97d6a",
"アプリロール": [
{
"allowedMemberTypes": [
"ユーザー"
],
"表示名": "ライター",
"id": "d1c2ade8-98f8-45fd-aa4a-6d06b947c66f",
"isEnabled": true、
"description": "ライターにはタスクを作成する能力があります。",
"値": "ライター"
}
],
Azure Active Directory app manifest
oauth2AllowImplicitFlow = true、
oauth2AllowIdTokenImplicitFlow = true
統合サービス環境 (ISE)
Logic Apps 向け Azure 統合サービス環境の発表
"統合サービス環境とは、あらゆるエンタープライズ規模の統合ニーズのために完全に分離された、専用の環境です。新しい統合サービス環境を作成すると、Azure Virtual Network に挿入されます。これにより、Logic Apps を VNET 上のサービスとしてデプロイできます。"
つまり専用のLogic Appsが使えるってこと
CryptographicException: 指定されたファイルがシステムで見つかりません。とエラーが出た時
ステップ 1: 証明書を生成する -
手順 2: 証明書を Azure Key Vault にアップロードする
シナリオ:すべての SSL 証明書と資格情報は Azure Key Vault に保存する必要があります。
ステップ 3: 証明書を Azure App Service にインポートする
ステップ 4: WEBSITE_LOAD_CERTIFICATES アプリ設定に証明書の拇印を追加する
Functionsのエラーメッセージの見方は?
Azure Functions は、関数を監視するための Azure Application Insights との組み込み統合を提供します。
Application Insights の次の領域は、関数の動作、パフォーマンス、エラーを評価するときに役立ちます。
ライブ メトリクス: 作成されたメトリクス データをほぼリアルタイムで表示します。
マネージドID
認証マネージド ID ポリシーを使用して、API Management サービスのマネージド ID を使用してバックエンド サービスで認証します。このポリシーは基本的にマネージド ID を使用して、指定されたリソースにアクセスするためのアクセス トークンを Azure Active Directory から取得します。トークンの取得に成功すると、ポリシーは Bearer スキームを使用して Authorization ヘッダーにトークンの値を設定します。
CosmosDB operator
Azure Cosmos DB では、新しい RBAC ロールである Cosmos DB Operator が提供されるようになりました。この新しいロールを使用すると、Azure Cosmos アカウント、データベース、コンテナーをプロビジョニングできますが、データへのアクセスに必要なキーにはアクセスできません。このロールは、アカウント、データベース、コンテナーなど、Cosmos DB のデプロイ操作を管理するために Azure Active Directory サービス プリンシパルへのアクセスを許可する機能が必要なシナリオで使用することを目的としています。
Web サイトに対する次のアクセス許可レベルのいずれかをユーザーに割り当てる予定です: 管理者、通常、読者。アクセス許可レベルを決定するには、ユーザーの Azure AD グループ メンバーシップを使用する必要がある場合
認可を設定する必要があります。
代わりに、Azure AD アプリケーションのマニフェストで、groupMembershipClaims オプションの値を All に設定します。
Azure Redis Cache インスタンスを実装して、めったに変更されないエンティティのデータ操作の効率を向上させることを計画しています。チームデータを変更した場合はキャッシュを無効にする必要があります。
IDatabase cache = connection.GetDatabase();
cache.KeyDelete("team")
今日も今日とて始めようと思う。
今更ながら試験範囲の確認
Azureコンピューティングソリューションの開発(25-30%)
Azureストレージの開発(15-20%)
Azureセキュリティの実装(20-25%)
Azureソリューションの監視、トラブルシューティング、最適化(15-20%)
Azureサービスおよびサードパーティのサービスに接続して利用する(15-20%)
Azure Blob Storage での変更フィードとは
Azure Blob Storageの変更フィードは、Blobに対して行われるすべての変更(作成、更新、削除)のログを提供します。
Azure Web App for Containers
WEBSITES_ENABLE_APP_SERVICE_STORAGE の場合
WEBSITES_ENABLE_APP_SERVICE_STORAGE 設定が指定されていない場合、または true に設定されている場合、/home/ ディレクトリはスケール インスタンス間で共有され、書き込まれたファイルは再起動後も保持されます
Azure Blob Storageは後ほど記事にしたい
Kubernetes ベースのイベント駆動型自動スケーリング (KEDA) を使用して、Azure Function を Kubernetes に移行する準備をしています。
- Azure Functions Code > Deployment
- Polling interval > ScaledObject
- Azure Connection String > Secret
Azure Blob Storage
Azure Storage イベントにより、アプリケーションはイベントに反応できるようになります。一般的な Blob Storage イベント シナリオには、画像またはビデオの処理、検索インデックス作成、またはファイル指向のワークフローが含まれます。
イベントは、Azure Event Grid を使用して、Azure Functions、Azure Logic Apps などのサブスクライバー、さらには独自の http リスナーにプッシュされます。
注: イベント統合をサポートしているのは、StorageV2 (汎用 v2) 種類のストレージ アカウントと BlobStorage のみです。ストレージ (汎用 v1) は、Event Grid との統合をサポートしていません。
Azure web appsのコマンド手順
ボックス 1: az appservice plan create
azure group create コマンドは正常に JSON 結果を返します。これで、リソース グループを使用して Azure App Service プランを作成できます。
ボックス 2: az webapp create -
新しい Web アプリを作成します。
ボックス 3: --plan $webappname -
..手順 1 で作成したサービスプランを使用します。
ボックス 4: az webapp デプロイメント -
GitHub を使用した継続的デリバリー。例:
az webappdeploymentsourceconfig --name firstsamplewebsite1 --resource-group website--repo-url $gitrepo --branch master --git-token $token
ボックス 5: --repo-url $gitrepo --branch master - -manual-integration
App Service Environment
App Service Environment は、App Service アプリを大規模かつ安全に実行するために完全に分離された専用の環境を提供する、Azure App Service の機能です。
スワップ操作が発生する前に、スクリプトが実行され、リソースが利用可能であることを確認する必要があります。
解決策: web.config ファイルを更新して、applicationInitialization 構成要素を含めます。スクリプトを実行するためのカスタム初期化アクションを指定します。
#AcquireLeaseAsync のleaseTime
リース時間とは、DHCPサーバがIPアドレスをクライアントに割り当てる時間のこと。 デフォルトでは多くの場合、24時間になっています。 つまり一度割り当てられたIPアドレスは24時間経過すると、割り当てが終了し、別のIPアドレスが割り当てられます。
null の場合、無限リースが取得されます。null でない場合、これは 15 ~ 60 秒である必要があります。
BreakLeaseAsync
このコンテナーの現在のリースを中断する非同期操作を開始します。
アーカイブ→オブジェクトの復帰時間
アーカイブ アクセス層のストレージ コストは最も低くなります。ただし、ホット層やクール層に比べてデータ取得コストが高くなります。リハイドレーションの優先順位によっては、アーカイブ層のデータを取得するのに数時間かかる場合があります。小さなオブジェクトの場合、優先度の高いリハイドレートにより、アーカイブからオブジェクトが 1 時間以内に取得される場合があります。
Web サイトに多要素認証を実装する必要があります。
Azure AD プレミアムプランにアップグレード
Azure AD で新しい条件付きアクセスポリシーを作成
Azure Key Vault からストレージ アカウント キー シークレットを取得する手順
ステップ 1: Get-AzSubscription -
複数のサブスクリプションがある場合は、キー コンテナーの作成に使用されたサブスクリプションを指定する必要がある場合があります。アカウントのサブスクリプションを表示するには、次のように入力します。
Get-AzSubscription -
ステップ 2: Set-AzContext -SubscriptionId
ログを記録するキー コンテナーに関連付けられたサブスクリプションを指定するには、次のように入力します。 Set
-AzContext -SubscriptionId <subscriptionID>
ステップ3: Get-AzStorageAccountKey -
ストレージ アカウント キーを取得する必要があります。
ステップ 4: $secretvalue = ConvertTo-SecureString <storageAccountKey> -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName <vaultName> -Name <secretName> -SecretValue $secretvalue
シークレット (この場合はストレージ アカウント キー) を取得した後、そのキーを安全な文字列に変換し、その値を使用してキー コンテナーにシークレットを作成する必要があります。
ステップ 5: Get-AzKeyVaultSecret -
次に、作成したシークレットの URI を取得します。この URI は、後の手順でキー コンテナーを呼び出してシークレットを取得するために必要になります。次の PowerShell コマンドを実行し、シークレットの URI である ID 値をメモします。
Get-AzKeyVaultSecret ""VaultName <vaultName>
参照:
https://docs.microsoft.com/bs-latn-ba/Azure/key- vault/key-vault-key-rotation-log-monitoring
Azure Resource Manager の特定のリソース グループへの仮想マシン (VM) アクセスを許可
Invoke-RestMethod コマンドレットを実行して、Azure リソース エンドポイントのローカル マネージド ID に要求を行います。
groupMembershipClaims
oauth2AllowImplicitFlow
validate-jwt ポリシーを追加して、受信リクエストごとに OAuth トークンを検証します。
Azure API Management のポリシー
以下の4つ
<inbound>
<backend>
<outbound>
<on-error>
<policies>
<inbound>
<!-- statements to be applied to the request go here -->
</inbound>
<backend>
<!-- statements to be applied before the request is forwarded to
the backend service go here -->
</backend>
<outbound>
<!-- statements to be applied to the response go here -->
</outbound>
<on-error>
<!-- statements to be applied if there is an error condition go here -->
</on-error>
</policies>
Front Door はエッジでコンテンツを動的に圧縮できるため、クライアントへの応答が小さくなり、高速になります。すべてのファイルが圧縮の対象となります。
ただし、ファイルは圧縮リストの対象となる MIME タイプである必要があります。
コンテナから生成されたコンソール ログにリアルタイムでアクセスする必要があります。このためには、次の Azure CLI スクリプトを完了する必要があります。
az webapp log config [--application-logging {azureblobstorage、ファイルシステム、オフ}]
[--詳細エラーメッセージ {false, true}]
[--docker-container-logging {ファイルシステム、オフ}]
[--failed-request-tracing {false, true}]
[--id]
[--level {エラー、情報、詳細、警告}]
[ - 名前]
[--リソースグループ]
[ - スロット]
[ - サブスクリプション]
[--web-server-logging {ファイルシステム、オフ}]
ログのダウンロード
az webapp log download [--ids]
[--log-file]
[--name]
[--resource-group]
[--slot]
[--subscription]
ログの最新を取り続ける
az webapp log tail [--ids]
[--name]
[--provider]
[--resource-group]
[--slot]
[--subscription]
新しいVMを作成するコマンド
New-AzVm `
-ResourceGroupName "myResourceGroupVM" `
-Name "myVM" `
-Location "EastUS" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-SecurityGroupName "myNetworkSecurityGroup" `
-PublicIpAddressName "myPublicIpAddress" `
-Credential $cred
Azure Function アプリについて
カスタム ハンドラー - カスタム ハンドラーを使用すると、Go や Rust などの HTTP サーバー プロセスを実行することにより、任意の言語またはランタイムで関数を作成できます。
-
ExpirationTime - メッセージの有効期限が切れる時間。
-
InsertionTime - メッセージがキューに追加された時刻。
Application Insights のファネルを使って、顧客がどのようにアプリケーションを利用しているか把握する
AcquireLeaseAsync は、Azure Blob Storage の一部として使用されるメソッドです。このメソッドは、他のプロセスやクライアントとの競合を避けるために、Blob の "リース" を獲得するために使用されます。
リースは、Blob に対する排他的なアクセス権を表します。つまり、他のプロセスやクライアントは、リースを保持している間はその Blob を変更したり削除したりすることはできません。
AcquireLeaseAsync メソッドを使用すると、指定した Blob のリースを獲得することができます。このメソッドは非同期的に動作し、リースが獲得されるまで待機します。リースを獲得したら、そのリースを保持するためのトークンを取得できます。
リースの期間は、メソッドの呼び出し時に指定します。リースの期間は、数秒から数分間の範囲で設定できます。リースの期間が終了すると、リースは自動的に解放され、他のプロセスやクライアントがアクセスできるようになります。
AcquireLeaseAsync を使用すると、Blob の操作をアトミックに実行することができます。例えば、Blob の読み取りと書き込みを確実に同時に行いたい場合に使用することができます。
注意点としては、リースの管理はアプリケーション側で行う必要があります。つまり、リースを取得したら、リースの期間が終了するまで維持する責任があります。また、リースの獲得には Blob の書き込みアクセス権が必要です。
以上が AcquireLeaseAsync のリースタイムについての基本的な説明です。
リースとは排他制御のこと
AcquireLeaseAsync は、leaseTime を指定しません。
nullでない場合は15~60s程度
GetBlockBlobReference メソッドは、このコンテナー内のブロック BLOB への参照を取得するだけです。
BreakLeaseAsync メソッドは、このコンテナーの現在のリースを解除する非同期操作を開始します。
非同期操作を開始するのであって、解放はしない
Key Vaultにアクセスするコード
string keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
var kvUri = "https://" + keyVaultName + ".vault.azure.net";
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());
CosmosDBのパーテーション内のクエリかどうかがあまり理解できていない
ワークフローにおけるオーケストレーター機能の役割
オーケストレーター関数はコードで記述されます。この関数は、アクションの実行方法とアクションの実行順序を記述するために使用されます。
ヒューマン インタラクション アプリケーション パターンが Durable Functions から恩恵を受ける理由
タイムアウトと補償ロジックを使用して、人間による対話を組み込むことができます。
条件付きアクセスの課題に対応するには、Web アプリのコードを更新する必要があります。
the claims Azure AD response parameter
キー コンテナー内で削除済み状態にあるオブジェクトが、キー コンテナーから 90 日間削除されないようにする必要があり
パージ保護については後ほど確認
Azure App Configuration インスタンスで Azure Key Vault キーを使用できるようにするには、次の 2 つのアクションを実行する必要がある
Azure App Configuration インスタンスにマネージド ID を割り当てる: Azure App Configuration インスタンスが Azure Key Vault にアクセスできるようにするには、マネージド ID をインスタンスに割り当てる必要があります。これにより、他の Azure サービスの認証とアクセスに使用できる一意の ID がインスタンスに提供されます。
Azure Key Vault にアクセスするためのマネージド ID のアクセス許可を構成する: マネージド ID を Azure App Configuration インスタンスに割り当てたら、その ID が Azure Key Vault にアクセスするための適切なアクセス許可を構成する必要があります。具体的には、Azure Key Vault 内のキーにアクセスするために必要なアクセス許可をマネージド ID に付与する必要があります。
Application Insights のデータ型
event型は、アプリケーションで発生する個別のイベントを追跡するために使用されます。イベントにはカスタム プロパティと測定値を含めることができるため、注文チェックアウト アクションと関連する注文番号プロパティを追跡するのに適しています。
trace: ログ メッセージと診断情報を追跡するために使用されます。
dependency: データベースや Web サービスなどの外部依存関係への呼び出しを追跡するために使用されます。
metric: パフォーマンス メトリクスや使用状況統計などの数値測定を追跡するために使用されます。
Event Grid イベント スキーマを使用する場合、データオブジェクトでアプリケーション固有のプロパティを指定できます。
Azure Key Vault は、Azure Key Vault とクライアントの間を移動するデータを保護するために、トランスポート層セキュリティ プロトコルを適用します。
Microsoft Graph コネクタは受信方向に動作します。Box、Google Drive、Jira、Salesforce など、一般的に使用される多くのデータ ソース用のコネクタが存在します。
keycontainer について
シークレットの分離と管理を向上させるために、環境ごとに 1 つずつ、4 つの異なる Azure Key Vault を使用することをお勧めします。したがって、答えは 4 です。
環境ごとに個別の Key Vault を使用すると、セキュリティが向上し、シークレットが分離されます。これは運用グレードのアプリケーションを管理するために重要です。環境ごとに個別の Key Vault を使用することで、各環境のシークレットを確実に分離して保持できるため、機密データが誤って公開されたり悪用されたりするリスクが軽減されます。
セキュリティが向上するだけでなく、個別の Key Vault を使用すると、各環境のシークレットを個別に管理することも容易になります。たとえば、環境ごとに異なるアクセス ポリシーやアクセス許可レベルを適用したり、競合を避けるためにシークレットに異なる命名規則を使用したりできます。
したがって、このシナリオでは、開発、テスト、ステージング、運用の環境ごとに 1 つずつ、4 つの異なる Azure Key Vault を使用することをお勧めします。
アプリが Azure Redis キャッシュにアクセスするのに必要な時間と、それがアプリの応答時間にどのように寄与するかを特定するには、TrackDependencyAzure Monitor の API メソッドを使用する必要があります。
このTrackDependencyメソッドは、アプリケーションによる外部依存関係呼び出しの期間とステータスを追跡するために使用されます。これには、データベース、Web サービス、または Azure Redis キャッシュなどの他の外部リソースへの呼び出しが含まれる場合があります。このメソッドをコードに組み込むことでTrackDependency、依存関係の呼び出しの継続時間、成功または失敗のステータス、およびパフォーマンスの問題のトラブルシューティングに役立つその他の詳細に関する情報を収集できます。
Azure Redis キャッシュのパフォーマンスを追跡する場合、このTrackDependencyメソッドを使用して、アプリケーションがキャッシュにアクセスするのにかかる時間と、それがアプリケーションの全体的な応答時間にどのように寄与するかに関する情報を取得できます。
CloudEvents スキーマと Event Grid スキーマで配信されるイベントのヘッダー値は、content-type を除いて同じです。
1 つの Azure ストレージ アカウントにプロビジョニングできるストレージの最大量
5PB
Azure Cosmos DB の整合性レベル
まとめる必要あり
ある程度、知識も溜まってきたのでMicrosoft Learnを見ていこうと思ふ
Event Hubs のデフォルトのパーティション数は 4 です。パーティションは、イベント ハブ内のバケットです。各パブリケーションは 1 つのパーティションのみに配置されます。各コンシューマ グループは 1 つまたは複数のパーティションから読み取ることができます。
Azure CLI をインストールするだけで済みます。CLI コマンドを発行するにはシェルを使用しますが、どのプラットフォームにも少なくとも 1 つの組み込みシェルがあります。
AzureFunctions
Monitoring : Azure Application Insights
LogicApps
Monitoring : Azure portal、Azure Monitor ログ
ほほう。
Azure Functions で利用できる基本のホスティング プランは 3 つあります。
従量課金プラン
Premium プラン
専用 (App Service) 専用プラン
すべてのホスティング プランは、Linux と Windows 仮想マシンの両方で、一般提供 (GA) されています。
イベント ハブは通常、ステータスの変化に反応して使用されます。
アカウントの種類: StorageV2 (汎用 v2)
シナリオ: Azure Storage BLOB が使用されます (展示を参照)。データ ストレージのコストは最小限に抑える必要があります。
汎用 v2 アカウント:BLOB、ファイル、キュー、テーブル用の基本的なストレージ アカウント タイプ。Azure Storage を使用するほとんどのシナリオに推奨されます。
Functions と WebJobs の比較
Azure portal を使用して、実行可能ファイルまたはスクリプトをアップロードするための WebJobs をデプロイします。 バックグラウンド タスクは、Azure App Service で実行できます。
Azure App Service の代わりに Visual Studio 2019 を使用して WebJobs を開発およびデプロイする場合は、「Visual Studio を使用して Web ジョブを展開する」を参照してください。
Functionsのホスティングプランは3つ
Azure Blob Storage
2 つのパフォーマンス レベル
- Standard
- Premium
ストレージアカウントの種類はStandardの汎用V2でだいたいOK
ストレージ アカウントは、データ用の一意の名前空間を Azure 内に用意します。
Azure BLOB Storage のライフサイクル
ホット - 頻繁にアクセスされるデータの格納に最適化されています。
クール - アクセスされる頻度は低いものの、少なくとも 30 日以上保管されるデータの格納に最適化されています。
アーカイブ - ほとんどアクセスされず、少なくとも 180 日以上保管され、待ち時間の要件が柔軟 (数時間単位) であるデータの格納に最適化されています。
rule書き方
{
"rules": [
{
"name": "ruleFoo",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": [ "blockBlob" ],
"prefixMatch": [ "container1/foo" ]
},
"actions": {
"baseBlob": {
"tierToCool": { "daysAfterModificationGreaterThan": 30 },
"tierToArchive": { "daysAfterModificationGreaterThan": 90 },
"delete": { "daysAfterModificationGreaterThan": 2555 }
},
"snapshot": {
"delete": { "daysAfterCreationGreaterThan": 90 }
}
}
}
}
]
}
BLOB を最後に変更されたときから 30 日後にクール層に階層化する
BLOB を最後に変更されたときから 90 日後にアーカイブ層に階層化する
BLOB を最後に変更されたときから 2,555 日 (7 年) 後に削除する
BLOB のスナップショットを作成したときから 90 日後にスナップショットを削除する
リハイドレート
アーカイブに保存しているデータを取得するには、ホットかクールに変更する必要があり数時間かかります。 この処理のことを「リハイドレート(rehydrate)」と呼びます。
- block blob
ブロック BLOB は、大量のデータを効率的にアップロードするために最適化されています。
- page blob
ページ BLOBは、ランダムな読み取りと書き込みの操作用に最適化された 512 バイトのページのコレクションです。
- add blob
追加 BLOB はブロックで構成され、追加操作用に最適化されています。 追加 BLOB を変更すると、ブロックは追加ブロック操作を介してのみ BLOB の末尾に 追加 されます。
CosmosDBの整合性レベル
Strong
Bounded staleness
Session
一貫性のあるプレフィックス
最終的
適切な整合性レベルの選択
"強固" 整合性
強力な一貫性は、線形化可能性保証を与えます。 線形化可能性は、要求に同時にサービスを提供することを意味します。 読み取りでは、アイテムの最後にコミットされたバージョンが返ることが保証されています。 クライアントが、コミットされていない書き込みや部分的な書き込みを見ることは決してありません。 ユーザーが最新のコミット済みの書き込みを読み取ることが常に保証されます。
"有界整合性制約" 整合性
有界整合性制約の整合性を確保するために、読み取りでは、整合性のあるプレフィックスの優先が保証されます。 読み取りは、最大でアイテムの "K" 個のバージョン (更新)、あるいは期間 "T" のどちらか早く達した方の分だけ書き込みよりも遅れる場合があります。 つまり、有界整合性制約を選択する場合、"整合性制約" は 2 つの方法で構成できます。
アイテムのバージョンの数 (K)
書き込みに対して読み取りが遅れる可能性がある期間 (T)
単一リージョン アカウントの場合、K と T の最小値は 10 回の書き込み操作または 5 秒です。 複数リージョン アカウントの場合、K と T の最小値は 100,000 回の書き込み操作または 300 秒です。
"セッション" 整合性
セッション整合性での単一のクライアント セッション内の読み取りでは、整合性のあるプレフィックス、単調読み取り、単調書き込み、自己書き込みの読み取り、読み取り後の書き込みの優先が保証されます。 これは、単一の「ライター」セッションを使用するか、複数のライターのセッション トークンを共有することを前提としています。
"一貫性のあるプレフィックス" 整合性
一貫性のあるプレフィックスでは、単一ドキュメントの書き込みとして行われる更新の場合、最終的な整合性が表示されます。 トランザクション内でバッチとして行われた更新は、それがコミットされたトランザクションと一貫性を保って返されます。 複数のドキュメントに対するトランザクション内の書き込み操作は、常に一緒に表示されます。
トランザクション T1 と T2 内でドキュメント Doc1 と Doc2 に対して 2 つの書き込み操作を行ったとします。 クライアントがいずれかのレプリカ内で読み取りを行った場合、ユーザーには "Doc1 v1 と Doc2 v1" または "Doc1 v2 と Doc2 v2" のどちらかが表示されますが、同じ読み取りまたはクエリ操作に対して "Doc1 v1 と Doc2 v2" または "Doc1 v2 と Doc2 v1" は表示されません。
Azure Batchについて勉強する必要あり
APIManagementの勉強する必要あり
CosmosDBのパーテーションキーについて
- 項目の複数のプロパティを連結する
- ランダムなサフィックスを持つパーティション キーを使用する
- 事前に計算されたサフィックスを持つパーティション キーを使用する
要件は、遅延を最小限に抑えることです。関数アプリが従量課金プランに含まれている場合、関数アプリがアイドル状態になると、新しい BLOB の処理に最大 10 分の遅延が発生する可能性があります。この遅延を回避するには、Always On が有効になっている App Service プランを使用する必要があります。
Akmai では動的サイト アクセラレーションがサポートされており、コストを削減するには標準レベルを使用してください。
アプリケーションを Azure Active Directory (Azure AD) テナントに登録します。これにより、アプリケーションのアプリケーション ID が得られ、トークンを受信できるようになります。
登録時に、リダイレクト URI を指定します。Web アプリケーションの場合、これはユーザーがサインインできるアプリのベース URL です。たとえば、http://localhost:12345 です。パブリック クライアント (モバイルおよびデスクトップ) の場合、Azure AD はそれを使用してトークン応答を返します。アプリケーションに固有の値を入力します。たとえば、http://MyFirstAADApp
カスタム ドメインの Secure Sockets Layer (SSL) 証明書は、Basic、Standard、および Premium サービス プランで利用できます。SSL 証明書により、カスタム ドメイン Web サイトへの安全な接続 (https://) が可能になります。
D1 (共有) 価格レベルは、カスタム ドメインでの HTTPS をサポートしません。
複数の書き込みリージョンを有効にしてアカウントを作成したら、アプリケーションで DocumentClient の ConnectionPolicy に 2 つの変更を加えて、Azure Cosmos DB のマルチマスター機能とマルチホーミング機能を有効にする必要があります。ConnectionPolicy 内で、UseMultipleWriteLocations を true に設定し、アプリケーションがデプロイされているリージョンの名前を SetCurrentLocation に渡します。これにより、渡された場所からの地理的近接性に基づいて PreferredLocations プロパティが設定されます。後で新しいリージョンがアカウントに追加された場合、アプリケーションを更新または再デプロイする必要はありません。より近いリージョンが自動的に検出され、自動的に地域のイベントが発生した場合は、そこに戻ります。
-
ファイルの MIME タイプはサービスでサポートされています。したがって、このオプションは根本原因を特定するのには役立ちません。
-
エッジ ノードをパージする必要はありません。したがって、このオプションは根本原因を特定するのには役立ちません。
-
サイズ制限のため、圧縮タイプはサポートされていません。このオプションは、圧縮されない根本原因を提供します。
Azure Functions Premium プラン (Elastic Premium プランとも呼ばれる) は、関数アプリのホスティング オプションです。プレミアム プランでは、VNet 接続、コールド スタートなし、プレミアム ハードウェアなどの機能が提供されます。
Azure イベント ハブは重複検出をサポートしておらず、Azure ストレージ キューはトランザクション サポートを提供しません。
HTTP トリガー関数がリクエストに応答するまでにかかる最大時間は 230 秒です。これは、Azure Load Balancer のデフォルトのアイドル タイムアウトが原因です。処理時間が長くなる場合は、Durable Functions の非同期パターンの使用を検討してください。
大規模で長時間実行される関数は、予期しないタイムアウトの問題を引き起こす可能性があります。可能な限り、大きな関数を、連携して動作し、応答を迅速に返す小さな関数セットにリファクタリングします。たとえば、Webhook または HTTP トリガー関数では、特定の制限時間内の確認応答が必要な場合があります。Webhook では即時応答が必要になるのが一般的です。HTTP トリガー ペイロードをキューに渡して、キュー トリガー関数によって処理させることができます。このアプローチにより、実際の作業を延期して、すぐに応答を返すことができます。
デプロイメント間のファイルの競合を排除し、コールド スタートのパフォーマンスを向上させる必要があります。
WEBSITE_RUN_FROM_PACKAGE=1
WEBSITE_RUN_FROM_PACKAGE=1 を設定する必要があります
パッケージから直接実行することにはいくつかの利点があります。
デプロイメントとランタイムの間のファイル ロックの競合を排除します。
いつでも、完全にデプロイされたアプリのみが実行されるようにします。
実稼働アプリにデプロイできます (再起動あり)。
Azure Resource Manager デプロイのパフォーマンスが向上します。
特に大きな npm パッケージ ツリーを使用する JavaScript 関数の場合、コールド スタート時間が短縮される可能性があります。
ARR affinity
[ARR affinity] (ARR アフィニティ) :マルチインスタンス デプロイでは、クライアントがセッションの有効期間を通して同じインスタンスにルーティングされることを確認してください。 ステートレス アプリケーションの場合は、このオプションを [オフ] に設定できます。
ARM テンプレートには次のセクションがあります。
パラメーター - デプロイ中に、同じテンプレートを異なる環境で使用できるようにする値を指定します。
変数 - テンプレートで再利用される値を定義します。これらはパラメータ値から構築できます。
ユーザー定義関数 - テンプレートを簡素化するカスタマイズされた関数を作成します。
リソース - デプロイするリソースを指定します。
出力 - デプロイされたリソースからの値を返します。
Azure Container Registry からイメージをダウンロードできるのは、どの Azure RBAC ロールですか?
Azure Container Registry サービスは、Azure Container Registry にさまざまなレベルのアクセス許可を提供する一連の組み込み Azure ロールをサポートしています。Azure ロールベースのアクセス制御 (Azure RBAC) を使用して、レジストリと対話する必要があるユーザー、サービス プリンシパル、またはその他の ID に特定のアクセス許可を割り当てます。
再起動ポリシー
Azure Application Gateway を構成するために実行する 2 つのアクションを選択します。
Web サーバーのマルチテナント アーキテクチャ設計では、複数の Web サイトが同じ Web サーバー インスタンス上で実行されます。ホスト名は、ホストされているさまざまなアプリケーションを区別するために使用されます。アプリケーション ゲートウェイは、ユーザーがバックエンドのホスト名に基づいて要求内の HTTP ホスト ヘッダーをオーバーライドできる機能を提供します。この機能により、Azure App Service Web アプリや API 管理などのマルチテナント バックエンドのサポートが可能になります。
ホスト オーバーライドを指定する機能は HTTP 設定で定義され、ルールの作成時に任意のバックエンド プールに適用できます。マルチテナント バックエンドのホスト ヘッダーと SNI 拡張をオーバーライドする次の 2 つの方法がサポートされています。
ホスト名を HTTP 設定で明示的に入力された固定値に設定する機能。この機能により、特定の HTTP 設定が適用されるバックエンド プールへのすべてのトラフィックについて、ホスト ヘッダーがこの値にオーバーライドされます。エンドツーエンド TLS を使用する場合、このオーバーライドされたホスト名が SNI 拡張で使用されます。この機能により、バックエンド プール ファームが受信顧客のホスト ヘッダーとは異なるホスト ヘッダーを予期するシナリオが可能になります。
バックエンド プール メンバーの IP または FQDN からホスト名を導出する機能。HTTP 設定には、個々のバックエンド プール メンバーからホスト名を取得するオプションが構成されている場合、バックエンド プール メンバーの FQDN からホスト名を動的に選択するオプションも提供されます。エンドツーエンド TLS を使用する場合、このホスト名は FQDN から派生し、SNI 拡張で使用されます。この機能により、バックエンド プールに Azure Web アプリなどの 2 つ以上のマルチテナント PaaS サービスを含めることができ、各メンバーへの要求のホスト ヘッダーに FQDN から派生したホスト名が含まれるシナリオが有効になります。このシナリオを実装するには、HTTP 設定でバックエンド アドレスからホスト名を選択するというスイッチを使用します。これにより、元のリクエストのホスト ヘッダーがバックエンド プールで指定されたホスト ヘッダーに動的にオーバーライドされます。
ASEとは
Azure App Service Environment は、App Service アプリを大規模かつ安全に実行するために完全に分離された専用の環境を提供するものです
グローバルおよびカスタム キャッシュ ルールの場合、次のキャッシュ動作設定を指定できます。
キャッシュをバイパスする: オリジンが提供するキャッシュ ディレクティブ ヘッダーをキャッシュせず、無視します。
オーバーライド: オリジンが提供するキャッシュ期間を無視します。代わりに、指定されたキャッシュ期間を使用してください。これは、cache-control: no-cache をオーバーライドしません。
欠落している場合に設定: オリジンが提供するキャッシュ ディレクティブ ヘッダーが存在する場合、それを尊重します。それ以外の場合は、指定されたキャッシュ期間を使用します。
すべてのビデオは 1 時間後にキャッシュから期限切れになる必要があります。
品質はクエリ文字列パラメータであり、さまざまな品質の顧客ビデオを最も近い地域のポイント オブ プレゼンス (POP) ノードに配信する必要があるという質問が求められます。したがって、すべての一意の URL をキャッシュする必要があります
すべての一意の URL をキャッシュする: このモードでは、クエリ文字列を含む一意の URL を持つ各リクエストは、独自のキャッシュを持つ一意のアセットとして扱われます。
説明
匿名ではパブリック読み取りアクセスが許可されます。
APIManagementのポリシー
Azure API Management API パブリッシャーは、ポリシーを使用した構成で API の動作を変更できます。 API の要求または応答に対して順番に実行される一連のステートメントが集まってポリシーが形成されます。 これらのステートメントには、次のものがあります。
XML から JSON への形式変換
開発者からの着信数を制限する呼び出しレート リミッター
特定の IP アドレスからの要求のフィルター処理
他にも多数のポリシーが標準で提供されています。 完全な一覧については、「API Management ポリシー リファレンス」をご覧ください。
ポリシー XML 構成は、inbound、backend、outbound、および on-error の各セクションに分かれています。 要求および応答に対して、指定された一連のポリシー ステートメントが順に実行されます。
<policies>
<inbound>
<!-- statements to be applied to the request go here -->
</inbound>
<backend>
<!-- statements to be applied before the request is forwarded to
the backend service go here -->
</backend>
<outbound>
<!-- statements to be applied to the response go here -->
</outbound>
<on-error>
<!-- statements to be applied if there is an error condition go here -->
</on-error>
</policies>
Outbound Policies(アウトバウンドポリシー):
アウトバウンドポリシーは、API Managementがバックエンドサービスにリクエストを転送する前に適用されるポリシーです。主な目的は、リクエストやレスポンスを変更してバックエンドサービスとのやり取りを調整することです。
アウトバウンドポリシーの例:
ヘッダーの変更:リクエストまたはレスポンスのヘッダーを変更します。
レスポンスの変換:バックエンドからのレスポンスを変換して、クライアントが期待する形式に合わせます。
キャッシング:バックエンドからのレスポンスを一時的にキャッシュし、再度のリクエスト時にバックエンドへの負荷を軽減します。
Backend Policies(バックエンドポリシー):
バックエンドポリシーは、API Managementがバックエンドサービスにリクエストを転送した後に適用されるポリシーです。主な目的は、バックエンドサービスからのレスポンスを処理し、最終的なクライアントレスポンスに影響を与えることです。
oauth2AllowImplicitFlow - この Web アプリが OAuth2.0 暗黙的フロー アクセス トークンを要求できるかどうかを指定します。デフォルトは false です。このフラグは、JavaScript シングルページ アプリなどのブラウザベースのアプリに使用されます。
oauth2AllowIdTokenImplicitFlow - この Web アプリが OAuth2.0 暗黙的フロー ID トークンを要求できるかどうかを指定します。デフォルトは false です。このフラグは、JavaScript シングルページ アプリなどのブラウザベースのアプリに使用されます。
App Service の 認証, Token Storeをオンにする
サーバサイドの以下のリクエストヘッダにAAD関連の情報が入っている。さらに詳細情報が必要な場合はトークンを使用して認証APIにアクセスする。
X-Ms-Client-Principal-Name : ログイン名
X-Ms-Client-Principal-Id : ID
X-MS-TOKEN-AAD-ACCESS-TOKEN : 認証APIアクセス用のトークン
Azure Resource Manager アクセス トークンを取得する時はInvoke-RestMethod コマンドレットを実行して、Azure リソース エンドポイントのローカル マネージド ID に要求を行う
Application Insights
Impact は、読み込み時間やその他のプロパティがアプリのさまざまな部分のコンバージョン率にどのように影響するかを分析します。より正確に言うと、ページ ビュー、カスタム イベント、またはリクエストのディメンションが、別のページ ビューまたはカスタム イベントの使用にどのような影響を与えるかを検出します。
Azure Application Insights を使用して、ビジネスと使用状況のテレメトリを分析します。
ユーザー、セッション、イベントのセグメンテーション ツールは、Web アプリからのテレメトリを 3 つの観点からスライス アンド ダイスするために使用されます。データをフィルタリングして分割することで、さまざまなページや機能の相対的な使用状況に関する洞察を明らかにできます。
• ユーザー ツール: アプリとその機能を何人が使用しましたか? ユーザーはブラウザの Cookie に保存されている匿名 ID を使用してカウントされます。異なるブラウザまたはマシンを使用する 1 人のユーザーは複数のユーザーとしてカウントされます。
• セッション ツール: アプリの特定のページや機能が含まれているユーザー アクティビティのセッションは何回ありますか? セッションは、ユーザーが 30 分間非アクティブになった後、または 24 時間連続使用した後にカウントされます。
• イベント ツール: アプリの特定のページと機能が使用される頻度。ページビューは、ブラウザーがアプリからページを読み込むときにカウントされます (アプリをインストルメント化している場合)。
AcrPush - イメージを Docker プッシュしたり、Helm チャートなどのサポートされている別のアーティファクトをレジストリにプッシュしたりする機能。
ArcImageSigner - イメージに署名する機能。通常はサービス プリンシパルを使用する自動プロセスに割り当てられます。通常、このアクセス許可はイメージのプッシュと組み合わされて、信頼できるイメージをレジストリにプッシュできるようになります。
Azure Queue Storage は、大量のメッセージを保存するためのサービスです。HTTP または HTTPS を使用した認証済み呼び出しを通じて、世界中のどこからでもメッセージにアクセスできます。キュー メッセージのサイズは最大 64 KB です。キューには、ストレージ アカウントの総容量制限までの数百万のメッセージが含まれる場合があります。キューは通常、非同期で処理する作業のバックログを作成するために使用されます。
Microsoft からの Azure CDN に対するデバッグ HTTP ヘッダー
WEBSITE_SWAP_WARMUP_PING_PATH: サイトをウォームアップするために ping を実行するパス。このアプリ設定を追加するには、値としてスラッシュで始まるカスタム パスを指定します。例としては /statuscheck があります。デフォルト値は / です。
WEBSITE_SWAP_WARMUP_PING_STATUSES: ウォームアップ操作の有効な HTTP 応答コード。HTTP コードのカンマ区切りリストを使用して、このアプリ設定を追加します。例は 200,202 です。返されたステータス コードがリストにない場合、ウォームアップおよびスワップ操作は停止します。デフォルトでは、すべての応答コードが有効です。
WEBSITE_WARMUP_PATH: サイトが再起動されるたびに (スロット スワップ中だけでなく) ping を実行する必要があるサイト上の相対パス。値の例には、/statuscheck またはルート パス / が含まれます。
Azure Event Hubs は、コンシューマーとプロデューサー向けに、AMQP、Kafka、HTTPS という 3 つのプロトコルをサポートしています。
ARM テンプレートには次のセクションがあります。
パラメーター - デプロイ中に、同じテンプレートを異なる環境で使用できるようにする値を指定します。
変数 - テンプレートで再利用される値を定義します。これらはパラメータ値から構築できます。
ユーザー定義関数 - テンプレートを簡素化するカスタマイズされた関数を作成します。
リソース - デプロイするリソースを指定します。
出力 - デプロイされたリソースからの値を返します。
The template has the following sections:
Parameters - Provide values during deployment that allow the same template to be used with different environments.
Variables - Define values that are reused in your templates. They can be constructed from parameter values.
User-defined functions - Create customized functions that simplify your template.
Resources - Specify the resources to deploy.
Outputs - Return values from the deployed resources.
ARMの必須要素は以下。
スキーマ - テンプレート言語のバージョンを記述する JSON スキーマ ファイルの場所。使用するバージョン番号は、デプロイメントの範囲と JSON エディターによって異なります。
コンテンツ バージョン - テンプレートのバージョン (1.0.0.0 など)。この要素には任意の値を指定できます。この値を使用して、テンプレートの重要な変更を文書化します。テンプレートを使用してリソースをデプロイする場合、この値を使用して、適切なテンプレートが使用されていることを確認できます。
リソース - リソース グループまたはサブスクリプションでデプロイまたは更新されるリソースの種類。
次のアプリ設定のいずれかまたは両方を使用して、ウォームアップ動作をカスタマイズできます。
WEBSITE_SWAP_WARMUP_PING_PATH: サイトをウォームアップするために ping を実行するパス。このアプリ設定を追加するには、値としてスラッシュで始まるカスタム パスを指定します。例としては /statuscheck があります。デフォルト値は / です。
WEBSITE_SWAP_WARMUP_PING_STATUSES: ウォームアップ操作の有効な HTTP 応答コード。HTTP コードのカンマ区切りリストを使用して、このアプリ設定を追加します。例は 200,202 です。返されたステータス コードがリストにない場合、ウォームアップおよびスワップ操作は停止します。デフォルトでは、すべての応答コードが有効です。
WEBSITE_WARMUP_PATH: サイトが再起動されるたびに (スロット スワップ中だけでなく) ping を実行する必要があるサイト上の相対パス。値の例には、/statuscheck またはルート パス / が含まれます。
ARMのtemplateは以下。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "",
"apiProfile": "",
"parameters": { },
"variables": { },
"functions": [ ],
"resources": [ ],
"outputs": { }
}
必須要素は以下。
スキーマ
コンテンツ バージョン
リソース
CosmosDBの一貫性
厳密(Strong):
厳密な一貫性を持つレベルで、読み取り操作は常に最新の書き込み結果を反映します。つまり、データの書き込み後すぐにデータを読み取ると、最新の情報が得られます。ただし、この一貫性レベルを使用する場合、レイテンシが増加する可能性があります。
有界整合性制約(Bounded Staleness):
一定時間の間隔(有界)内でデータの整合性を保証するレベルです。指定した時間以内のデータは一貫性がありますが、それを超えた過去のデータについては整合性が保証されません。このレベルを使用することで、一貫性とレイテンシのバランスを取ることができます。
Session(セッション):
セッション単位で一貫性を保証するレベルです。同じセッション内の操作は常に順序通りに実行されますが、異なるセッション間では順序が保証されません。セッションに基づいた一貫性が必要な場合に選択します。
一貫性のあるプレフィックス(Consistent Prefix):
一定のプレフィックス(接頭辞)についてのみ、一貫性を保証します。全てのデータについての厳密な一貫性は必要ないが、一部のデータに対しては一貫性を保証したい場合に選択します。
最終的(Eventual):
最終的に一貫性を保証するレベルで、書き込み操作の結果が必ずしもすぐには反映されないことを意味します。時間の経過とともにデータは一貫性を持つように収束していきます。このレベルは、データの一貫性が即時に必要ではない非常に高いスケーラビリティを必要とする場合に選択されることがあります。
Azure Notice Hub は、任意のバックエンドから任意のモバイル デバイスにプッシュ通知を送信するために使用されます。
QueueClient クラスを使用すると、Queue Storage に保存されているキューを取得できます。
Application Insights のファネルを使用すると、ユーザーの分析情報を取得し、ステップ バイ ステップでコンバージョン率を監視することができます。
バッチ サイズ オプションを使用すると、Functions ランタイムが同時に取得して並列処理するキュー メッセージの数を構成できます。したがって、データベースの負荷が軽減されます。
委任されたアクセス許可は、サインインしているユーザーとして Web API にアクセスするクライアント アプリに適しています。
Event Grid では、Webhook エンドポイントへのイベントの配信を開始する前に、そのエンドポイントの所有権を証明する必要があります。この要件により、悪意のあるユーザーがエンドポイントにイベントを大量に送信することを防ぎます。Event Grid は、サブスクリプション検証イベントをエンドポイントに送信します。このイベントのスキーマは、他の Event Grid イベントと似ています。このイベントのデータ部分には、validationCode プロパティが含まれています。アプリケーションは、検証リクエストが予期されたイベント サブスクリプションに対するものであることを検証し、応答で検証コードを同期的に返します。このハンドシェイク メカニズムは、すべての Event Grid バージョンでサポートされています。
CorrelationId (correlation-id) - アプリケーションが相関の目的でメッセージのコンテキストを指定できるようにします。たとえば、返信されるメッセージの MessageId を反映します。
ReplyToSessionId (reply-to-group-id) - この値は ReplyTo 情報を拡張し、応答エンティティに送信されるときに応答にどの SessionId を設定するかを指定します。
- AcquireLeaseAsync は、leaseTime を指定しません。
easeTime は、リースを取得する期間を表す TimeSpan で、秒単位に切り捨てられます。null の場合、無限リースが取得されます。
2.GetBlockBlobReference メソッドは、このコンテナー内のブロック BLOB への参照を取得するだけです
- BreakLeaseAsync - BreakPeriod パラメーター - リースを維持できる時間を表す TimeSpan (秒単位に切り捨てられます)。この場合、それはゼロです。それでリースを解除します。
CorrelationId (correlation-id) - アプリケーションが相関の目的でメッセージのコンテキストを指定できるようにします。たとえば、返信されるメッセージの MessageId を反映します。
ReplyToSessionId (reply-to-group-id) - この値は ReplyTo 情報を拡張し、応答エンティティに送信されるときに応答にどの SessionId を設定するかを指定します。
Service Bus は、次の 3 つのフィルターをサポートします。
SQL フィルター
ブール値フィルター
相関関係フィルター
SqlFilter には、受信メッセージのユーザー定義のプロパティとシステム プロパティに対して、ブローカーで評価される、SQL に似た条件式が入っています。 すべてのシステム プロパティの条件式にはプレフィックスとして sys. を付ける必要があります。 フィルター条件の SQL 言語のサブセットは、プロパティ (EXISTS) や null 値 (IS NULL)、論理 NOT/AND/OR、関係演算子、単純な数値演算、および LIKE による単純なテキスト パターン マッチングの存在をテストします。
これは SQL フィルターを定義するための .NET の例です。
TrueFilter と FalseFilter により、すべての受信メッセージがサブスクリプションに選択される (true) か、いずれも選択されない (false) かのいずれかになります。 これら 2 つのフィルターは、SQL フィルターから派生します。
これはブール値フィルターを定義するための .NET の例です。
CorrelationFilter には、受信メッセージのユーザーおよびシステム プロパティの 1 つ以上と照合される条件セットが入っています。 一般的な使用方法は CorrelationId プロパティの照合ですが、アプリケーションでは次のプロパティに対して照合することもできます。
ContentType
Label
MessageId
ReplyTo
ReplyToSessionId
SessionId
To
任意のユーザー定義プロパティ。
Service Bus は、メッセージの受信時に特定のメッセージのみを受信するためのフィルタリング機能を提供します。以下は、3つのフィルターの使い分け方を簡単に説明します。
SQL フィルター:
SQL フィルターは、SQL-like(Structured Query Language)の式を使用してメッセージをフィルタリングします。メッセージのユーザー プロパティをベースに、指定した条件に合致するメッセージのみを受信することができます。例えば、メッセージのプロパティに "MessageType" という項目があり、その値が "Order" のメッセージのみを受信するようにフィルターを設定できます。柔軟なフィルタリングが可能で、複雑な条件に対応できます。
ブール値フィルター:
ブール値フィルターは、メッセージのユーザー プロパティの中で、指定したプロパティが存在するかどうかを基準にしてメッセージをフィルタリングします。指定したプロパティが存在するメッセージのみを受信するか、逆に指定したプロパティが存在しないメッセージのみを受信するかを選択できます。シンプルなフィルタリングに適しています。
相関関係フィルター:
相関関係フィルターは、関連する複数のメッセージをグループ化して処理する際に使用します。複数のメッセージがある場合、それらを一貫して処理する必要がある場合に使用します。相関関係フィルターは、同じ相関 ID を持つメッセージをグループ化し、そのグループ内で順序を保持して処理します。これにより、関連するメッセージの一貫性を確保することができます。
以上のように、SQL フィルターは条件に基づく柔軟なフィルタリングに適しています。一方、ブール値フィルターは単純なプロパティの存在によるフィルタリングに使われ、相関関係フィルターは関連するメッセージのグループ化と順序付けに使われます。適切なフィルターを選択することで、アプリケーションが必要なメッセージのみを効率的に受信できるようになります。
Azure Service Bus キューは FIFO を提供し、最大制限は 80 GB です。ただし、メッセージを処理する VM の代わりに、Azure コストを最小限に抑えるために Azure Function の使用を検討してください。
QueueTrigger を使用すると、メッセージがキューに到着したときに関数をトリガーできます。
Azure Cosmos DB 出力バインディングを使用すると、SQL API を使用して新しいドキュメントを Azure Cosmos DB データベースに書き込むことができます。
方向は外側に設定する必要があります。
UseAuthentication – 指定された IApplicationBuilder に AuthenticationMiddleware を追加し、認証機能を有効にします。
UseAuthorization – 指定された IApplicationBuilder に AuthorizationMiddleware を追加し、認可機能を有効にします。
UseAzureAppConfiguration - アプリケーションが App Configuration ミドルウェアを使用して構成の更新を自動的に処理できるようにします。
変更フィード プロセッサの実装には、次の 4 つの主なコンポーネントがあります。
監視対象コンテナ:監視対象コンテナには、変更フィードの生成元となるデータが含まれています。監視対象のコンテナに対する挿入と更新は、コンテナの変更フィードに反映されます。
リース コンテナー:リース コンテナーは状態ストレージとして機能し、複数のワーカーにわたる変更フィードの処理を調整します。リース コンテナーは、監視対象コンテナーと同じアカウントに保存することも、別のアカウントに保存することもできます。
ホスト:ホストは、変更フィード プロセッサを使用して変更をリッスンするアプリケーション インスタンスです。同じリース構成を持つ複数のインスタンスは並行して実行できますが、各インスタンスには異なるインスタンス名が必要です。
デリゲート:デリゲートは、変更フィード プロセッサが読み取る変更の各バッチに対して開発者が何を実行するかを定義するコードです。
シナリオ: ポリシー サービスは、Application Insights を使用して、実行するポリシー アクションの数に応じて自動的にスケーリングする必要があります。
アプリ サービスを自動スケールする場合は、セッション情報をキャッシュする必要があります。
Azure Cache for Redis は、SQL の代わりに Azure Cache for Redis を使用してセッション状態をメモリ内に保存するために使用できるセッション状態プロバイダーを提供します。
Azure Storage キューでは FIFO が保証されず、サイズが 80 GB を超える可能性があります。Azure Service Bus キューは正しい選択です。
QueueTrigger を使用すると、メッセージがキューに到着したときに関数をトリガーできます。
Azure Cosmos DB 出力バインディングを使用すると、SQL API を使用して新しいドキュメントを Azure Cosmos DB データベースに書き込むことができます。
方向は外側に設定する必要があります。
入力検証ポリシー(validate-request):
入力検証ポリシーは、API のリクエストが要件を満たしているかを検証するために使用されます。リクエストヘッダーやパラメータ、ペイロードなどの内容をチェックして、必要なデータが含まれているか、データの形式が正しいかを確認できます。入力検証に失敗した場合、エラーレスポンスを返すなど、適切な対応を行うことができます。
出力変換ポリシー(rewrite-uri):
出力変換ポリシーは、API の応答データを変更するために使用されます。応答データの内容や形式を変換したり、特定の要素を削除したりできます。外部クライアントに応答データを提供する際に、必要な情報だけを公開したり、データを加工して提供することができます。
ログポリシー(log-to-eventhub、log-to-storage、log-to-syslog など):
ログポリシーは、API のリクエストや応答の情報を記録するために使用されます。特定のイベント ハブ、ストレージ、syslog サーバーなどにログを送信することができます。ログを分析したり、トラブルシューティングに役立てることができます。
条件分岐ポリシー(choose):
条件分岐ポリシーは、特定の条件に基づいて、異なるポリシーセクションを実行するために使用されます。例えば、特定のヘッダーが存在する場合には異なる処理を行う、または異なるバージョンのエンドポイントにリクエストを転送する、などの動作を実装できます。
キャッシュポリシー(cache-lookup、cache-store など):
キャッシュポリシーは、API のレスポンスデータを一時的に保存して、同じリクエストに対して再計算を避けるために使用されます。キャッシュにより、API のパフォーマンスが向上し、負荷を軽減できます。
クワイエリポリシー(set-query-parameter、remove-query-parameter など):
クエリポリシーは、リクエストのクエリパラメータを追加、更新、削除するために使用されます。API を呼び出すクライアントが必要な情報をクエリストリングに含める必要がある場合に役立ちます。
Azure Cosmos DB の整合性レベルは、アプリケーションの要件やビジネス上の目標に応じて選択する必要があります。以下は、各整合性レベルの特性と使い分け方の一般的なガイドラインです。
厳密整合性 (Strong):
特徴: 最も一貫性が高いレベルで、すべての読み取り操作は最新のデータを取得します。
使い分け方: ビジネス上重要なデータや厳格な一貫性が必要なトランザクションに使用されます。書き込みの競合があまり重要でない場合に適していますが、書き込みパフォーマンスが低下する可能性があります。
有界整合性制約 (Bounded staleness):
特徴: 一定の遅延を許容して最新のデータを提供します。読み取り操作は一定期間内の変更をキャッチアップしますが、過去の一部の更新を無視します。
使い分け方: リアルタイム性が要求されるデータや、一定の遅延を許容することで書き込みパフォーマンスを向上させたい場合に適しています。
セッション整合性 (Session):
特徴: クライアントごとに読み取り操作の一貫性が保証されます。同じセッションIDを持つすべてのリクエストは、同じ順序で読み取りを行います。
使い分け方: クライアントが特定のセッションを持つ状況で使いたい場合に適しています。特定のセッションにおいて強力な整合性に近い動作を必要とする場合に適しています。
一貫性のあるプレフィックス (Consistent Prefix):
特徴: クライアントごとに一貫性が保証されますが、一部のリクエストは最新のデータでない場合があります。
使い分け方: 特定のプレフィックス(プレフィックスとは、データの特定の範囲を指す識別子)でデータの一貫性を重視する場合に適しています。
最終的整合性 (Eventual):
特徴: 最も緩い一貫性レベルで、データのコピーがすべてのリージョンに到達するまでの遅延を許容します。
使い分け方: リードレプリカを遅延させることで、システム全体のパフォーマンスを最適化したい場合に適しています。特に大規模なデータベースに対してスケーラビリティを重視する場合に使用されます。
整合性レベルの選択は、データの一貫性とパフォーマンスのトレードオフを理解し、アプリケーションの要件に合わせて適切なものを選択することが重要です。必要な整合性がデータの特性に合致していることを確認するために、アプリケーションのテストや評価が重要になります。
Azure Queue Storage は、大量のメッセージを保存するためのサービスです。HTTP または HTTPS を使用した認証済み呼び出しを通じて、世界中のどこからでもメッセージにアクセスできます。キュー メッセージのサイズは最大 64 KB です。キューには、ストレージ アカウントの総容量制限までの数百万のメッセージが含まれる場合があります。キューは通常、非同期で処理する作業のバックログを作成するために使用されます。
Azure Storage キューでは FIFO が保証されず、サイズが 80 GB を超える可能性があります。Azure Service Bus キューは正しい選択です。
ASE
App Service Environment は、App Service アプリを大規模かつ安全に実行するために完全に分離された専用の環境を提供する、Azure App Service の機能です。
ISE
ISE は、"グローバル" なマルチテナント Azure Logic Apps から分離されている専用のストレージその他のリソースを使用する環境です。
ややこしや。
ユーザーフロー -
ユーザー フロー ツールは、ユーザーがサイトのページや機能間をどのように移動するかを視覚化します。次のような質問に答えるのに最適です。
✑ ユーザーはどのようにしてサイト上のページから移動しますか?
✑ ユーザーはサイトのページで何をクリックしますか?
✑ あなたのサイトからユーザーが最も離脱する場所はどこですか?
✑ ユーザーが同じアクションを何度も繰り返す場所はありますか?
参照:
いよいよ明日試験
監視対象コンテナ:監視対象コンテナには、変更フィードの生成元となるデータが含まれています。監視対象のコンテナに対する挿入と更新は、コンテナの変更フィードに反映されます。
リース コンテナー:リース コンテナーは状態ストレージとして機能し、複数のワーカーにわたる変更フィードの処理を調整します。リース コンテナーは、監視対象コンテナーと同じアカウントに保存することも、別のアカウントに保存することもできます。
ホスト:ホストは、変更フィード プロセッサを使用して変更をリッスンするアプリケーション インスタンスです。同じリース構成を持つ複数のインスタンスは並行して実行できますが、各インスタンスには異なるインスタンス名が必要です。
デリゲート:デリゲートは、変更フィード プロセッサが読み取る変更の各バッチに対して開発者が何を実行するかを定義するコードです。
監視対象コンテナ
監視対象のコンテナに対する挿入と更新
リース コンテナー
変更フィードの処理を調整
ホスト
変更フィード プロセッサを使用して変更をリッスンするアプリケーション インスタンスです。同じリース構成を持つ複数のインスタンスは並行して実行できますが、各インスタンスには異なるインスタンス名が必要です。
デリゲート
変更フィード プロセッサが読み取る変更の各バッチに対して開発者が何を実行するかを定義するコードです。
Identity Protection は、組織が次の 3 つの主要なタスクを実行できるようにするツールです。
ID ベースのリスクの検出と修復を自動化します。
ポータルのデータを使用してリスクを調査します。
リスク検出データを SIEM にエクスポートします。
Active Directory 統合認証 - フェデレーション ドメイン、またはパススルーおよびパスワード ハッシュ認証のシームレスなシングル サインオン用に構成されたマネージド ドメインから Azure Active Directory 資格情報を使用して Windows にログインしている場合は、この方法を使用します。
平均 CPU パーセンテージは CPU の使用率を示し、ウィンドウ サイズはメトリクスを「##h##m##s」形式で集計する時間です。
Azure Redis Cache はサーバー側のキャッシュに使用されます。代わりに、コンテンツ配信ネットワーク (CDN) を使用できます。コンテンツ配信ネットワーク (CDN) は、Web コンテンツをユーザーに効率的に配信できるサーバーの分散ネットワークです。CDN は、遅延を最小限に抑えるために、エンド ユーザーに近いエッジ サーバーにキャッシュされたコンテンツを保存します。
SAN ストレージはサーバー上にファイルを保存することです。代わりに、コンテンツ配信ネットワーク (CDN) を使用できます。コンテンツ配信ネットワーク (CDN) は、Web コンテンツをユーザーに効率的に配信できるサーバーの分散ネットワークです。CDN は、遅延を最小限に抑えるために、エンド ユーザーに近いエッジ サーバーにキャッシュされたコンテンツを保存します。
11
パーティション内クエリ
パーティション外クエリ
違いは?
定義にはコードビューを使用し、ワークフローにはデザイナーを使用すると思います
ARR は、リクエストをアプリケーションの同じインスタンスに送信します。代わりに、Azure Redis Cache などのキャッシュ ソリューションを使用できます。
Azure Queue Storage は、大量のメッセージを保存するためのサービスです。HTTP または HTTPS を使用した認証済み呼び出しを通じて、世界中のどこからでもメッセージにアクセスできます。キュー メッセージのサイズは最大 64 KB です。キューには、ストレージ アカウントの総容量制限までの数百万のメッセージが含まれる場合があります。キューは通常、非同期で処理する作業のバックログを作成するために使用されます。
Azure Redis Cache はサーバー側のキャッシュに使用されます。代わりに、コンテンツ配信ネットワーク (CDN) を使用できます。コンテンツ配信ネットワーク (CDN) は、Web コンテンツをユーザーに効率的に配信できるサーバーの分散ネットワークです。CDN は、遅延を最小限に抑えるために、エンド ユーザーに近いエッジ サーバーにキャッシュされたコンテンツを保存します。
コンテンツ配信ネットワーク (CDN) を使用できます。コンテンツ配信ネットワーク (CDN) は、Web コンテンツをユーザーに効率的に配信できるサーバーの分散ネットワークです。CDN は、遅延を最小限に抑えるために、エンド ユーザーに近いエッジ サーバーにキャッシュされたコンテンツを保存します。
SAN ストレージはサーバー上にファイルを保存することです。代わりに、コンテンツ配信ネットワーク (CDN) を使用できます。コンテンツ配信ネットワーク (CDN) は、Web コンテンツをユーザーに効率的に配信できるサーバーの分散ネットワークです。CDN は、遅延を最小限に抑えるために、エンド ユーザーに近いエッジ サーバーにキャッシュされたコンテンツを保存します。
Microsoft Graphとは、Microsoft 365やAzure ADのデータにアクセスすることができるエンドポイントのことです。ユーザーやグループ、メール、Teamsなど多岐にわたるデータにアクセスすることができます。
システム割り当てマネージド ID は、Azure サービス インスタンス上で直接有効にされます。 この ID を有効にすると、そのインスタンスのサブスクリプションによって信頼されている Azure AD テナントに対し、対応するインスタンスの ID が Azure によって作成されます。 ID が作成されると、その資格情報がインスタンスにプロビジョニングされます。 システム割り当て ID のライフサイクルは、その ID が有効にされた Azure サービス インスタンスに直接関連付けられます。 インスタンスが削除された場合、Azure は Azure AD の資格情報および ID を自動的にクリーンアップします。
ユーザー割り当てマネージド ID は、スタンドアロン Azure リソースとして作成されます。 作成プロセスで、使用されているサブスクリプションによって信頼されている Azure AD テナントに、Azure が ID を作成します。 作成された ID は、1 つまたは複数の Azure サービス インスタンスに割り当てることができます。 ユーザー割り当て ID のライフサイクルは、その ID が割り当てられている Azure サービス インスタンスのライフサイクルとは個別に管理されます。
Azure App Configuration は、アプリケーション設定と機能フラグを一元的に管理するためのサービスを提供します。 近年のプログラム、特にクラウドで実行されるプログラムは、その性質上、分散されたコンポーネントが多数存在するのが一般的です。 これらのコンポーネント全体に構成設定を分散させることは、トラブルシューティングすることの難しいエラーがアプリケーションのデプロイ中に発生する原因となります。 App Configuration を使用すると、アプリケーションのすべての設定を 1 か所に格納して、そのアクセスをセキュリティで保護することができます。
いざ勝負
合格
805点で合格
しました。