文档首页 > > 开发指南> 典型场景> 配置访问公网的弹性云服务器的VPC

配置访问公网的弹性云服务器的VPC

分享
更新时间: 2019/10/30 GMT+08:00

场景描述

当弹性云服务器需要访问公网并且使用共享带宽时,在配置无需访问公网的弹性云服务器的VPC的基础上,用户需要先创建共享带宽;然后创建弹性公网IP,在创建EIP时,将带宽ID作为参数输入;最后将EIP与ECS实例绑定,即可访问公网。

通过IAM服务获取到的Token有效期为24小时,需要使用同一个Token鉴权时,可以先将Token缓存,避免频繁调用。

涉及API

使用Token认证方式完成认证鉴权时,需要获取Token并在调用接口时增加“X-Auth-Token”到业务接口请求消息头中。

  • IAM获取token的API
  • VPC创建共享带宽的API
  • VPC创建EIP的API
  • VPC更新EIP的API

参数说明及响应详细信息参考《虚拟私有云API参考》相应章节。

具体步骤

  1. Token认证,具体操作请参考Token认证
  2. 发送“POST https://VPC的Endpoint/v2.0/{project_id}/bandwidths”申请创建共享带宽。其中project_id为项目ID。
  3. 在Request Header中增加“X-Auth-Token”。
  4. 在Request Body中传入参数,样例如下:
    POST https://{Endpoint}/v2.0/{project_id}/bandwidths
    
    {
        "bandwidth": {
            "name": "bandwidth123",
            "size": 10,
            "enterprise_project_id":"b261ac1f-2489-4bc7-b31b-c33c3346a439"
        }
    }
  5. 请求响应成功后,响应参数如下:
    {
      "bandwidth": {
        "id": "1bffc5f2-ff19-45a6-96d2-dfdca49cc387",
        "name": "bandwidth123",
        "size": 10,
        "share_type": "WHOLE",
        "publicip_info": [],
        "tenant_id": "26ae5181a416420998eb2093aaed84d9",
        "bandwidth_type": "share",
        "charge_mode": "bandwidth",
        "enterprise_project_id": "0",
        "status": "NORMAL"
      }
    }
  6. 创建共享带宽成功后,发送“POST https://VPC的Endpoint/v1/{project_id}/publicips”创建弹性公网IP。其中,project_id为项目ID。
  7. 在Request Header中增加“X-Auth-Token”。
  8. 在Request Body中传入参数,指定5中的共享带宽id,样例如下:
    POST https://{Endpoint}/v1/{project_id}/publicips
    
    {
        "publicip": {
            "type": "5_bgp",
            "ip_version": 4
        },
        "bandwidth": {
            "name": "bandwidth123",
            "size": 10,
            "share_type": "PER"
        },
        "enterprise_project_id":"b261ac1f-2489-4bc7-b31b-c33c3346a439"
    }
  9. 请求响应成功后,响应参数如下:
    {
        "publicip": {
            "id": "f588ccfa-8750-4d7c-bf5d-2ede24414706",
            "status": "PENDING_CREATE",
            "type": "5_bgp",
            "public_ip_address": "161.xx.xx.7",
            "tenant_id": "8b7e35ad379141fc9df3e178bd64f55c",
            "ip_version": 4,
            "create_time": "2015-07-16 04:10:52",
            "bandwidth_size": 0,
            "enterprise_project_id":"b261ac1f-2489-4bc7-b31b-c33c3346a439"
        }
    }
  10. 创建EIP成功后,发送“PUT https://VPC的Endpoint/v1/{project_id}/publicips/{publicip_id}”绑定实例。其中,project_id为项目ID,publicip_id为EIP ID。
  11. 在Request Header中增加“X-Auth-Token”。
  12. 在Request Body中传入参数,样例如下:
    • 请求样例1(EIP绑定一张网卡)
      PUT https://{Endpoint}/v1/{project_id}/publicips/{publicip_id}
      
      {
          "publicip": {
              "port_id": "f588ccfa-8750-4d7c-bf5d-2ede24414706"
          }
      }
    • 请求样例2(转换为IPv6 EIP)
      PUT https://{Endpoint}/v1/{project_id}/publicips/{publicip_id}
      
      {
          "publicip": {
              "ip_version ": 6 
          }
      }
  13. 请求响应成功后,响应样例如下,绑定成功即可访问公网。
    • 响应样例1(EIP绑定一张网卡)
      {
        "publicip": {
          "id": "f6318bef-6508-4ea5-a48f-6152b6b1a8fb",
          "status": "ACTIVE",
          "type": "5_bgp",
          "port_id": "a135e9b8-1630-40d2-a6c5-eb534a61efbe",
          "public_ip_address": "10.xx.xx.162",
          "private_ip_address": "192.168.1.131",
          "tenant_id": "26ae5181a416420998eb2093aaed84d9",
          "create_time": "2019-03-27 01:33:18",
          "bandwidth_size": 7,
          "ip_version": 4
        }
      }
    • 响应样例2(转换为IPv6 EIP)
      {
        "publicip": {
          "id": "f6318bef-6508-4ea5-a48f-6152b6b1a8fb",
          "status": "DOWN",
          "type": "5_bgp",
          "public_ip_address": "10.xx.xx.162",
          "public_ipv6_address": "cdcd:xx:xx:xx::a9a:4aa2",
          "tenant_id": "26ae5181a416420998eb2093aaed84d9",
          "create_time": "2019-03-27 01:33:18",
          "bandwidth_size": 7,
          "ip_version": 6
        }
      }
  14. 请求异常返回值说明请参考错误码
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问