in samcli/commands/package/package_context.py [0:0]
def run(self):
"""
Execute packaging based on the argument provided by customers and samconfig.toml.
"""
stacks, _ = SamLocalStackProvider.get_stacks(
self.template_file,
global_parameter_overrides=self._global_parameter_overrides,
parameter_overrides=self.parameter_overrides,
)
self._warn_preview_runtime(stacks)
self.image_repositories = self.image_repositories if self.image_repositories is not None else {}
updated_repo = {}
for image_repo_func_id, image_repo_uri in self.image_repositories.items():
repo_full_path = get_resource_full_path_by_id(stacks, ResourceIdentifier(image_repo_func_id))
if repo_full_path:
updated_repo[repo_full_path] = image_repo_uri
self.image_repositories = updated_repo
region_name = self.region if self.region else None
s3_client = boto3.client(
"s3",
config=get_boto_config_with_user_agent(signature_version="s3v4", region_name=region_name),
)
ecr_client = boto3.client("ecr", config=get_boto_config_with_user_agent(region_name=region_name))
docker_client = docker.from_env(version=DOCKER_MIN_API_VERSION)
s3_uploader = S3Uploader(
s3_client, self.s3_bucket, self.s3_prefix, self.kms_key_id, self.force_upload, self.no_progressbar
)
# attach the given metadata to the artifacts to be uploaded
s3_uploader.artifact_metadata = self.metadata
ecr_uploader = ECRUploader(
docker_client, ecr_client, self.image_repository, self.image_repositories, self.no_progressbar
)
self.uploaders = Uploaders(s3_uploader, ecr_uploader)
code_signer_client = boto3.client("signer", config=get_boto_config_with_user_agent(region_name=region_name))
self.code_signer = CodeSigner(code_signer_client, self.signing_profiles)
try:
exported_str = self._export(self.template_file, self.use_json)
self.write_output(self.output_template_file, exported_str)
if self.output_template_file and not self.on_deploy:
msg = self.MSG_PACKAGED_TEMPLATE_WRITTEN.format(
output_file_name=self.output_template_file,
output_file_path=os.path.abspath(self.output_template_file),
)
click.echo(msg)
except OSError as ex:
raise PackageFailedError(template_file=self.template_file, ex=str(ex)) from ex