Существует ли стандартный набор объектно-ориентированных оболочек для вождения boto3 AWS Elastic MapReduce (EMR)? - PullRequest
0 голосов
/ 04 февраля 2019

boto3 может получить доступ к EMR, создав экземпляр клиента с помощью:

boto3.client('emr', region_name=<...>)

, но полученный интерфейс включает вызовы методов с громоздким набором параметров, которые, кажется, взяты из CLI почти безадаптация, приводящая к коду, подобному отрывку ниже.Я испытываю желание написать свою собственную объектно-ориентированную оболочку, чтобы я мог иметь класс с именем что-то вроде EmrClient с переменными экземпляра, такими как instance_groups, applications, name и так далее.Кажется вероятным, что многие люди уже решили ту же проблему, но стандартные поиски не находят ничего канонического.

Существует ли стандартная оболочка OO для функции boto3, включающая EMR?

Вот фрагмент моего кода статус-кво:

#instance_groups and APPLICATIONS_SETS already set up custom for me
response = emr_client.run_job_flow(
    Name='boto3 EMR creation test 2',
    # LogUri='string',
    # AdditionalInfo='string',
    # AmiVersion='string',
    ReleaseLabel='emr-4.6.0',
    # Has to be either instance_groups or Instances.
    Instances={
        'InstanceGroups': instance_groups
    },
    Steps=[
    ],
    BootstrapActions=[],
    # SupportedProducts=[ 
    #    This parameter seemed very user-unfriendly, with
    #    some products accepted and others not.
    # ],
    Applications=[
        {'Name': x} for x in APPLICATIONS_SETS[APPLICATIONS_SET_CHOSEN]
    ],
    VisibleToAllUsers=True,
    JobFlowRole='EMR_EC2_DefaultRole',
    ServiceRole='EMR_DefaultRole',
    # ScaleDownBehavior='TERMINATE_AT_INSTANCE_HOUR',

)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...