弹性网卡ENI(Elastic Network Interface)是一种可以绑定到专有网络VPC类型ECS实例上的虚拟网卡。通过弹性网卡,您可以实现高可用集群搭建、低成本故障转移和精细化的网络管理。本文主要介绍如何使用Serverless Spark通过ENI访问VPC中的资源。

创建服务账号

通过访问控制(RAM)创建权限策略和服务角色。
  1. 创建权限策略
    详细操作步骤请参见创建自定义策略。在策略名称中输入AliyunOpenAnalyticsAccessingECSRolePolicy ,配置模式选择脚本配置,策略内容为:
    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:CreateNetworkInterfacePermission",
                    "ecs:DeleteNetworkInterfacePermission",
                    "ecs:CreateNetworkInterface",
                    "ecs:DescribeNetworkInterfaces",
                    "ecs:DescribeSecurityGroups"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "vpc:DescribeVSwitches",
                    "vpc:DescribeVpcs"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
    输入完成后单击确定tp
  2. 创建服务角色

    详细操作步骤请参见创建可信实体为阿里云服务的RAM角色

    说明
    • 可信实体类型选择阿里云服务
    • 角色名称必须为 AliyunOpenAnalyticsAccessingECSRole,授信服务选择数据湖分析
    • 角色服务类型选择普通服务角色
  3. 给RAM角色添加权限

    详细操作步骤请参见为RAM角色授权

创建ENI交换机和安全组

  1. 创建ENI需要的交换机

    详细操作步骤 请参见创建交换机

  2. 创建ENI需要的安全组

    详细操作步骤 请参见创建安全组

提交作业

在Serverless Spark中编写Spark-Submit的脚本,详细操作步骤请参见创建和执行Spark作业tp
说明
  1. spark.dla.eni.enable这个参数为ture表示启用ENI打通VPC功能。
  2. ENI会创建在spark.dla.eni.vswitch.id这个参数所指定的交换机之下,该Spark作业就能访问这个交换机所在的VPC,同时ENI也会属于spark.dla.eni.security.group.id所指定的安全组,这个安全组能够添加规则限制该Spark作业访问你的资源。如何添加规则请参见添加安全组规则