Сценарий Python не может передать параметр имени профиля AWS сценарию - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь передать опцию AWS profile скрипту Python. Я использую click модуль в моем скрипте. Мой скрипт не работает, если с ниже с сообщением об ошибке.

Вот сообщение об ошибке

bash-3.2$ pipenv run python snapst.py --help
Traceback (most recent call last):
  File "snapst.py", line 29, in <module>
    session = ses_init(profile)
NameError: name 'profile' is not defined
bash-3.2$ 

Вот мой код.

import boto3
import botocore
import click

def filter_instances(project):
    instances = []

    if project:
        filters = [{'Name':'tag:Project', 'Values':[project]}]
        instances = ec2.instances.filter(Filters=filters)
    else:
        instances = ec2.instances.all()

    return instances

def has_pending_snaphost(volume):
    snapshots = list(volume.snapshots.all())
    return snapshots and snapshot[0].state == 'pending'

@click.group()
def cli():
    """Snapshot mantains snapshot of volumes"""

@click.option('--profile', default=None, help="Profile name for AWS access keys")
def ses_init(profile):
    ses = boto3.Session(profile_name=profile)
    return ses

session = ses_init(profile)
ec2 = session.resource('ec2')

<script truncated>

if __name__ == '__main__':
    cli()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...