in samcli/commands/deploy/guided_context.py [0:0]
def guided_prompts(self, parameter_override_keys):
"""
Start an interactive cli prompt to collection information for deployment
Parameters
----------
parameter_override_keys
The keys of parameters to override, for each key, customers will be asked to provide a value
"""
default_stack_name = self.stack_name or "sam-app"
default_region = self.region or get_default_aws_region()
default_capabilities = self.capabilities[0] or ("CAPABILITY_IAM",)
default_config_env = self.config_env or DEFAULT_ENV
default_config_file = self.config_file or DEFAULT_CONFIG_FILE_NAME
input_capabilities = None
config_env = None
config_file = None
click.echo(
self.color.yellow(
"\n\tSetting default arguments for 'sam deploy'\n\t========================================="
)
)
stack_name = prompt(
f"\t{self.start_bold}Stack Name{self.end_bold}", default=default_stack_name, type=click.STRING
)
region = prompt(f"\t{self.start_bold}AWS Region{self.end_bold}", default=default_region, type=click.STRING)
global_parameter_overrides = {IntrinsicsSymbolTable.AWS_REGION: region}
input_parameter_overrides = self.prompt_parameters(
parameter_override_keys, self.parameter_overrides_from_cmdline, self.start_bold, self.end_bold
)
stacks, _ = SamLocalStackProvider.get_stacks(
self.template_file,
parameter_overrides=sanitize_parameter_overrides(input_parameter_overrides),
global_parameter_overrides=global_parameter_overrides,
)
click.secho("\t#Shows you resources changes to be deployed and require a 'Y' to initiate deploy")
confirm_changeset = confirm(
f"\t{self.start_bold}Confirm changes before deploy{self.end_bold}", default=self.confirm_changeset
)
click.secho("\t#SAM needs permission to be able to create roles to connect to the resources in your template")
capabilities_confirm = confirm(
f"\t{self.start_bold}Allow SAM CLI IAM role creation{self.end_bold}", default=True
)
if not capabilities_confirm:
input_capabilities = prompt(
f"\t{self.start_bold}Capabilities{self.end_bold}",
default=list(default_capabilities),
type=FuncParamType(func=_space_separated_list_func_type),
)
click.secho("\t#Preserves the state of previously provisioned resources when an operation fails")
disable_rollback = confirm(f"\t{self.start_bold}Disable rollback{self.end_bold}", default=self.disable_rollback)
self.prompt_authorization(stacks)
self.prompt_code_signing_settings(stacks)
save_to_config = confirm(
f"\t{self.start_bold}Save arguments to configuration file{self.end_bold}", default=True
)
if save_to_config:
config_file = prompt(
f"\t{self.start_bold}SAM configuration file{self.end_bold}",
default=default_config_file,
type=click.STRING,
)
config_env = prompt(
f"\t{self.start_bold}SAM configuration environment{self.end_bold}",
default=default_config_env,
type=click.STRING,
)
click.echo("\n\tLooking for resources needed for deployment:")
managed_s3_bucket = manage_stack(profile=self.profile, region=region)
click.secho(f"\n\tManaged S3 bucket: {managed_s3_bucket}", bold=True)
click.echo(
"\tA different default S3 bucket can be set in samconfig.toml"
" and auto resolution of buckets turned off by setting resolve_s3=False"
)
image_repositories = (
sync_ecr_stack(
self.template_file, stack_name, region, managed_s3_bucket, self.s3_prefix, self.image_repositories
)
if self.resolve_image_repositories
else self.prompt_image_repository(
stack_name, stacks, self.image_repositories, region, managed_s3_bucket, self.s3_prefix
)
)
self.guided_stack_name = stack_name
self.guided_s3_bucket = managed_s3_bucket
self.guided_image_repositories = image_repositories
# NOTE(sriram-mv): The resultant s3 bucket is ALWAYS the managed_s3_bucket. There is no user flow to set it
# within guided.
self.resolve_s3 = True if self.guided_s3_bucket else False
self.guided_s3_prefix = stack_name
self.guided_region = region
self.guided_profile = self.profile
self._capabilities = input_capabilities if input_capabilities else default_capabilities
self._parameter_overrides = (
input_parameter_overrides if input_parameter_overrides else self.parameter_overrides_from_cmdline
)
self.save_to_config = save_to_config
self.config_env = config_env if config_env else default_config_env
self.config_file = config_file if config_file else default_config_file
self.confirm_changeset = confirm_changeset
self.disable_rollback = disable_rollback