Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 验证并运行EC2实例:AWS_Amazon Web Services_Amazon Ec2 - Fatal编程技术网

Amazon web services 验证并运行EC2实例:AWS

Amazon web services 验证并运行EC2实例:AWS,amazon-web-services,amazon-ec2,Amazon Web Services,Amazon Ec2,我正在尝试创建一个EC2实例,然后将其添加到我的自动缩放组中。我在尝试验证时遇到很多问题。我正在寻找一种简单的方法来验证一个请求,使用我的访问密钥来简单地启动一个实例。到目前为止,我所尝试的: //Authenticate AWS: var myCredentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId:'us-west-2:IdentityPoolID' }); var myConfig = new AWS.Con

我正在尝试创建一个EC2实例,然后将其添加到我的自动缩放组中。我在尝试验证时遇到很多问题。我正在寻找一种简单的方法来验证一个请求,使用我的访问密钥来简单地启动一个实例。到目前为止,我所尝试的:

//Authenticate AWS:
var myCredentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId:'us-west-2:IdentityPoolID'
}); 

var myConfig = new AWS.Config({
  credentials: myCredentials, region: 'us-west-2'
});

AWS.config = myConfig

var minInst = 1;
var maxInst = 3;

var ec2 = new AWS.EC2();
//Set up parameters for EC2 Instances:
var params = {
  ImageId: 'ami-6e1a0117',
  MaxCount: minInst,
  MinCount: maxInst, 
  InstanceInitiatedShutdownBehavior: 'terminate',
  InstanceType: 't2.micro',
  Monitoring: {
    Enabled: false
  },
  NetworkInterfaces: [{
    AssociatePublicIpAddress: true,
    DeleteOnTermination: true,
  }],
  Placement: {
    AvailabilityZone: 'us-west-2',
  },
  SecurityGroupIds: [
    'sg-b0307ccd',
  ],
  SecurityGroups: [
    'CAB432Assignment2SG',
  ],

};
ec2.runInstances(params, function(err, data) {
  if (err){
    console.log(err, err.stack); //An error occurred
  }
  else{
    console.log(data); //Successful Response
  }
});
我知道这个密码是错的。我只是不知道如何修复它。我得到的错误是:

CredentialsError:配置中缺少凭据


如有任何帮助,将不胜感激。

完全删除此部分代码:

//Authenticate AWS:
var myCredentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId:'us-west-2:IdentityPoolID'
}); 

var myConfig = new AWS.Config({
  credentials: myCredentials, region: 'us-west-2'
});

AWS.config = myConfig
更改此项:

var ec2 = new AWS.EC2();
为此:

var ec2 = new AWS.EC2({region: 'us-west-2'});
然后阅读文档中的这一页。特别是,您需要执行以下操作之一:

  • 如果在EC2上运行,请将IAM角色添加到EC2实例
  • 如果Lambda函数正在运行,请将IAM执行角色添加到Lambda函数中
  • 使用密钥创建
    ~/.aws/credentials
    文件。如果已安装,可以使用aws configure命令执行此操作
  • 将键设置为环境变量

您是以某种方式使用Cognito帐户登录的?当我只进行配置时,不会出现任何错误。仅在调用runinstances时获取错误。我正在寻找使用我的访问密钥进行身份验证的方法什么访问密钥?我没有看到你在任何地方使用密码。您是否使用Cognito登录,然后以某种方式获得访问密钥?这听起来像是你有一个标准的IAM访问密钥和秘密密钥,而你试图包含这个Cognito的东西是走错了路。是的,就是这样。我只有标准的IAM访问权限和密钥。这是最接近常规身份验证的一次。我正在使用共享凭据文件。我现在得到的是rrror
AuthFailure:凭证必须正好有5个斜杠分隔的元素,例如keyid/date/region/service/term,got'access
打开凭证文件并验证其中的值。它只需要调用
credentials
,并且访问密钥和私钥不需要位于“”?我建议安装AWS CLI工具并运行
AWS configure
命令以正确格式创建文件。
us-west-2
是一个区域,而不是可用区域。可用区域看起来像
us-west-2a
us-west-2b
等。