azd
を使用した自動デプロイAzure API Center は、組織の API の構造化されたインベントリの開発と維持を支援するサービスです。 API Center を使用すると、API の種類、ライフサイクルの段階、展開場所に関係なく、すべての API を一元的な場所で追跡できます。 API Center は、API の検出、再利用、ガバナンスを可能にし、API プラットフォーム チームを強化します。
API Center ポータルは、開発者と関係者が API をシームレスに発見して利用できるようにする Web サイトです。 API センター ポータルのリファレンス実装により、API プラットフォーム チームは Web ベースの API の検出と使用のエクスペリエンスを API コンシューマーに提供できるようになります。
API Center ポータルのリファレンス実装では、以下が提供されます。
無料の SKU API Center インスタンスの場合、API センターにある API の数に関係なく、最大 5 つの API が API センター ポータルに表示されます。
標準 SKU の場合、制限はなく、すべての API が表示されます。
始める前に、次の要件を満たしていることを確認してください。
このセルフホスト型 API センター ポータルをデプロイするには 2 つのオプションがあります。
azd
) を使用して、ポータル アプリを 1 ステップでデプロイします。このオプションは、導入プロセスを合理化するために推奨されます。azd
を使用した自動デプロイ注: このオプションには追加の前提条件が必要になります。
- ✅ Azure 開発者 CLI (
azd
)- ✅ Azure CLI
- ✅ GitHub CLI
このリポジトリを GitHub アカウントにフォークし、クローンを作成します。
git clone https://github.com/ < YOUR_GITHUB_ALIAS > /APICenter-Portal-Starter.git
以下のコマンドでログインします。これにより、 azd
cli を使用してアプリケーションを迅速にプロビジョニングおよびデプロイできるようになります。
# Authenticate with Azure Developer CLI
azd auth login
# Authenticate with Azure CLI
az login
azd up
実行してすべてのリソースを Azure にプロビジョニングし、コードをそれらのリソースにデプロイします。
azd up
環境名を入力し、希望のsubscription
とlocation
を選択します。次に、さらにいくつかの値を入力するよう求められます。
apiCenterExisted
)。apiCenterExisted
値をtrue
に)、 apiCenterName
、 apiCenterRegion
、およびapiCenterResourceGroupName
の値を渡します。apiCenterExisted
値をfalse
に設定)。staticAppLocation
値を渡します。リソースのデプロイが完了するまでしばらく待ちます。次の 2 つのシナリオがあります。
- 新しい API Center を備えたポータル –
apiCenterExisted
にFalse
指定し、apiCenterName
、apiCenterRegion
、およびapiCenterResourceGroupName
空白のままにする必要があります。- 既存の API Center を備えたポータル –
apiCenterExisted
にTrue
指定し、apiCenterName
、apiCenterRegion
、およびapiCenterResourceGroupName
に値を渡す必要があります。
CI/CD パイプラインを GitHub Actions と統合する場合は、次のコマンドを使用して GitHub リポジトリを作成し、コードをリポジトリにプッシュできます。まずはGitHubにログインします。
# Authenticate with GitHub CLI
gh auth login
次のコマンドを実行して、GitHub リポジトリ変数を更新します。
注: 次のコマンドを実行する前に、このリポジトリが GitHub アカウントにフォークされていることを確認してください。
# Bash
AZURE_CLIENT_ID= $( ./infra/scripts/get-azdvariable.sh --key AZURE_CLIENT_ID )
azd pipeline config --principal-id $AZURE_CLIENT_ID
# PowerShell
$AZURE_CLIENT_ID = $( ./infra/scripts/Get-AzdVariable.ps1 -Key AZURE_CLIENT_ID )
azd pipeline config --principal-id $AZURE_CLIENT_ID
さあ、準備完了です!コードを GitHub リポジトリにプッシュするか、GitHub Actions ワークフローを手動で実行してポータルをデプロイします。
デフォルトでは、ポータルには API Center インスタンスからのすべての API が表示されます。 OData クエリ構文を使用してpublic/config.example
ファイルのscopingFilter
プロパティを設定することで、特定の API をフィルターで除外するようにポータル インスタンスを構成できます。例えば:
{
"dataApiHostName": ".data..azure-apicenter.ms/workspaces/default",
"title": "API portal",
"authentication": {
"clientId": "",
"tenantId": "",
"scopes": ["https://azure-apicenter.net/user_impersonation"],
"authority": "https://login.microsoftonline.com/"
},
"scopingFilter": "customProperties/compliant eq true"
}
フィルター可能なプロパティの完全なリストについては、データプレーン API リソース モデルを参照してください。
注: このオプションには追加の前提条件が必要になります。
- ✅ 適切な API アクセス許可スコープとリダイレクト URI を使用して、Microsoft Entra ID テナントでのアプリ登録を構成しました。
- ✅ 適切な役割の割り当てで有効化されたポータルのサインイン
開発環境をセットアップするには、次の手順に従います。
リポジトリのクローンを作成する
git clone https://github.com/Azure/APICenter-Portal-Starter.git
メインブランチに切り替えます。
git checkout main
public/config.example
ファイルをpublic/config.json
にコピーまたは名前変更します。
Azure API Center サービスを指すようにpublic/config.json
ファイルを構成します。構成例を次に示します。
{ "dataApiHostName" : ".data. , "title" : " API portal " , "authentication" : { "clientId" : ".azure-apicenter.ms/workspaces/default " " , "tenantId" : "" , "scopes" : [ " https://azure-apicenter.net/user_impersonation " ], "authority" : " https://login.microsoftonline.com/ " } }
必要なパッケージをインストールします。
npm install
開発サーバーの起動 - このコマンドは、ローカルで実行されている開発モードでポータルを起動します。
npm start
Azure Static Web Apps は、コード リポジトリからフルスタック Web アプリを自動的に構築して Azure にデプロイするサービスです。このチュートリアルでは、GitHub Actions を使用して Azure Static Web Apps にデプロイします。
静的 Web アプリで実行されている API Center ポータルを表示するには、Azure portal で作成した静的 Web アプリ リソースの[概要]タブで[ブラウザーでアプリを表示]をクリックします。
テンプレートを改善する方法に関するアイデアとガイダンスについては、投稿ガイドラインを参照してください。ありがとう!
☀️ 皆様からのご意見をお待ちしております! ☀️
皆様からのフィードバックは私たちにとって非常に貴重なものです。リポジトリの問題セクションでご意見やご提案を共有することをお勧めします。ここでバグを報告したり、機能リクエストを送信したりすることもできます。ご安心ください。私たちは継続的に改善するために、皆様からのご意見を注意深く監視していきます。私たちはこれらの問題の監視に専念していますが、このチャネルは Microsoft Azure サービス サポートの一部ではないことに注意してください。
Microsoft Azure サポートのサポートは、lint エンジンを実行する Azure Function アプリの初期セットアップに限定されています。ベスト エフォート型サポートは、ホスティング プラットフォーム、開発環境、ネットワーク構成など (ただしこれらに限定されない) 環境要因によって引き起こされる問題に対して提供されます。
lint エンジンの拡張や既存のルールの改善に関する技術的なサポートが必要な場合は、Stack Overflow などの既存の技術コミュニティを活用してください。 GitHub の問題によるサポートは提供しません。
私たちはコミュニティへの貢献を歓迎し、感謝しています。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、「行動規範に関するよくある質問」を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。
商標 このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。 Microsoft の商標またはロゴの許可された使用には、Microsoft の商標およびブランド ガイドラインが適用され、それに従わなければなりません。このプロジェクトの修正バージョンで Microsoft の商標またはロゴを使用することは、混乱を引き起こしたり、Microsoft のスポンサーであることを暗示したりしてはなりません。第三者の商標またはロゴの使用には、それらの第三者のポリシーが適用されます。
データ収集。ソフトウェアは、お客様およびソフトウェアの使用状況に関する情報を収集し、Microsoft に送信する場合があります。 Microsoft は、サービスを提供し、製品とサービスを改善するためにこの情報を使用することがあります。リポジトリの説明に従ってテレメトリをオフにすることができます。ソフトウェアには、お客様と Microsoft がアプリケーションのユーザーからデータを収集できる機能がいくつかあります。これらの機能を使用する場合は、Microsoft のプライバシー ステートメントのコピーとともにアプリケーションのユーザーに適切な通知を提供するなど、適用法を遵守する必要があります。当社のプライバシーに関する声明は https://go.microsoft.com/fwlink/?LinkID=824704 にあります。データの収集と使用について詳しくは、ヘルプ ドキュメントとプライバシー ステートメントをご覧ください。ソフトウェアの使用は、これらの慣行に同意したものとみなされます。
マサチューセッツ工科大学