我正在尝试运行此脚本:
from __future__ import print_function
import paramiko
import boto3
#print('Loading function')
paramiko.util.log_to_file("/tmp/Dawny.log")
# List of EC2 variables
region = 'us-east-1'
image = 'ami-<>'
keyname = '<>.pem'
ec2 = boto3.resource('ec2')
instances = ec2.create_instances(
ImageId=image, MinCount=1, MaxCount=1,
InstanceType = 't2.micro', KeyName=keyname)
instance = instances[0]
instance.wait_until_running()
instance.load()
print(instance.public_dns_name)
我在已完成所有aws配置的服务器上运行此脚本(在aws configure
中)
而且,当我运行它时,我收到此错误:
botocore.exceptions.ClientError:调用RunInstances操作时发生错误(AuthFailure):未获得图像授权: [ami-&LT;&GT;]
有什么理由?而且,我该如何解决?
[图片是私密的。但是,正如我在服务器上配置boto,从技术上讲,这应该不是问题,对吧?]
答案 0 :(得分:1)
此错误答案很少
参数不足,但create_instance会给出您的其他错误。例如缺少VPC-id,子网ID,安全组。
凭据中的API访问密钥无权启动运行实例。请转到IAM并检查您的用户是否有足够的角色来执行任务。
答案 1 :(得分:0)
如果尝试使用密钥对文件名而不是AWS控制台> EC2>密钥对
中的实际名称,则可能会遇到此错误。aws ec2 run-instances --image-id ami-123457916 --instance-type t3.nano
--key-name **my_ec2_keypair.pem**
应该是KeyPair的名称,而不是KeyPair的文件名。