Naming ConventionsΒΆ
For config file naming conventions (filename patterns, discriminator segments), see Configuration Reference.
All naming conventions are derived directly from src/ml_provisioner/generators/cfn_generator.py.
Table of ContentsΒΆ
ML Product NameΒΆ
The ml_name is the central identifier that flows through all resource names, SSM paths, and stack names.
Without workload:
{company_prefix}-{env}-{tenant_id}-{region}-{use_case}-ml
With workload:
{company_prefix}-{env}-{tenant_id}-{region}-{use_case}-{workload}-ml
Examples:
globalbank-prod-c001-us-west-2-fraud-detection-ml
globalbank-prod-c001-us-west-2-fraud-detection-realtime-ml
techcorp-prod-a001-us-west-2-customer-churn-ml
Config fields:
Field |
Config Key |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Physical Resource NamesΒΆ
Most physical names follow the same base pattern as ml_name with a resource-specific suffix appended.
Without workload:
{company_prefix}-{env}-{tenant_id}-{region}-{use_case}-{suffix}
With workload:
{company_prefix}-{env}-{tenant_id}-{region}-{use_case}-{workload}-{suffix}
Two resource types use a different pattern due to AWS service name length constraints β see the notes in the table below.
Resource SuffixesΒΆ
Resource Type |
Suffix |
Pattern |
Example Physical Name |
|---|---|---|---|
|
|
Standard |
|
|
|
Standard |
|
|
|
Standard |
|
|
|
Standard |
|
|
|
IAM (see note 2) |
|
|
|
IAM (see note 2) |
|
|
|
Standard |
|
|
|
Standard |
|
|
|
Standard |
|
|
|
Standard |
|
|
|
Standard |
|
|
|
Standard |
|
|
|
Standard |
|
Note 1 β IAM resources (region omitted):
IAM is a global AWS service β role and policy names are unique per AWS account, not per region. Region is therefore omitted from IAM names to stay within the 64-character IAM role name limit.
The IAM naming pattern is:
{company_prefix}-{env}-{tenant_id}-{use_case}-{suffix}(without workload)
{company_prefix}-{env}-{tenant_id}-{use_case}-{workload}-{suffix}(with workload).
Note 2:
AWS::KMS::KeyandAWS::SNS::Subscriptiondo not have physical names β KMS keys are referenced by ARN, subscriptions have no name property.
CloudFormation Logical IDsΒΆ
Logical IDs are used internally within the CloudFormation template to reference resources.
Pattern:
{PascalCase(company_prefix)}{PascalCase(use_case)}{PascalCase(resource_key)}
company_prefixanduse_caseare converted from kebab-case to PascalCaseresource_keyis converted from snake_case to PascalCase
Examples:
Blueprint Key |
Logical ID |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SSM Parameter Store PathsΒΆ
All deployed resource identifiers are stored in SSM Parameter Store at deployment time.
Standard outputs:
/ml/{ml_name}/{OutputKey}
VPC endpoint outputs (one per service):
/ml/{ml_name}/VpcEndpointId{Service}
Full Path ReferenceΒΆ
Output Key |
SSM Path |
Tier |
|---|---|---|
|
|
All |
|
|
All (codecommit only) |
|
|
Professional + Enterprise |
|
|
Professional + Enterprise |
|
|
Enterprise |
|
|
Enterprise |
|
|
Enterprise (standalone mode only) |
|
|
Enterprise |
|
|
Enterprise |
|
|
Enterprise |
|
|
Enterprise |
Example paths for ml_name globalbank-prod-c001-us-west-2-fraud-detection-ml:
/ml/globalbank-prod-c001-us-west-2-fraud-detection-ml/ModelPackageGroupArn
/ml/globalbank-prod-c001-us-west-2-fraud-detection-ml/BucketName
/ml/globalbank-prod-c001-us-west-2-fraud-detection-ml/KmsKeyArn
/ml/globalbank-prod-c001-us-west-2-fraud-detection-ml/VpcEndpointIdSagemakerApi
KMS Key AliasΒΆ
alias/{ml_name}-key
Example:
alias/globalbank-prod-c001-us-west-2-fraud-detection-ml-key
CloudFormation Stack NameΒΆ
The stack name is derived from ml_name with a -stack suffix appended by the deployment logic in ml_manager.py:
{ml_name}-stack
Example:
globalbank-prod-c001-us-west-2-fraud-detection-ml-stack
Name Length LimitsΒΆ
The generator validates physical names against AWS service limits at generation time.
If a name exceeds the limit a ValueError is raised with guidance to shorten
company_prefix, use_case, or tenant_id.
Limits are defined in common/src/common/utils/aws_helpers.py under NAME_LENGTH_LIMITS:
Resource Type |
Max Length |
|---|---|
|
63 |
|
100 |
|
255 |
|
100 |
|
63 |
|
64 |
|
128 |
|
64 |
|
255 |
|
256 |
|
512 |
|
256 |
|
255 |
|
1000 |
|
256 |
|
1011 |
use_case maximum length β 20 characters
AWS::IAM::Rolehas the tightest AWS name limit at 64 charactersWith typical config values, a
use_caselonger than 20 characters causes IAM role names to exceed this limitThe validation schema enforces the 20-character maximum on
ml_product.use_caseUse cases exceeding this limit are rejected at
validate-configtime