小编rlu*_*isr的帖子

如何使用AWS-SDK Javascript获得EC2公共IP

我想使用aws-sdk for Javascript获得EC2实例的公共IP。执行以下代码后,返回给出{ Reservations: [] }

'use strict';

const AWS = require('aws-sdk');

AWS.config.loadFromPath('./aws.json');
AWS.config.update({ region: 'ap-northeast-1' });

const ec2 = new AWS.EC2({ apiVersion: '2016-11-15' });

const params = {
  Filters: [
    {
      Name: 'ip-address',
      Values: [
        'ip-address'
      ]
    }
  ],
  InstanceIds: [
    "i-0acf483a5cbdfdbeb"
  ]
};

ec2.describeInstances(params, function (err, data) {
  if (err) {
    console.log(err);
  }

  console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

使用的凭据已在IAM上经过验证,并被允许访问EC2实例。为什么不能获取其公共IP?

节点:7.1.0

作业系统:CentOS 7.3 / Windows 10

amazon-ec2 node.js aws-sdk

5
推荐指数
1
解决办法
1155
查看次数

Gin 如果`request body` 绑定在中间件中,则c.Request.Body 变为0

我的 API 服务器具有从请求标头获取令牌的中间件。如果访问正确,则执行下一个功能。

但是请求去了中间件,然后去了下一个函数,c.Request.Body变成了0

中间件

func getUserIdFromBody(c *gin.Context) (int) {
    var jsonBody User

    length, _ := strconv.Atoi(c.Request.Header.Get("Content-Length"))
    body := make([]byte, length)
    length, _ = c.Request.Body.Read(body)
    json.Unmarshal(body[:length], &jsonBody)

    return jsonBody.Id
}

func CheckToken() (gin.HandlerFunc) {
    return func(c *gin.Context) {
        var userId int

        config := model.NewConfig()

        reqToken := c.Request.Header.Get("token")

        _, resBool := c.GetQuery("user_id")
        if resBool == false {
            userId = getUserIdFromBody(c)
        } else {
            userIdStr := c.Query("user_id")
            userId, _ = strconv.Atoi(userIdStr)
        }
    ...
        if ok {
            c.Nex()
            return …
Run Code Online (Sandbox Code Playgroud)

middleware go go-gin

1
推荐指数
1
解决办法
1896
查看次数

标签 统计

amazon-ec2 ×1

aws-sdk ×1

go ×1

go-gin ×1

middleware ×1

node.js ×1