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

Function Compute:ネットワークの設定

最終更新日:Sep 04, 2024

Function Computeでは、デフォルトでインターネット経由で関数を呼び出すことができます。 関数が仮想プライベートクラウド (VPC) リソースにアクセスしたり、指定されたVPC経由で関数を呼び出したりする場合は、関数が存在するサービスのネットワークを設定する必要があります。 ネットワーク設定はサービスに固有です。 つまり、サービスのネットワーク設定は、サービス内のすべての機能に対して有効になります。 このトピックでは、Function Computeコンソールでサービスのネットワークを設定する方法について説明します。

使用上の注意

  • VPCリソースをサービスにバインドする前に、サービスに関連付けられているロールに次のポリシーがアタッチされていることを確認します。vpc:DescribeVSwitchAttributesおよびvpc:DescribeVpcAttribute

  • Container Registry Enterprise Editionインスタンスのコンテナーイメージを使用して作成されるカスタムコンテナー関数の場合、VPCとvSwitchを選択する必要があります。 関数が存在するサービスのVPC内のリソースへのアクセスを設定する場合は、次のルールに従う必要があります。

    • Container Registry Enterprise Editionインスタンスのアクセス制御ページの [Visit IP] 列のVPCの横にデフォルト解決識別子が表示されている場合、デフォルト解決済みIPアドレスを使用するVPCとvSwitchを設定する必要があります。db-serviceconf-default

    • デフォルト解決識別子が表示されない場合、インスタンスにバインドされているランダムなVPCとvSwitchを設定できます。db-serviceconf-nodefault

ネットワークアクセス機能

VPCは、Function Computeの関数のコールドスタートに影響を与える可能性があります。 必ずしも必須でない限り、関数呼び出し用にVPCを設定しないことをお勧めします。 Resource Access Management (RAM) ユーザーにTablestoreなどのリソースへのアクセスを許可できます。 詳細については、「Tablestoreとは何ですか?」をご参照ください。

ネットワークアドレスから関数にアクセスしたり、関数を使用してリソースにアクセスしたりすると、トラフィックが生成されます。 次のタイプのトラフィックが生成されます。

  • インターネットトラフィック: Alibaba Cloud公式Webサイト、Taobao Webサイト、Alibaba Cloudサービスのパブリックエンドポイントなどのインターネットアドレスにアクセスするためのトラフィック。

  • VPCトラフィック: ApsaraDB RDSアドレス、Apsara File Storage NAS (NAS) アドレス、Elastic Compute Service (ECS) インスタンスのVPCエンドポイントなど、VPCのアドレスにアクセスするときに生成されるトラフィック。

ビジネス要件に基づいてネットワークを構成し、次の機能のネットワークアクセス機能を取得できます。

  • 関数アウトバウンドトラフィック: 関数がインターネットまたはVPC内のリソースにアクセスするためのトラフィック。 設定項目には、VPCへのアクセスインターネットへのアクセスが含まれます。

    表1 -関数の送信トラフィック

    ネットワーク設定

    説明

    インターネットへのアクセスのみを許可します。

    関数はインターネットと内部ネットワークにアクセスできますが、VPCのリソースにはアクセスできません。 次のパラメーターを設定します。

    • [VPCへのアクセス] パラメーターを [いいえ] に設定します。

    • [インターネットへのアクセス] パラメーターを [はい] に設定します。

    VPCへのアクセスのみを許可します。

    関数は、VPCを使用してパブリックおよび内部ネットワークリソースにアクセスできます。 この設定は、PrivateZone、NAT Gateway、機能へのVPCバインディングなどのシナリオに適用されます。 次のパラメーターを設定します。

    • [VPCへのアクセス] パラメーターを [はい] に設定し、関数がアクセスできるVPCを指定します。

    • Access to InternetパラメーターをNoに設定します。

    関数がインターネットとVPCの両方にアクセスできるようにします。

    関数は、関数ロジックを使用してパブリックネットワークリソースにアクセスし、VPCを使用して内部ネットワークリソースにアクセスできます。 次のパラメーターを設定します。

    • [VPCへのアクセス] パラメーターを [はい] に設定し、関数がアクセスできるVPCを指定します。

    • [インターネットへのアクセス] パラメーターを [はい] に設定します。

    関数がインターネットまたはVPCにアクセスすることを許可しないでください。

    関数は、関数ロジックを使用して内部ネットワークリソースにのみアクセスできます。 次のパラメーターを設定します。

    • [VPCへのアクセス] パラメーターを [いいえ] に設定します。

    • Access to InternetパラメーターをNoに設定します。

  • 関数インバウンドトラフィック: インターネットまたはVPCから関数を呼び出す要求のトラフィック。 設定項目は [指定されたVPCによる関数呼び出しのみ] です。

    表2 -関数インバウンドトラフィック

    ネットワーク設定

    説明

    インターネットとVPCを介して機能に同時にアクセスできるようにします。

    関数を作成した後、インターネットまたはVPC経由で関数を呼び出すことができます。 デフォルトのパラメータ设定:

    • [指定されたVPCによる関数呼び出しのみ] パラメーターを [いいえ] に設定します。

    VPC経由でのみ機能にアクセスできるようにします。

    関数は指定したVPCで呼び出すことはできますが、インターネットでは呼び出すことはできません。 次のパラメーターを設定します。

    • [指定されたVPCによる関数呼び出しのみ] パラメーターを [はい] に設定し、関数を呼び出すことができるVPCを指定します。

Zones

Function Computeで使用可能なゾーン

リージョン

リージョン ID

ゾーン

中国 (杭州)

cn-hangzhou

  • cn-hangzhou-h

  • cn-hangzhou-i

  • cn-hangzhou-j

  • cn-hangzhou-k

  • cn-hangzhou-f

  • cn-hangzhou-g

中国 (上海)

cn-shanghai

  • cn-shanghai-m

  • cn-shanghai-l

  • cn-shanghai-n

  • cn-shanghai-b

  • cn-shanghai-e

  • cn-shanghai-g

  • cn-shanghai-f

中国 (青島)

cn-qingdao

cn-qingdao-c

中国 (北京)

cn-beijing

  • cn-beijing-i

  • cn-北京-h

  • cn-北京-k

  • cn-北京-j

  • cn-北京-l

  • cn-beijing

  • cn-beijing-e

  • cn-北京-g

  • cn-北京-f

中国 (張家口)

cn-zhangjiakou

  • cn-zhangjiakou-b

  • cn-zhangjiakou-c

  • cn-zhangjiakou-a

中国 (フフホト)

cn-huhehaote

  • cn-huhehaote

  • cn-huhehaote

中国 (深セン)

cn-shenzhen

  • cn-shenzhen-e

  • cn-shenzhen-d

  • cn-shenzhen-f

中国 (成都)

cn-chengdu

  • cn-chengdu-a

  • cn-chengdu-b

中国 (香港)

cn-hongkong

  • cn-hongkong-d

  • cn-hongkong-c

  • cn-香港-b

シンガポール

ap-southeast-1

  • ap-southeast-1a

  • ap-southeast-1c

  • ap-southeast-1b

オーストラリア (シドニー)

ap-southeast-2

  • ap-southeast-2a

  • ap-southeast-2b

マレーシア (クアラルンプール)

ap-southeast-3

ap-southeast-3a

インドネシア (ジャカルタ)

ap-southeast-5

  • ap-southeast-5a

  • ap-southeast-5b

日本 (東京)

ap-northeast-1

  • ap-northeast-1c

  • ap-northeast-1b

  • ap-northeast-1a

イギリス (ロンドン)

eu-west-1

eu-west-1a

ドイツ (フランクフルト)

eu-central-1

  • eu-central-a

  • eu-central-1a

  • eu-central-1b

米国 (シリコンバレー)

us-west-1

  • us-west-1a

  • us-west-1b

米国 (バージニア)

us-east-1

  • us-east-1b

  • us-east-1a

インド (ムンバイ) 閉店

ap-south-1

  • ap-south-1a

  • ap-south-1b

各リージョンの最新ゾーンの詳細については、でGetAccountSettings操作を呼び出すことができます。 OpenAPI Explorerを使用します。

リソースが利用できないゾーンにデプロイされている場合は、VPCの利用可能なゾーンにvSwitchを作成し、Function ComputeサービスのVPC設定でvSwitch IDを指定します。同じVPC内の のvSwitchは、プライベートネットワークを介して相互に通信できます。 したがって、Function ComputeはvSwitchを使用して、他のゾーンにデプロイされているVPCリソースにアクセスできます。 詳細については、「「vSwitch is in unsupported zone」エラーを解決するにはどうすればよいですか?」をご参照ください。

前提条件

  • サービスが作成されていること。 詳しくは、「サービスの作成」をご参照ください。

  • (オプション) ネットワークリソースが作成されます。 リソースを作成しない場合は、サービスを構成するときに [自動構成] を選択します。 それ以外の場合は、次のトピックの説明に従ってリソースを作成する必要があります。

ネットワーク設定と役割

Function Computeは、VPCと権限に固有のサービスレベルの設定を提供します。 サービスのVPCアクセスを設定すると、サービス内のすべての関数がVPCにアクセスできます。

  1. Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで目的のサービスを見つけ、[操作] 列の [設定] をクリックします。

  3. [サービスの変更] ページの [ロールの設定] セクションで、[サービスロール] ドロップダウンリストからロールを選択して、Function ComputeにVPCへのアクセス権限を付与します。 使用状況メモセクションのポリシーがロールにアタッチされていることを確認します。

    最小権限の原則に基づいて、ロールに権限を付与することを推奨します。 詳細な権限制御の詳細については、「ポリシーとサンプルポリシー」をご参照ください。

  4. ネットワーク設定セクションで、次のパラメータを変更します。

    • VPCへのアクセス: 関数がVPC内のリソースにアクセスできるようにするかどうかを指定します。 有効な値:

      • はい: 関数はVPC内のリソースにアクセスできます。 [はい] を選択した場合は、[設定モード] パラメーターも設定する必要があります。 有効な値:

        • (推奨) 自動設定: Function Computeは、VPC、vSwitch、セキュリティグループなどのリソースを自動的に作成します。 VPCに複数のvSwitchを作成できます。 ネットワーク設定が完了したら、要件に基づいて設定を変更できます。

          説明

          Function Computeによって自動的に作成されるネットワークリソースの名前は、fc.auto.createで始まります。

        • カスタム設定: VPC、vSwitch、セキュリティグループなどの既存のリソースを手動で選択する必要があります。 リソースが事前に作成されていることを確認してください。 vpc_config_new_console

          • VPC: ドロップダウンリストからVPC IDを選択します。

          • vSwitch: ドロップダウンリストからvSwitch IDを1つ以上選択します。

            このパラメーターは、Function Computeがアクセスできるサブネットを定義します。 2つ以上のvSwitch IDを指定することを推奨します。 ゾーンに障害が発生したり、IPアドレスが不足している場合、関数は別のサブネットで実行できます。

          • セキュリティグループ: ドロップダウンリストからセキュリティグループIDを選択します。

            このパラメーターは、Function Computeが関連付けられているセキュリティグループを指定します。 このセキュリティグループは、VPC内のFunction Computeのインバウンドルールとアウトバウンドルールを定義します。 VPCに関連付けられているセキュリティグループで、Function Computeが関連付けられているセキュリティグループからのアクセスを許可するルールを設定します。 それ以外の場合、Function ComputeはVPCにデプロイされているリソースにアクセスできません。

      • いいえ: 関数はVPCのリソースにアクセスできません。

    • 静的パブリックIPアドレス: NAT GatewayとElastic IPアドレス (EIP) を使用して静的パブリックIPアドレスを取得するかどうかを指定します。 詳細については、「静的パブリックIPアドレスの割り当て」をご参照ください。

    • インターネットへのアクセス: 関数がインターネットにアクセスできるようにするかどうかを指定します。 有効な値:

      • はい: 関数はインターネットにアクセスできます。

      • No: 関数はインターネットにアクセスできません。

    • 指定されたVPCのみによる関数呼び出し: 指定されたVPCでのみ呼び出し要求を許可するかどうかを指定します。 有効な値:

      • はい: 指定されたVPCでのみ関数を呼び出すことができます。 以下の点にご注意ください。

        • 最大20台のVPCをサービスに関連付けることができます。

        • 指定したVPC上でのみ関数を呼び出すことを許可する場合でも、トリガーを使用して関数を呼び出すことができます。

        • 1つ以上のVPCをサービスに関連付けると、サービスのすべてのバージョンとエイリアスに対してVPC設定が有効になります。

        • 指定されたVPCでのみ関数を呼び出すことを許可すると、インターネットおよび他のVPCからの要求は拒否されます。 インターネットおよび他のVPCからのリクエストの場合、ステータスコード (StatusCode) 403、エラーコード (ErrorCode) AccessDenied、およびエラーメッセージResource access is bound by VPC: VPC IDが返されます。

        • VPCは、内部HTTPアクセスポイントにのみ関連付けることができ、パブリックアクセスポイントおよび内部HTTPSアクセスポイントには関連付けることができません。

      • いいえ: 関数はインターネット経由でのみ呼び出すことができます。 VPC経由で関数を呼び出すことはできません。

  5. 保存をクリックします。

一般的な問題

  • デバッグのためにFunction ComputeをVPCに接続できないのはなぜですか。

    ファンクションがVPCにアクセスできるようにサービスを設定した後、Function ComputeがVPCに接続できない場合は、次の原因を確認してください。

    • vSwitchが関連付けられているサブネットでエラーが発生しているか、IPアドレスが不足している可能性があります。 少なくとも2つのvSwitch IDを指定することを推奨します。 これにより、現在のゾーンでエラーが発生した場合に、関数を別のゾーンで実行できます。

    • セキュリティグループが無効です。 次のルールに基づいてセキュリティグループを設定する必要があります。

      • 指定されたVPCが関連付けられているセキュリティグループでは、Function Computeが関連付けられているセキュリティグループからのアクセスを許可するようにルールが設定されています。

      • セキュリティグループのアウトバウンドトラフィックは、インターネット制御メッセージプロトコル (ICMP) をサポートする必要があります。 Function Computeは、ICMPに基づいてVPCネットワーク接続をチェックします。

      セキュリティグループの設定方法の詳細については、「セキュリティグループルールの追加」をご参照ください。

  • ネットワークリソースを作成するときにリソースが不足している場合はどうすればよいですか。

    VPCリソースを作成する場合、CIDRブロックのプレフィックス長は24で、使用可能なIPアドレスの数は252です。 サービスに多数のインスタンスを作成すると、リソースが不足します。 この場合、vSwitchのCIDRブロックとセキュリティグループを変更する必要があります。

トラブルシューティング

vpcConfigを設定した場合、Function ComputeはVPCへのアクセス許可を検証しません。代わりに、関数の実行時に権限が検証されます。 したがって、vpcConfigが設定されている場合、InvokeFunction操作を使用して関数を呼び出すと、新しいエラーが発生する可能性があります。 次の表に、Function ComputeのサービスがVPCにアクセスするときに頻繁に発生するエラーを示します。 これは、エラーのトラブルシューティングに役立ちます。

エラーコード

ステータスコード

原因

解決策

InvalidArgument

400

Function Computeは、指定されたvSwitchがデプロイされているゾーンをサポートしていません。

別のvSwitch IDを指定します。 詳細は、「ゾーン」をご参照ください。

vpcConfigで定義されているvpcIdvSwitchIds、またはsecurityGroupIdパラメーターで指定されたリソースが見つかりません。

vpcConfigの設定が有効かどうかを確認します。

指定されたvSwitchまたはセキュリティグループはVPCにありません。

VPC設定が有効かどうかを確認します。 vSwitchIdパラメーターとsecurityGroupIdパラメーターで指定されたリソースが、vpcIdパラメーターで指定されたVPCにデプロイされていることを確認します。

AccessDenied

403

Function Computeのサービスにelastic network Interface (ENI) の操作権限を付与していません。

ENIの権限を確認します。 詳細については、「他のAlibaba Cloudサービスへのアクセス権限付与」をご参照ください。

ResourceExhausted

429

vSwitchのCIDRブロックで使用可能なIPアドレスが不足しています。 Function Computeはこれ以上ENIを作成できません。

より大きなCIDRブロックを持つvSwitchを作成し、vpcConfigvSwitchIdパラメーターを更新します。

説明

/24または /16 CIDRブロックを使用することを推奨します。

関連ドキュメント

  • サービスの関数がサービスのVPCにあるデータベースにアクセスする場合は、サービス用に設定したvSwitchのCIDRブロックをホワイトリストに追加することを推奨します。 詳細については、「データベースへのアクセス」をご参照ください。

  • インターネットへの機能アクセスを制限する場合は、静的IPアドレスを使用します。 詳細については、「静的パブリックIPアドレスの割り当て」をご参照ください。