1. はじめに
最終更新日: 2024 年 5 月 1 日
コンテンツ配信ネットワーク(CDN)は、頻繁にアクセスされるコンテンツをエンドユーザーの近くにキャッシュ保存し、クライアントの近くで接続を終了し、オリジンへの接続を再利用し、最新のネットワーキング プロトコルとカスタマイズを採用することで、ユーザーのパフォーマンスを向上させます。
メディア ストリーミング用の GCP のグローバル エッジ ネットワークである Media CDN には、多くの組み込み機能(コア機能)が用意されています。コア機能は最も一般的なユースケースに対応するように設計されていますが、このコア機能セットでは対応できない要件がある場合もあります。
Media CDN の Service Extensions(エッジ プログラマビリティとも呼ばれます)を使用すると、エッジで独自のコードを実行して Media CDN の動作をカスタマイズできます。これにより、キャッシュキーの正規化、カスタム トークン認証とトークンの取り消し、カスタム ログフィールドの追加、A/B テスト、カスタム エラーページなど、さまざまなユースケースが実現します。
作成するアプリの概要
このコードラボでは、Media CDN(CDN)+ Service Extensions(エッジ プログラマビリティ)+ Cloud Storage(CDN のソース)を使用して、Edge Compute 対応の CDN 配信環境をデプロイする手順について説明します。

学習内容
- 送信元として設定された Cloud Storage バケットを使用して Media CDN を設定する方法
- カスタム HTTP 認証を使用して Service Extensions プラグインを作成し、Media CDN に関連付ける方法
- Service Extension プラグインが想定どおりに動作していることを確認する方法
- (省略可)特定のプラグイン バージョンの更新、参照、ロールバック、削除など、Service Extension プラグインの管理方法
必要なもの
- ネットワーキングと HTTP に関する基本的な知識
- Unix / Linux コマンドラインに関する基本的な知識
2. 始める前に
Media CDN 許可リストと Service Extensions 許可リストのリクエスト
始める前に、プロジェクトが Media CDN と Media CDN 用 Service Extensions の両方の限定公開プレビューの許可リストに追加されていることを確認する必要があります。
- Media CDN と Media CDN 用 Service Extensions の両方へのアクセスをリクエストするには、Google アカウント チームにお問い合わせください。Media CDN と Service Extensions のアクセス リクエストを作成します。
3. 設定と要件
Cloud Shell の起動
Google Cloud はノートパソコンからリモートで操作できますが、この Codelab では、Google Cloud Shell(Cloud 上で動作するコマンドライン環境)を使用します。
GCP Console で右上のツールバーにある Cloud Shell アイコンをクリックします。

プロビジョニングと環境への接続にはそれほど時間はかかりません。完了すると、次のように表示されます。

この仮想マシンには、必要な開発ツールがすべて用意されています。永続的なホーム ディレクトリが 5 GB 用意されており、Google Cloud で稼働します。そのため、ネットワークのパフォーマンスと認証機能が大幅に向上しています。このラボでの作業はすべて、ブラウザから実行できます。
始める前に
IAM のロールとアクセス権
Media CDN リソースと Artifact Registry リソースの作成に必要な Identity and Access Management(IAM)権限は次のとおりです。
- roles/networkservices.edgeCacheAdmin
- roles/networkservices.edgeCacheUser
- roles/networkservices.edgeCacheViewer
- roles/artifactregistry.repoAdmin
Cloud Shell で、project_id、project_num、location、repository の環境変数が設定されていることを確認します。
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] PROJECT_NUM=[YOUR-PROJECT-NUMBER] LOCATION=us-central1 REPOSITORY=service-extension-$PROJECT_ID
API を有効にする
次のコマンドを使用して、Media CDN API と Service Extensions API を有効にします。
gcloud services enable networkservices.googleapis.com gcloud services enable networkactions.googleapis.com gcloud services enable edgecache.googleapis.com gcloud services enable artifactregistry.googleapis.com
4. Cloud Storage バケットを作成する
Media CDN コンテンツは、Cloud Storage バケット、サードパーティの保管場所、一般公開されている HTTP(HTTPS) エンドポイントなどの場所から配信できます。
この Codelab では、コンテンツを Cloud Storage バケットに保存します。
gsutil mb コマンドを使用してバケットを作成します。
gsutil mb gs://mediacdn-bucket-$PROJECT_ID
必要に応じて、次のように GUI を使用して Cloud Storage バケットを作成できます。
- Google Cloud コンソールで [Cloud Storage] ページに移動します。
- [CREATE] ボタンをクリックします。
- バケットの名前を入力します。- 例: 「mediacdn-bucket-$PROJECT_ID」。
- 残りの設定はデフォルトのままにします。
- [作成] ボタンをクリックします。

5. テスト オブジェクトを Cloud Storage バケットにアップロードする
次に、Cloud Storage バケットにオブジェクトをアップロードします。
- Cloud Shell でファイルを作成し、gsutil を使用してバケットにアップロードします。
echo media-cdn-service-extensions-test > file.txt gsutil cp file.txt gs://mediacdn-bucket-$PROJECT_ID
- Media CDN にバケットへのアクセス権を付与する
gsutil iam ch \ serviceAccount:service-$PROJECT_NUM@gcp-sa-mediaedgefill.iam.gserviceaccount.com:objectViewer gs://mediacdn-bucket-$PROJECT_ID
6. Media CDN を構成する
次に、Media CDN 構成を作成します。
各 Media CDN 構成は、次の 2 つのメイン リソースで構成されています。
- EdgeCacheService: クライアント側の構成(TLS、IP アドレス指定)、ルーティング、CDN 構成(キャッシュ モード、TTL、署名)、セキュリティ ポリシーを担当します。
- EdgeCacheOrigin: HTTP ベースのオリジンごとの構成と、コンテンツが利用できない場合やアクセスできない場合の再試行条件を管理します。
エッジ キャッシュ オリジンを構成する
次に、作成した Cloud Storage バケットを指すオリジンを作成します。
- Google Cloud コンソールで、[Media CDN] ページに移動します。
- [送信元] タブをクリックします。
- [オリジンを作成] をクリックします。
- エッジ キャッシュ オリジンとして「cloud-storage-origin」という名前を入力します。
- [発送元住所] で次の操作を行います。
- [Google Cloud Storage バケットを選択] を選択します。
- 「mediacdn-bucket-$PROJECT_ID」という名前の Cloud Storage バケットを参照します。
- [選択] をクリックします。
- 残りの設定はデフォルトのままにします。
- [オリジンを作成] をクリックします。

新しく作成された EdgeCacheOrigin リソースが、[送信元] ページのプロジェクトの送信元リストに表示されます。
Edge Cache Service を構成する
- Google Cloud コンソールで、[Media CDN] ページに移動します。
- [サービス] タブをクリックします。
- [サービスの作成] をクリックします。
- サービスの一意の名前(「media-cdn」など)を入力し、[次へ] をクリックします。

- [ルーティング] セクションで、[ホストルールを追加] をクリックします。
- [ホスト] フィールドにワイルドカード「*」を入力します。

- [ルートルールを追加] をクリックします。
- [優先度] に「1」を指定します。
- [一致条件を追加] をクリックし、[パスの一致] で [マッチタイプ] として [プレフィックス一致] を選択し、[パスの一致] フィールドに「/」を指定して、[完了] をクリックします。
- [プライマリ アクション] で [Origin から取得] を選択し、プルダウン リストで構成した送信元を選択します。

- [高度な構成] をクリックして、その他の構成オプションを開きます。
- [ルートのアクション] で、[項目を追加] をクリックします。次に、以下の操作を行います。
- [タイプ] で [CDN ポリシー] を選択します。
- [キャッシュ モード] で、[すべてのキャッシュを強制的に保存] を選択します。
- 残りはデフォルトのままにします。
- [完了] をクリックします。
- [保存] をクリックします。

- [サービスの作成] をクリックします。
新しく作成された EdgeCacheService リソースが、プロジェクトのサービスの一覧の [サービス] ページに表示されます。
MediaCDN の IP アドレスとテストを取得する
- Google Cloud コンソールで、[Media CDN] ページに移動します。
- Media CDN に移動
- [Services] タブをクリックします。
- サービスについては、[アドレス] 列をご覧ください。

コンテンツをキャッシュに保存するようにサービスが正しく構成されていることをテストするには、curl コマンドライン ツールを使用してリクエストを発行し、レスポンスを確認します。
curl -svo /dev/null "http://MEDIA_CDN_IP_ADDRESS/file.txt"
このコマンドを実行すると、次のような出力が生成されます。
< HTTP/2 200 OK ... media-cdn-service-extensions-test ...
これで、Cloud Storage を送信元として MediaCDN デプロイを作成できました。
7. Service Extensions 用に Artifact Registry を構成する
Service Extensions を作成する前に、Artifact Registry を構成する必要があります。Artifact Registry は、ビルド アーティファクトの管理に使用する Google Cloud のユニバーサル パッケージ管理システムです。Service Extension(Proxy-Wasm)プラグインが Artifact Registry に公開されます。Artifact Registry に公開された Proxy-Wasm プラグインは、Media CDN デプロイにデプロイできます。
gcloud artifacts repositories create コマンドを使用してリポジトリを作成します。
gcloud artifacts repositories create service-extension-$PROJECT_ID \
--repository-format=docker \
--location=$LOCATION \
--description="Repo for Service Extension" \
--async
必要に応じて、次のように GUI を使用してリポジトリを作成できます。
- Google Cloud コンソールで、[Artifact Registry] ページに移動します。
- [+ リポジトリを作成] ボタンをクリックします。
- リポジトリの名前を入力します(例: service-extension-$PROJECT_ID)。
- 形式 - 「Docker」、モード - 「標準」、ロケーション タイプ - 「リージョン」、[us-central1(アイオワ)] を選択します。
- [CREATE] ボタンをクリックします。

新しく作成した Artifact Registry リポジトリ リソースが [リポジトリ] ページに表示されます。
Repository リソースが作成されたら、Cloud Shell で次のコマンドを実行して、このリポジトリを使用してパッケージの push と pull を行うように Cloud Shell docker クライアントを構成します。
gcloud auth configure-docker $LOCATION-docker.pkg.dev
出力:
... Adding credentials for: us-central1-docker.pkg.dev Docker configuration file updated.
8. Media CDN で Service Extensions を構成する
ここでは、Rust プログラミング言語を使用して、Media CDN にデプロイできる Service Extension(Proxy-Wasm)プラグインを作成してビルドする方法について説明します。
この例では、各 HTTP リクエストに値が「secret」の Authorization ヘッダーが含まれていることを検証する Proxy-Wasm プラグインを作成します。リクエストにこのヘッダーが含まれていない場合、プラグインは HTTP 403 Forbidden レスポンスを生成します。
Service Extensions の概要: WasmAction、WasmPlugin、WasmPluginVersion の 3 つの主要なリソースがあります。
- WasmAction リソースは、Media CDN EdgeCacheService に接続されるものです。WasmAction は WasmPlugin リソースを参照します。
- WasmPlugin リソースには、現在アクティブな WasmPluginVersion に対応する main-version があります。
- WasmPluginVersions は、Artifact Registry のコンテナ イメージを参照します。proxy-wasm プラグインを変更すると、さまざまな WasmPluginVersion が作成されます。
これらのリソースの関係については、下の図をご覧ください。

サービス拡張機能プラグインを作成してビルドする
- https://www.rust-lang.org/tools/install の手順に沿って、Rust ツールチェーンをインストールします。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- 次に、次のコマンドを実行して、Rust ツールチェーンに Wasm サポートを追加します。
rustup target add wasm32-wasi
- my-wasm-plugin という名前の Rust パッケージを作成します。
cargo new --lib my-wasm-plugin
出力:
Created library `my-wasm-plugin` package
- ディレクトリ my-wasm-plugin に移動すると、
Cargo.tomlファイルとsrcディレクトリが表示されます。
cd my-wasm-plugin ls
出力:
Cargo.toml src
- 次に、
Cargo.tomlファイルを編集して Rust パッケージを構成します。Cargo.toml ファイルの[dependencies]行の後に、次の行を追加します。
proxy-wasm = "0.2"
log = "0.4"
[lib]
crate-type = ["cdylib"]
[profile.release]
lto = true
opt-level = 3
codegen-units = 1
panic = "abort"
strip = "debuginfo"
- 編集後の
Cargo.tomlファイルは次のようになります。
[package]
name = "my-wasm-plugin"
version = "0.1.0"
edition = "2021"
[dependencies]
proxy-wasm = "0.2"
log = "0.4"
[lib]
crate-type = ["cdylib"]
[profile.release]
lto = true
opt-level = 3
codegen-units = 1
panic = "abort"
strip = "debuginfo"
- 編集後の
lib.rsファイルは次のようになります。
use log::info;
use proxy_wasm::traits::*;
use proxy_wasm::types::*;
...
struct DemoPlugin;
impl HttpContext for DemoPlugin {
fn on_http_request_headers(&mut self, _: usize, _: bool) -> Action {
if self.get_http_request_header("Authorization") == Some(String::from("secret")) {
info!("Access granted.");
Action::Continue
} else {
self.send_http_response(403, vec![], Some(b"Access forbidden.\n"));
Action::Pause
}
}
}
impl Context for DemoPlugin {}
Cargo.tomlマニフェスト ファイルを構成し、lib.rsファイルに Proxy-Wasm コードを記述したので、Proxy-Wasm プラグインをビルドできます。
cargo build --release --target wasm32-wasi
ビルドが正常に完了すると、次のようなメッセージが表示されます。
Finished release [optimized] target(s) in 1.01s
target ディレクトリも確認し、ファイルが作成されていることを確認します。
ls ./target
出力は次のようになります。
CACHEDIR.TAG release wasm32-wasi
Proxy-Wasm プラグインを Artifact Registry に公開する
次に、作成した Artifact Registry リポジトリに Proxy-Wasm プラグインを公開して、Media CDN にデプロイできるようにします。
まず、Proxy-Wasm プラグインをコンテナ イメージにパッケージ化します。
- 同じディレクトリ my-wasm-plugin に、次の内容のファイルを
Dockerfileという名前で作成します。
FROM scratch
COPY target/wasm32-wasi/release/my_wasm_plugin.wasm plugin.wasm
- 次に、コンテナ イメージをビルドします。
docker build --no-cache --platform wasm -t my-wasm-plugin .
(x86 以外のプロセッサのみ)次に、コンテナ イメージをビルドします。
docker build --no-cache --platform wasm --provenance=false -t my-wasm-plugin .
出力
[+] Building 0.2s (5/5) FINISHED docker:default ...
- 次に、Proxy-Wasm プラグインを Artifact Registry に公開(プッシュ)します。コンテナ イメージに「prod」タグを付けます。
docker tag my-wasm-plugin $LOCATION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/my-wasm-plugin:prod
次に、タグ付きの「prod」コンテナ イメージをリポジトリに push します。
docker push $LOCATION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/my-wasm-plugin:prod
出力:
The push refers to repository ... 8564ddd9910a: Pushed prod: digest: sha256:f3ae4e392eb45393bfd9c200cf8c0c261762f7f39dde5c7cd4b9a8951c6f2812 size: 525
Proxy-Wasm プラグインのコンテナ イメージが Artifact Registry に正常に push されたことを確認します。次のような出力が表示されます。
gcloud artifacts docker images list $LOCATION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/my-wasm-plugin --include-tags
出力:
Listing items under project ... IMAGE DIGEST TAGS CREATE_TIME UPDATE_TIME <LOCATION>-docker.pkg.dev/.../my-wasm-plugin sha256:08c12... prod 2021-11-10T23:31:27 2021-11-10T23:31:27
Proxy-Wasm プラグインを Media CDN デプロイに関連付ける
これで、Proxy-Wasm プラグインを Media CDN デプロイに関連付ける準備が整いました。
Proxy-Wasm プラグインは、EdgeCacheService リソースの Media CDN ルートに関連付けられています。
- まず、Proxy-Wasm プラグインの Wasm-plugin リソースを作成します。
gcloud alpha service-extensions wasm-plugins create my-wasm-plugin-resource
- 次に、WasmPluginVersion を作成します。
gcloud alpha service-extensions wasm-plugin-versions create my-version-1 \
--wasm-plugin=my-wasm-plugin-resource \
--image="$LOCATION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/my-wasm-plugin:prod"
- 次に、Proxy-Wasm プラグインのメイン バージョンを指定します。
gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource \
--main-version=my-version-1
次に、Proxy-Wasm プラグインが Artifact Registry リポジトリにあるコンテナ イメージに正常に関連付けられていることを確認します。次のような出力が表示されます。
gcloud alpha service-extensions wasm-plugin-versions list --wasm-plugin=my-wasm-plugin-resource
出力:
NAME WASM_IMAGE WASM_IMAGE_DIGEST CONFIG_SIZE CONFIG_IMAGE CONFIG_IMAGE_DIGEST UPDATE_TIME c7cfa2 <LOCATION>-docker.pkg.dev/.../my-wasm-plugin@sha256:6d663... ... ... ...
- 次に、Wasm プラグイン リソースを参照する WasmAction リソースを作成します。
gcloud alpha service-extensions wasm-actions create my-wasm-action-resource \
--wasm-plugin=my-wasm-plugin-resource
WasmAction リソースが Proxy-Wasm プラグインに正常に関連付けられていることも確認します。次のような出力が表示されます。
gcloud alpha service-extensions wasm-actions list
出力:
NAME WASMPLUGIN my-wasm-action-resource projects/805782461588/locations/global/wasmPlugins/myenvoyfilter-resource ...
- 次に、Media CDN EdgeCacheService の構成をエクスポートする必要があります。
gcloud edge-cache services export media-cdn --destination=my-service.yaml
- 次に、my-service.yaml ファイルを開き、指定されたルートの routeAction に wasmAction を追加します。これは、先ほど作成した WasmPlugin リソースを参照します。
wasmAction: "my-wasm-action-resource"
- 編集後の my-service.yaml ファイルは次のようになります。
...
pathMatchers:
- name: routes
routeRules:
- headerAction: {}
matchRules:
- prefixMatch: /
origin: projects/<PROJECT_NUM>/locations/global/edgeCacheOrigins/cloud-storage-origin
priority: '1'
routeAction:
cdnPolicy:
cacheKeyPolicy: {}
cacheMode: FORCE_CACHE_ALL
defaultTtl: 3600s
signedRequestMode: DISABLED
wasmAction: "my-wasm-action-resource"
...
- 次に、更新された構成と Proxy-Wasm 構成を
my-service-with-wasm.yamlファイルに保存します。
- 最後に、本番環境の Media CDN 環境の更新された構成をインポートします。
$ gcloud alpha edge-cache services import media-cdn --source=my-service-with-wasm.yaml
9. Media CDN で Service Extensions Proxy-Wasm プラグインを検証する
コンテンツをキャッシュに保存するようにサービスが正しく構成されていることをテストするには、curl コマンドライン ツールを使用してリクエストを発行し、レスポンスを確認します。
curl -svo /dev/null "http://IP_ADDRESS/file.txt"
このコマンドを実行すると、次のような出力が生成されます。
< HTTP/2 403 Forbidden ... Access forbidden. ...
次に、Authorization ヘッダーとその値 secret を使用してリクエストを再度発行します。
curl -svo /dev/null "http://IP_ADDRESS/file.txt" -H "Authorization: secret"
このコマンドを実行すると、次のような出力が生成されます。
< HTTP/2 200 OK ... media-cdn-service-extensions-test ...
10. 省略可: Proxy-Wasm プラグインの管理
Proxy-Wasm プラグインを更新する
Proxy-Wasm プラグインを改善したり、新しい機能を追加したりする場合は、更新したプラグインを Media CDN にデプロイする必要があります。以下に、プラグインの更新バージョンをデプロイする手順を示します。
たとえば、次のようにコードを変更して、認証用の別の値に対して Authorization ヘッダーを評価するようにサンプル プラグイン コードを更新できます。
まず、src/lib.rs ソースファイルを次のコードで更新します。
use log::{info, warn};
use proxy_wasm::traits::*;
use proxy_wasm::types::*;
...
struct DemoPlugin;
impl HttpContext for DemoPlugin {
fn on_http_request_headers(&mut self, _: usize, _: bool) -> Action {
if self.get_http_request_header("Authorization") == Some(String::from("another_secret")) {
info!("Access granted.");
Action::Continue
} else {
warn!("Access forbidden.");
self.send_http_response(403, vec![], Some(b"Access forbidden.\n"));
Action::Pause
}
}
}
impl Context for DemoPlugin {}
次に、更新されたプラグインをビルド、パッケージ化、公開します。
cargo build --release --target wasm32-wasi docker build --no-cache --platform wasm -t my-wasm-plugin . docker tag my-wasm-plugin $LOCATION-docker.pkg.dev/$PROJECT_NUM/$REPOSITORY/my-wasm-plugin:prod docker push $LOCATION-docker.pkg.dev/$PROJECT_NUM/$REPOSITORY>/my-wasm-plugin:prod
Artifact Registry でコンテナ イメージが更新されたら、新しい WasmPluginVersion を作成し、WasmPlugin の –main-version を更新して新しいバージョンを参照する必要があります。
gcloud alpha service-extensions wasm-plugin-versions create my-version-2 \
--wasm-plugin=my-wasm-plugin-resource \
--image="$LOCATION-docker.pkg.dev/$PROJECT_NUM/$REPOSITORY>/my-wasm-plugin:prod"
gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource \
--main-version=my-version-2
これで、Artifact Registry からインポートするコンテナ イメージのバージョンが正常に更新され、Media CDN デプロイにライブ push されました。
以前のバージョンにロールバックする
プラグインの以前のバージョンにロールバックするには、Wasm プラグイン リソースを更新して以前のバージョンを参照します。
まず、利用可能なバージョンを一覧表示します。
gcloud alpha service-extensions wasm-plugin-versions list --wasm-plugin=my-wasm-plugin-resource
次のような出力が表示されます。
NAME WASM_IMAGE WASM_IMAGE_DIGEST CONFIG_SIZE CONFIG_IMAGE CONFIG_IMAGE_DIGEST UPDATE_TIME c7cfa2 <LOCATION>-docker.pkg.dev/.../my-wasm-plugin@sha256:6d663... ... ... a2a8ce <LOCATION>-docker.pkg.dev/.../my-wasm-plugin@sha256:08c12... ... ...
次に、Wasm プラグイン リソースを更新して、以前のバージョン「a2a8ce」を参照します。
$ gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource \
--main-version="a2a8ce"
オペレーションが成功すると、次の出力が表示されます。
✓ WASM Plugin [my-wasm-plugin-resource] is now serving version "a2a8ce"
Media CDN は、新しい Wasm プラグイン リソースが作成されるたびに Docker イメージのイメージ ダイジェストを保存するため、ロールバックでは、最後のロールアウトの前に実行されていたコードのバージョンが使用されます。
gcloud alpha service-extensions wasm-plugins describe my-wasm-plugin-resource \ --expand-config
バージョン「a2a8ce」の場合、ダイジェスト sha256:08c12... のバージョンは次のようになります。
name: "my-wasm-plugin-resource" mainVersion: "a2a8ce" mainVersionDetails: image: "<LOCATION>-docker.pkg.dev/<PROJECT>/<REPOSITORY>/my-wasm-plugin" imageDigest: "<LOCATION>-docker.pkg.dev/<PROJECT>/<REPOSITORY>/my-wasm-plugin@sha256:08c121dd7fd1e4d3a116a28300e9fc1fa41b2e9775620ebf3d96cb7119bd9976"
WasmAction と WasmPlugin の削除
WasmAction、WasmPlugin、関連する WasmPluginVersion を削除する手順は次のとおりです。
まず、Media CDN EdgeCacheService 構成で WasmAction への参照を削除します。
削除する基準線:
wasmAction: "my-wasm-action-resource"
次に、編集した EdgeCacheService 構成を更新します。
gcloud alpha edge-cache services import prod-media-service --source=my-service.yaml
次に、WasmPlugin の main-version を空の文字列 "" に更新します。
gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource --main-version=
""
最後に、以下の削除手順を順番に実行します。
gcloud alpha service-extensions wasm-actions delete my-wasm-action-resource gcloud alpha service-extensions wasm-plugin-versions delete my-version \ --wasm-plugin=my-wasm-plugin-resource gcloud alpha service-extensions wasm-plugins delete my-wasm-plugin-resource
11. ラボ環境をクリーンアップする
CodeLab を完了したら、ラボのリソースを忘れずにクリーンアップしてください。クリーンアップしないと、リソースが実行され続け、費用が発生します。
次のコマンドは、Media CDN EdgeCache Service、EdgeCache Config、Service Extensions Plugin を削除します。以下の削除手順を順番に実行します。
gcloud edge-cache services delete media-cdn gcloud edge-cache origins delete cloud-storage-origin gcloud alpha service-extensions wasm-actions delete my-wasm-action-resource gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource --main-version="" gcloud alpha service-extensions wasm-plugin-versions delete my-version-1 --wasm-plugin=my-wasm-plugin-resource gcloud alpha service-extensions wasm-plugins delete my-wasm-plugin-resource gcloud artifacts repositories delete service-extension-$PROJECT_ID --location=$LOCATION
上記の各コマンドでは、リソースの削除を確認するメッセージが表示されます。
12. 完了
お疲れさまでした。これで、Media CDN の Service Extensions の Codelab は終了です。
学習した内容
- 送信元として設定された Cloud Storage バケットを使用して Media CDN を設定する方法
- カスタム HTTP 認証を使用して Service Extensions プラグインを作成し、Media CDN に関連付ける方法
- Service Extension プラグインが想定どおりに動作していることを確認する方法
- (省略可)特定のプラグイン バージョンの更新、参照、ロールバック、削除など、Service Extension プラグインの管理方法
次のステップ
以下の Codelab をご覧ください。