すべてのプロダクト
Search
ドキュメントセンター

Function Compute:特徴

最終更新日:Aug 29, 2024

Function Computeは、完全マネージド型のイベント駆動型コンピューティングサービスです。 このトピックでは、Function Computeの一般的な使用シナリオと、各シナリオで使用できる機能について説明します。 ビジネス要件に基づいて機能を選択できます。

カテゴリ

機能

説明

参照

サービス管理

サービス管理

サービスは、Function Computeのリソース管理単位です。 関数を作成する前に、サービスを作成する必要があります。 サービスに属する関数は、サービスの権限やログ設定など、サービスの設定を継承します。

サービスの管理

バージョン管理

サービスの1つ以上のバージョンを公開できます。 バージョンは、サービス設定、サービスに属する機能のコードと設定などの情報を含むサービススナップショットに似ています。 バージョンにはトリガー情報が含まれていません。

バージョンの管理

エイリアス管理

サービスバージョンのエイリアスを作成できます。 エイリアスは、サービスの特定のバージョンへのポインタとみなすことができる。 エイリアスを使用して、バージョンの公開、ロールバック、またはカナリアリリースを簡単に実行できます。 エイリアスは、サービスまたはバージョンに依存します。 エイリアスを使用してサービスまたは関数にアクセスすると、function Computeはエイリアスをそのエイリアスが指すバージョンに解析します。 このように、発呼者は、エイリアスが指す特定のバージョンを知る必要がない。

エイリアスの管理

カナリアリリース

カナリアリリースはFunction Computeで実行できます。 カナリアリリース機能を使用すると、新しいバージョンと古いバージョンの両方を同時に利用できるようになります。 すべてのトラフィックを新しいバージョンに転送する前に、新しいバージョンの機能を確認できます。 エイリアスが指すバージョン番号を変更することで、メインバージョンとカナリアリリースバージョンを切り替えることもできます。 これにより、両方のバージョン間でトラフィックをスムーズに切り替えることができます。

バージョンとエイリアスを使用してカナリアリリースを実装

ネットワーク設定

デフォルトでは、作成した関数はインターネット経由でのみ呼び出すことができます。 仮想プライベートクラウド (VPC) を介して関数を呼び出すことはできません。 関数がVPC内のリソースにアクセスする場合、または特定のVPCからのリクエストが関数を呼び出すことを許可する場合は、関数が属するサービスのネットワーク設定とアクセス許可を手動で設定する必要があります。

ネットワークの設定

ロギング

Log Serviceを使用して関数呼び出しログを保存する前に、function ComputeでサービスのLog ServiceプロジェクトとLog Service Logstoreを指定し、サービスにLog serviceへのアクセスを許可する必要があります。 関数呼び出しログは、指定されたLogstoreに保存されます。 同じリージョンのサービスに対して生成されるすべての関数呼び出しログは、同じLogstoreに保存されます。

ロギング機能の設定

ストレージ

Function Computeのサービスに対して、Apsara File Storage NAS (NAS) またはObject Storage Service (OSS) のマウントを設定できます。 その後、サービス内の関数は、ローカルファイルシステムを使用するのと同じ方法で、NASまたはOSSを使用してデータを保存できます。

Tags

Function Computeでは、タグを使用して同じ機能を持つサービスリソースを分類できます。 タグは、リソース検索および集約を容易にする。 タグを使用してサービスをグループ化し、異なるロールに権限を付与して、異なるグループのサービスを管理できます。

タグ管理

関数管理

関数管理

関数は、function Computeがスケジュールして実行する単位です。 関数はサービスにデプロイする必要があります。 サービスでは、サービス認証やログ設定など、いくつかの同一の設定を共有する複数の関数を作成できます。 これらの機能は互いに独立している。

関数の管理

レイヤー管理

レイヤーを使用すると、一般的な依存関係、ランタイム、関数拡張などのカスタムリソースをパブリッシュおよびデプロイできます。 関数が依存するパブリックライブラリをレイヤーに抽出するか、Function Computeの共通レイヤーを使用して、関数のデプロイおよび更新時にコードパッケージのサイズを縮小できます。

環境変数

環境変数を使用して、コードを変更することなく、Function Computeの関数の動作を柔軟に調整できます。

環境変数

カスタムDNS

カスタムDNS機能は、高速化サイトへのアクセスなどのシナリオに適しています。 指定したDNSサーバーを使用してDNS解決を実行できます。

関数のカスタムDNS設定の構成

関数インスタンス管理

インスタンスのライフサイクル

Function Computeは、従来の長時間実行アプリケーションに基づいて開発されたランタイム拡張機能を提供し、アイドルインスタンスによって発生する不要なコストを削減します。 各エクステンションは、イニシャライザフック、PreFreezeフック、PreStopフックを含むフックに対応します。

関数インスタンスのライフサイクル

高い並行性

インスタンスのリソース使用量を削減し、リソースコストを最適化し、コールドスタートを削減するために、Function Computeは各インスタンスの高い同時実行性をサポートしています。 デフォルトでは、インスタンスの同時実行値は1です。 この場合、1つのインスタンスで一度に1つのリクエストしか処理できません。 InstanceConcurrencyパラメーターを1より大きい値に設定した場合、Function Computeは、既存のインスタンスによって同時に処理されるリクエストの数が指定された値を超えた場合にのみ、新しいインスタンスを作成します。

インスタンスの同時実行性の設定

ヘルスチェック

Function Computeは、インスタンス例外によるリクエストの失敗を回避するために、関数インスタンスの定期的なヘルスチェックをサポートしています。

インスタンスのカスタムヘルスチェックポリシーの設定

CLIベースのインスタンス管理

CLIベースのインスタンス管理を使用すると、実際のランタイム環境のインスタンスでコマンドを実行できます。 たとえば、インスタンスに接続して環境の詳細を確認したり、パフォーマンスを最適化するためにプロファイリングやCoredumpなどのツールを使用してコンテキスト情報を収集したりできます。

関数インスタンスを管理するコマンドの実行

関数の呼び出し

同期呼び出し

関数が同期モードで呼び出されると、function Computeは関数を実行し、イベントが関数をトリガーすると応答を待ちます。 関数の呼び出しが完了すると、function Computeは、レスポンス、実行サマリー、ログ出力などの実行結果を直接返します。

同期呼び出し

非同期呼び出し

Function Computeが非同期呼び出し要求を受信すると、システムは、応答が返される前に要求が完了するのを待つのではなく、要求が永続化された後すぐに応答を返します。

非同期呼び出し

非同期タスク

非同期モードで関数を呼び出すと、リクエストは信頼できる方法で処理される前にfunction Computeキューに保持されます。 各フェーズで非同期呼び出しの状態を追跡して保存し、タスク制御機能と監視性を向上させる場合は、タスクモードを有効にして非同期リクエストを処理できます。

概要

従量課金インスタンスのスケーリング

過剰な関数の呼び出しによる予期しないコストを防ぐため、function Computeはリージョン内の各アカウントの従量課金インスタンスの数に制限を適用します。 さらに、Function Computeでは、オンデマンド呼び出しのインスタンス数をより細かく制御できます。

オンデマンドインスタンスの最大数の設定の概要

トリガー管理

トリガー管理

Function Computeは、関数の実行がイベントによって駆動されるコンピューティングモデルを提供します。 指定した関数のトリガーを作成できます。 トリガーにはルールのセットが含まれています。 ルールを満たすイベントが発生すると、イベントソースは関連する関数をトリガーします。

カスタムドメイン名

カスタムドメイン名の管理

カスタムドメイン名をwebアプリケーションにバインドして、ユーザーがドメイン名を使用してwebアプリケーションにアクセスできるようにすることができます。

カスタムドメイン名の設定

WAF

Alibaba Cloud Web Application Firewall (WAF 3.0) は、関数とアプリケーションの悪意のあるトラフィックを識別し、悪意のあるトラフィックをスクラブして除外し、通常のトラフィックをバックエンド関数に返して、悪意のある侵入から関数を保護します。

WAFの有効化

多言語ランタイム

コーディング

Function Computeは、Java、Python、Node.js、PHP、Go、およびをサポートしています。ネットコア。 また、カスタムGoランタイム、カスタムRubyランタイム、カスタムPowerShellランタイムなどのカスタムランタイムを使用して、他の言語のランタイムを構築することもできます。 カスタムイメージをランタイムとして使用することもできます。

Python、Node.js、およびPHPランタイムの場合、開発者ツールまたはSDKを使用してコードをデプロイし、Function Computeコンソールでコードをデバッグできます。

概要

プログラミングモデル拡張

Function Computeは、従来の長時間実行アプリケーションに基づいて開発されたランタイム拡張機能を提供し、アイドル状態のインスタンスによって生成されるコストを削減します。

プログラミングモデル拡張

Serverlessアプリケーションセンター

アプリケーション

サーバーレスアプリケーションセンターでは、シナリオ固有のアプリケーションを作成し、アプリケーションをインポートできます。

Function Computeコンソールの [アプリケーション] ページに、さまざまなシナリオとシナリオ固有のアプリケーションが表示されます。 ビジネス要件に基づいてアプリケーションを選択できます。

アプリケーションの管理

環境

環境機能は、インフラストラクチャ管理機能を提供します。 さまざまな環境でサービスを分離できます。 たとえば、異なるリージョンや異なるVPCのサービスを分離して、本番サービスの高可用性と低レイテンシを実現できます。

アプリケーションの環境の管理

パイプライン

Serverless Application Centerは基本的なパイプライン機能を提供し、プロセスの編集可能で柔軟な実行を可能にし、コードをサーバーレスアプリケーションに公開するのに役立ちます。

モニタリングとアラート

モニタリングメトリクス

Function Computeコンソールで、Function Computeリソースの概要メトリックと、リージョン、サービス、および関数レベルのメトリックを表示できます。

モニタリングメトリクス

インスタンスレベルのメトリック

Function Computeは、vCPU使用率、メモリ使用率、インスタンスのネットワーク状態、インスタンスが同時に処理するリクエスト数などのコアメトリックを表示できるインスタンスレベルのメトリックを提供します。

インスタンスレベルのメトリック

OpenTelemetryのマネージドサービス

Function ComputeはManaged Service for OpenTelemetryと統合されており、関数の呼び出しを追跡でき、サーバーレスアーキテクチャでのパフォーマンスのボトルネックの分析と診断に役立ちます。 これにより、サーバーレスシナリオでの開発と診断の効率が向上します。

開発者ツール

サーバーレスDevs

Serverless Devsを使用すると、サーバーレスサービスとフレームワークをプラグイン可能な方法で使用し、コンポーネントとプラグインを開発できます。 これにより、O&M効率が向上します。 Serverless Devsを使用すると、プロジェクトを効率的かつ簡単に開発、作成、テスト、およびデプロイすることもできます。 Serverless Devsを使用して、プロジェクトのライフサイクル全体を管理できます。

Serverless Devsとは何ですか?

WebIDE

Web統合開発環境 (WebIDE) は、Alibaba Cloud Function Computeが提供するオンラインIDEです。 WebIDEは、Visual Studio Code (VS Code) と同様のクラウドベースの開発エクスペリエンスを提供します。

WebIDEとは何ですか?

アカウント管理

リソースのクォータ

Function Computeを使用すると、リソースの使用制限を設定して、コードの誤りによる予期しないコストを回避できます。

使用制限

権限管理

イベントソースを使用して、Function Computeが他のAlibaba Cloudサービスにアクセスしたり、関数をトリガーしたりするために必要な権限を管理できます。

RAMベースの認証

Resource Access Management (RAM) ユーザーを使用することで、RAMユーザーとAlibaba Cloudアカウントに異なる権限を付与し、Alibaba CloudアカウントのAccessKeyペアの公開によるセキュリティリスクを回避できます。 RAMユーザーに権限を付与すると、指定された権限を持つRAMユーザーのみが、Function Computeコンソールのリソースへのアクセスまたは管理を許可できます。