Skip to content

Instantly share code, notes, and snippets.

@rummelonp
Last active August 5, 2020 07:45
Show Gist options
  • Save rummelonp/bbeced96052c06656619722be1b68631 to your computer and use it in GitHub Desktop.
Save rummelonp/bbeced96052c06656619722be1b68631 to your computer and use it in GitHub Desktop.
eb deploy と eb setenv を同時にやるラッパースクリプト
#!/usr/bin/env python
import argparse
from ebcli.core import fileoperations, io
from ebcli.lib import aws, elasticbeanstalk, utils
from ebcli.operations import commonops, envvarops
try:
parser = argparse.ArgumentParser(usage='deploy [environment_name] [--revision REVISION] [--timeout TIMEOUT]')
parser.add_argument('environment_name', action='store', nargs='?', default=None, type=str)
parser.add_argument('--revision', action='store', default=None, type=str, help='application revision')
parser.add_argument('--timeout', action='store', default=10, type=int, help='timeout period in minutes')
args = parser.parse_args()
aws.set_profile(commonops.get_default_profile())
aws.set_region(commonops.get_default_region())
app_name = fileoperations.get_application_name()
env_name = args.environment_name
revision = args.revision
timeout = args.timeout
if env_name is None:
env_name = commonops.get_current_branch_environment()
if revision is None:
revision = utils.exec_cmd_quiet(['git', 'rev-parse', '--short', 'HEAD']).strip()
version_label = commonops.create_app_version(app_name, label=revision, process=True)
var_list = ['='.join(['REVISION', revision])]
options, _ = envvarops.create_environment_variables_list(var_list)
response = elasticbeanstalk._make_api_call('update_environment',
EnvironmentName=env_name,
VersionLabel=version_label,
OptionSettings=options)
request_id = response['ResponseMetadata']['RequestId']
commonops.wait_for_success_events(request_id, timeout_in_minutes=timeout, can_abort=True)
except KeyboardInterrupt:
exit(1)
except Exception as e:
io.log_error(e.__class__.__name__ + ' - ' + str(e))
exit(1)
awsebcli==3.18.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment