python fabric3在远程ec2实例上执行boto3功能

时间:2018-09-14 09:20:05

标签: python-3.x amazon-ec2 amazon-rds boto3 fabric

我正在尝试通过python fabric3脚本从本地计算机执行boto3功能。

在本地计算机上配置:

  1. 已安装python3.5 fabric3
  2. 脚本,使用fabric3创建aws rds快照。
  3. 位于ssh-add ~/.ssh/ec2.pem的ssh身份验证存储区

在AWS EC2实例上的配置:

  1. 创建〜/ .aws / config和〜/ .aws / credentials,并存储所需的配置,例如:

      a. region=, output in ~/.aws/config aws_access_key_id=,    
      b. aws_secret_access_key in ~/.aws/credentials
    
  2. rds仅对ec2实例开放。

观察

  1. 从本地计算机执行结构脚本时,它要求botocore.exceptions.NoRegionError: You must specify a region.

  2. 如果我在boto3.client(region_name ='')中提供区域名称 它会要求 botocore.exceptions.NoCredentialsError: Unable to locate credentials

表示python fabric无法拾取〜/ .aws / config和〜/ .aws / credentials文件。

1。 python fabric是否从〜/ .aws获取凭证和配置?因为我不想通过结构脚本提供凭据

2。在aws-ec2上实现基于结构的部署的标准方法是什么

1 个答案:

答案 0 :(得分:0)

为了在创建boto3.client()时节省时间,我通过了必需的BigDecimal number1 = new BigDecimal("17"); int percentage = 50; BigDecimal percentageAmount = number1.multiply(new BigDecimal(percentage/100)); aws_access_key_id,但问题仍然是为什么boto3客户端不选择.aws / config和.aws / cred通过Python Fabric脚本触发的文件。