私网访问

更新时间:
复制 MD 格式

私网连接(PrivateLink)能够实现专有网络 VPC 与阿里云上的服务建立安全稳定的私有连接,简化网络架构,实现私网访问服务,避免通过公网访问服务带来的潜在安全风险。我们已在各地域开通终端节点服务,您可通过终端节点连接,从而通过内网访问您的服务。

首次使用请先开通私网连接(PrivateLink)服务。

创建终端节点

登录私网连接控制台,选择接口终端节点创建终端节点。

基础配置填写所属地域、节点名称,类型选择阿里云服务可用的服务选择com.aliyuncs.privatelink.<region>.fc.e2b

配置专有网络、可用区与交换机、安全组(若无请自行创建相应资源)。

高级配置是否开启自定义服务域名选择开启

确认创建后确认状态,如果自定义服务域名未启用,请手动启用。

用户即可在自己的 VPC 中通过自定义服务域名访问。

启动服务并通过私网访问

配置环境变量,E2B_API_URLE2B_DOMAIN均设置为私网。

export E2B_API_KEY="<your-api-key>"
export E2B_API_URL="https://api.<region>-vpc.e2b.fc.aliyuncs.com"
export E2B_DOMAIN="<region>-vpc.e2b.fc.aliyuncs.com"

以下代码需要在自己 VPC 中运行。

TypeScript 示例:

import { Sandbox } from "e2b";

const sandbox = await Sandbox.create("code-interpreter-v1", {
  apiKey: process.env.E2B_API_KEY,
  apiUrl: process.env.E2B_API_URL,
  domain: process.env.E2B_DOMAIN,
});

try {
  const process = await sandbox.commands.run("python3 -m http.server 8000", {
    background: true,
  });

  const host = sandbox.getHost(8000);
  const url = `https://${host}`;
  console.log(url);

  const response = await fetch(url);
  console.log(await response.text());

  await process.kill();
} finally {
  await sandbox.kill();
}

Python 示例:

import os
import urllib.request
import time

from e2b import Sandbox

sandbox = Sandbox.create(
    template="code-interpreter-v1",
    api_key=os.environ["E2B_API_KEY"],
    api_url=os.environ["E2B_API_URL"],
    domain=os.environ["E2B_DOMAIN"],
)

try:
    process = sandbox.commands.run(
        "python3 -m http.server 8000",
        background=True,
    )
    time.sleep(2)  # Wait for http.server to start
    host = sandbox.get_host(8000)
    url = f"https://{host}"
    print(url)

    with urllib.request.urlopen(url, timeout=10) as response:
        print(response.read().decode())

    process.kill()
finally:
    sandbox.kill()