AWS Japan YouTube 公式チャンネルでライブ配信された 2022年4月26日の AWS Developer Live Show 「Infrastructure as Code 談議 2022」 の資料となります。 当日の配信はこちら からご確認いただけます。
https://youtu.be/ed35fEbpyIE
AWS Japan YouTube 公式チャンネルでライブ配信された 2022年4月26日の AWS Developer Live Show 「Infrastructure as Code 談議 2022」 の資料となります。 当日の配信はこちら からご確認いただけます。
https://youtu.be/ed35fEbpyIE
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Yoichi Kawasaki
Web App for Containers は、アプリスタックのホストに Docker コンテナーを使用するため皆さんが今Linux上で利用しているOSSベースのアプリもアプリスタックごとDockerコンテナ化することでそのまま Web App for Containersで利用することができます。本ウェビナーでは簡単なMySQL + Ruby on Rails アプリ を題材に、アプリをコンテナ化し Web App for Containersにデプロイするまでの一連の流れを解説し、CIツールを使った継続的なデプロイ方法についてご紹介します。今回、AzureのフルマネージドMySQLサービスであるAzure DB for MySQLを利用して完全マネージドな環境でのアプリ実行を実現します。
10. Developers Guests
カスタム
Admins
API Management 全体像
API Management
グループ
API
サブスクリプション
Policy
Frontend Backend Api
/path https://~
https://<APIM Name>.azure-api.net
アクセス制御
開発者(ユーザー)
N:N
Operations
In
Out
Err
Policy
N:N
開発者ポータル
Nextscape Inc. 10
API
(Backend)
(Publisher)
Client
(FrontEnd)
(Consumer)
成果物(製品)
N:N
11. Developers Guests
カスタム
Admins
N:N
API Management 全体像
API Management
サブスクリプション
Policy
Frontend Backend Api
/path https://~
https://<APIM Name>.azure-api.net
アクセス制御
開発者(ユーザー)
N:N
API
(Backend)
(Publisher)
Operations
In
Out
Err
Policy
N:N
開発者ポータル
Client
(FrontEnd)
(Consumer)
Nextscape Inc. 11
API
成果物(製品)
グループ
API:
API Managementから到達できるAPIであればなんでも登録
できる。まずはここへ API を登録するところからスタート。
PolicyではRequest/Response/Errorに対して処理をC#で書
くことができる。
12. Developers Guests
カスタム
Admins
グループ
API Management 全体像
API Management
サブスクリプション
Policy
Frontend Backend Api
/path https://~
https://<APIM Name>.azure-api.net
アクセス制御
開発者(ユーザー)
N:N
Operations
In
Out
Err
Policy
N:N
開発者ポータル
Nextscape Inc. 12
API
(Backend)
(Publisher)
Client
(FrontEnd)
(Consumer) API
N:N
成果物(製品/Products):
docsでは「成果物」もしくは「製品」と記載されている。
Portalでは「製品」となっているので要注意。
APIに対してアクセス制御を行うのが主な役割。
APIと成果物はN:Nの関係性。APIは複数の成果物に登録がで
きる。
成果物(製品)
13. グループ
Developers Guests
カスタム
Admins
API Management 全体像
API Management
サブスクリプション
Policy
Frontend Backend Api
/path https://~
https://<APIM Name>.azure-api.net
アクセス制御
開発者(ユーザー)
N:N
Operations
In
Out
Err
Policy
N:N
開発者ポータル
Nextscape Inc. 13
API
(Backend)
(Publisher)
Client
(FrontEnd)
(Consumer) API
グループ:
開発者は複数の(カスタム)グループに所属することができる。
ユーザー登録した開発者は必ずDevelopersグループに所属する。
成果物のアクセス制御にグループを登録することで、そのグ
ループに所属する開発者はその成果物を使用することができる
ようになる。
グループと成果物はN:Nで紐づけることができる。
成果物(製品)
N:N
14. Developers Guests
カスタム
Admins
N:N
グループ
API Management 全体像
API Management
サブスクリプション
Policy
Frontend Backend Api
/path https://~
https://<APIM Name>.azure-api.net
アクセス制御
開発者(ユーザー)
N:N
Operations
In
Out
Err
Policy
N:N
開発者ポータル
Nextscape Inc. 14
API
(Backend)
(Publisher)
Client
(FrontEnd)
(Consumer)
Policyでできること(やること)の代表格
セキュリティ&アクセス制限
• API キー、JWT トークン、証明書、その他の資格情報を検証
• 使用量クォータとレート制限を適用
• IPアドレスやユーザーIDで接続を制限・スロットリング
キャッシュ
• Backend APIのResponseをキャッシュ
その他
• Request/Reponseログを転送
• 外部サービスをHttpで呼び出し
API
成果物(製品)Policy:
PolicyはBackend APIへRequestを投げる前後に処理を入れることができる。処理
はC#で実装する。
PolicyはBackend APIが公開する複数の操作(Operation)ごとに設定もできるし、
Backend API全てに共通の設定もできるなど、スコープが4段階ある。
(操作の例: /id)
実に多彩な処理の実装が可能。テンプレートもあるが、外部にReqeustを投げるこ
とができるので独自実装を頑張ればかなりのことができる。
15. Developers Guests
カスタム
Admins
N:N
グループ
API Management 全体像
API Management
サブスクリプション
Policy
Frontend Backend Api
/path https://~
https://<APIM Name>.azure-api.net
アクセス制御
開発者(ユーザー)
N:N
Operations
In
Out
Err
Policy
N:N
開発者ポータル
Nextscape Inc. 15
API
(Backend)
(Publisher)
Client
(FrontEnd)
(Consumer) API
アクセス制御:
アクセス制御は成果物を使用できるグループを設定す
ることで可能となる。
ここでいうアクセス制御とは、開発者(ユーザー)に
対してのものであることに注意。
Policyによるアクセス制限:
成果物にもPolicyが設定できる。API単位より上の
スコープでの設定と思えばOK。
例えば使用量上限があるプランのAPI群を公開し
たい場合、そのプラン用の成果物を作成して使用
量クォータによる制限のPolicy実装をここに設定
することになる。
成果物(製品)
サブスクリプション:
成果物では、開発者(ユーザー)に対して利用許諾の
申請を求める設定がある。その設定をONにした場合、
開発者&成果物ごとのサブスクリプションキーが発行
され、それをHeaderに入れないとRequestが失敗す
る。
(申請を自動承認するか、手動で承認するか選択)
160. API Management のエラー処理
Nextscape Inc. 162
• API Mamagementでいうエラーは、Policyで発生したエラーと、Backend API
で発生したエラーと二種類あることを意識しておくこと
Policy
In
Out
Err
API
(Backend)
(Publisher)
Client
(FrontEnd)
(Consumer)
Backend
BackendAPIのResponseが
4xx, 5xxの場合
<outbound>でエラーハン
ドリング
PolicyがエラーをThrowの場合
<on-error>でハンドリング
API Management