Как сделать конфигурацию по умолчанию для boto3 - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь создать инструмент для нашей группы поддержки, чтобы иметь минимальный интерфейс для перезапуска наших производственных серверов в AWS. Я использую модуль AWS boto3, и я использую несколько регионов, мне нужно написать файл конфигурации?

Как мне сказать boto3, где находится файл конфигурации?

То, что я пробовал до сих пор, удается только тогда, когда я говорю boto3 использовать один регион, но мы используем несколько регионов на наших серверах.

То, что я до сих пор пробовал, было:

ec2 = boto3.resource('ec2',region_name=("eu-west-1a","eu-west-1c"))

, и это не удалось. Что мне делать?

1 Ответ

2 голосов
/ 30 октября 2019

Важно отделить концепцию region, которая похожа на eu-west-1, us-gov-east-1, и на зоны доступности нравится eu-west-1a. Регионы указывают общее местоположение, например, страну или штат. В пределах каждого региона обычно есть 3 зоны доступности, которые обозначены буквами и указывают географическое местоположение. Это позволяет вам гарантировать более высокую доступность. Узнайте больше в Интернете, как здесь .

Области в Python

Вы можете исправить это на стороне Python, используя предложение @Orest Gulman:

ec2_euwest = boto3.resource('ec2', region_name="eu-west-1") 
ec2_usgoveast1 = boto3.resource('ec2', region_name="us-gov-east-1")

Областипо конфигурации

Но вы также можете решить эту проблему в user\.aws\credentials, указав

[default]
aws_access_key_id=<yourkeyid>
aws_secret_access_key=<yoursecretkey>

[euwest] 
role_arn=<ifwanted>
source_profile=default 
region=eu-west-1

[usgov]
role_arn=<ifwanted>
source_profile=default 
region=us-gov-east-1

, а затем подключиться, используя различные сеансы

 session = boto3.session.Session(profile_name='euwest')
 ec2_euwest1 = session.resource('ec2')

Зоны доступности в python

Чтобы создать экземпляр ec2 в указанной зоне доступности, вы делаете это во время запуска.

 session = boto3.session.Session(profile_name='euwest')
 ec2_euwest = session.resource('ec2')
 ec2_euwest.create_instances(
     ImageId='ami-00b6a8a2bd28daf19',
     MinCount=1,
     MaxCount=2,
     InstanceType='t2.micro',
     KeyName='ec2-keypair'
     Placement={
        'AvailabilityZone': 'eu-west-1c',
     }
 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...