无法使用nodejs aws-sdk与浏览器找到EC2服务



我正在使用browserify的node.js,我的设置AWS:

var AWS = require('aws-sdk');
AWS.config.region = 'us-west-2b';

这很好。当我打印到控制台时,返回对象。

但是,当我这样做时:

var ec2 = new AWS.EC2();
console.log(ec2);

它找不到EC2。我得到undefined is not a function

EC2似乎不存在。所有文档都以这种方式指导我。

尝试此脚本,它对我无问题。

// ec2script.js
var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
AWS.config.update({accessKeyId: 'XXXXXXXXXXXXXXXXXXXX', secretAccessKey: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'});
var ec2 = new AWS.EC2();
console.log('EC2');
console.log(ec2);

只用

执行
>node ec2script.js

这是我得到的响应。

EC2
{ config:
   { credentials:
      { expired: false,
        expireTime: null,
        accessKeyId: 'XXXXXXXXXXXXXXXXXXXX',
        sessionToken: undefined },
     credentialProvider: { providers: [Object] },
     region: 'us-east-1',
     logger: null,
     apiVersions: {},
     apiVersion: null,
     endpoint: 'ec2.us-east-1.amazonaws.com',
     httpOptions: { timeout: 120000 },
     maxRetries: undefined,
     maxRedirects: 10,
     paramValidation: true,
     sslEnabled: true,
     s3ForcePathStyle: false,
     s3BucketEndpoint: false,
     computeChecksums: true,
     convertResponseTypes: true,
     dynamoDbCrc32: true,
     systemClockOffset: 0,
     signatureVersion: 'v4' },
  isGlobalEndpoint: false,
  endpoint:
   { protocol: 'https:',
     host: 'ec2.us-east-1.amazonaws.com',
     port: 443,
     hostname: 'ec2.us-east-1.amazonaws.com',
     pathname: '/',
     path: '/',
     href: 'https://ec2.us-east-1.amazonaws.com/' } }

如果这不起作用,请检查您是否正在使用正确的访问密钥和秘密键。如果密钥正确,并且您仍在遇到问题检查以确保密钥的正确策略。

希望这会有所帮助。

相关内容

最新更新