def chalice_deployer(): ui = chalice.utils.UI() osutils = chalice.utils.OSUtils() dependency_builder = DependencyBuilder(osutils) d = chalice.deploy.packager.LambdaDeploymentPackager( osutils=osutils, dependency_builder=dependency_builder, ui=ui) return d
def create_default_deployer(session, ui=None): # type: (botocore.session.Session, UI) -> Deployer if ui is None: ui = UI() aws_client = TypedAWSClient(session) api_gateway_deploy = APIGatewayDeployer(aws_client, ui) osutils = OSUtils() dependency_builder = DependencyBuilder(osutils) packager = LambdaDeploymentPackager(osutils=osutils, dependency_builder=dependency_builder, ui=ui) lambda_deploy = LambdaDeployer( aws_client, packager, ui, osutils, ApplicationPolicyHandler(osutils, AppPolicyGenerator(osutils))) return Deployer(api_gateway_deploy, lambda_deploy, ui)
def create_app_packager(config): # type: (Config) -> AppPackager osutils = OSUtils() ui = UI() # The config object does not handle a default value # for autogen'ing a policy so we need to handle this here. return AppPackager( # We're add place holder values that will be filled in once the # lambda function is deployed. SAMTemplateGenerator( CFNSwaggerGenerator('{region}', {}), ApplicationPolicyHandler(osutils, AppPolicyGenerator(osutils))), LambdaDeploymentPackager( osutils=osutils, dependency_builder=DependencyBuilder(osutils), ui=ui, ))
def _make_appdir_and_dependency_builder(self, reqs, tmpdir, runner): appdir = str(_create_app_structure(tmpdir)) self._write_requirements_txt(reqs, appdir) builder = DependencyBuilder(OSUtils(), runner) return appdir, builder
parser.add_argument("--wheels-dir", default="vendor.in") args = parser.parse_args() if args.build_wheels: if platform.system() != "Linux": parser.exit(f"{parser.prog}: Expected to run on a Linux system.") shutil.rmtree(args.wheels_dir) subprocess.call( ["git", "checkout", "--", os.path.join(args.wheels_dir, ".keep")]) for wheel_identifier in args.build_wheels: build_wheel(wheel_identifier, args.wheels_dir) print(f'Please run "git add {args.wheels_dir}" and commit the result.') else: with TemporaryDirectory() as td: python_version = f"python{sys.version_info.major}.{sys.version_info.minor}" abi = LambdaDeploymentPackager._RUNTIME_TO_ABI[python_version] compat_wheels, missing_wheels = DependencyBuilder( OSUtils())._download_dependencies(abi, td, args.pip_reqs) need_wheels = [ w for w in missing_wheels if not os.path.exists(os.path.join(args.wheels_dir, w.identifier)) ] if need_wheels: msg = 'Missing wheels: {}. Please run "{}" in a Linux VM' parser.exit( msg.format( ", ".join(wheel.identifier for wheel in need_wheels), " ".join(sys.argv + ["--build-wheels"] + [w.identifier for w in missing_wheels])))