Documentation ¶
Overview ¶
Package template renders the static files under the "/templates/" directory.
Index ¶
- Constants
- func AvailableEnvFeatures() []string
- func DashReplacedLogicalIDToOriginal(safeLogicalID string) string
- func EnvVarNameFunc(s string) string
- func EnvVarSecretFunc(s string) string
- func FmtSliceFunc(elems []string) string
- func FriendlyEnvFeatureName(feature string) string
- func IncFunc(i int) int
- func IsARNFunc(value string) bool
- func LeastVersionForFeature(feature string) string
- func QuoteSliceFunc(elems []string) []string
- func ReplaceDashesFunc(logicalID string) string
- func SecretFromSSMOrARN(value string) ssmOrSecretARN
- func SecretFromSecretsManager(value string) secretsManagerName
- func StripNonAlphaNumFunc(s string) string
- func ToSnakeCaseFunc(s string) string
- func TrimSlashPrefix(value string) string
- type AdvancedCount
- type AliasesForHostedZone
- type AutoscalingOpts
- type AutoscalingQueueDelayOpts
- type CDNConfig
- type CapacityProviderStrategy
- type ContainerHealthCheck
- type Content
- type Cooldown
- type DeadLetterQueue
- type DeploymentConfigurationOpts
- type EFSPermission
- type EFSVolumeConfiguration
- type ELBAccessLogs
- type EnvOpts
- type ExecuteCommandOpts
- type HTTPConfig
- type HTTPHealthCheckOpts
- type ImportVPC
- type LogConfigOpts
- type ManagedVPC
- type ManagedVolumeCreationInfo
- type MountPoint
- type NLBHealthCheck
- type NetworkLoadBalancer
- type NetworkLoadBalancerListener
- type NetworkOpts
- type ObservabilityOpts
- type ParseOption
- type Parser
- type PublishOpts
- type ReadParser
- type Reader
- type RuntimePlatformOpts
- type S3ObjectLocation
- type SQSQueue
- type Secret
- type SecurityGroupConfig
- type SecurityGroupRule
- type SidecarOpts
- type SidecarStorageOpts
- type StateMachineOpts
- type StorageOpts
- type SubscribeOpts
- type Telemetry
- type Template
- func (t *Template) Parse(path string, data interface{}, options ...ParseOption) (*Content, error)
- func (t *Template) ParseBackendService(data WorkloadOpts) (*Content, error)
- func (t *Template) ParseEnv(data *EnvOpts) (*Content, error)
- func (t *Template) ParseEnvBootstrap(data *EnvOpts, options ...ParseOption) (*Content, error)
- func (t *Template) ParseLoadBalancedWebService(data WorkloadOpts) (*Content, error)
- func (t *Template) ParseRequestDrivenWebService(data WorkloadOpts) (*Content, error)
- func (t *Template) ParseScheduledJob(data WorkloadOpts) (*Content, error)
- func (t *Template) ParseWorkerService(data WorkloadOpts) (*Content, error)
- func (t *Template) Read(path string) (*Content, error)
- func (t *Template) UploadEnvironmentCustomResources(upload s3.CompressAndUploadFunc) (map[string]string, error)
- type Topic
- type TopicSubscription
- type Uploadable
- type VPCConfig
- type Volume
- type WorkloadNestedStackOpts
- type WorkloadOpts
Constants ¶
const ( ALBFeatureName = "ALBWorkloads" EFSFeatureName = "EFSWorkloads" NATFeatureName = "NATWorkloads" InternalALBFeatureName = "InternalALBWorkloads" AliasesFeatureName = "Aliases" )
Available env-controller managed feature names.
const ( DNSCertValidatorFileName = "dns-cert-validator" CertReplicatorFileName = "cert-replicator" DNSDelegationFileName = "dns-delegation" CustomDomainFileName = "custom-domain" AppRunnerCustomDomainLambdaFileName = "custom-domain-app-runner" NLBCertValidatorLambdaFileName = "nlb-cert-validator" NLBCustomDomainLambdaFileName = "nlb-custom-domain" )
File names under "templates/".
const ( // AWS VPC networking configuration. EnablePublicIP = "ENABLED" DisablePublicIP = "DISABLED" PublicSubnetsPlacement = "PublicSubnets" PrivateSubnetsPlacement = "PrivateSubnets" // RuntimePlatform configuration. OSLinux = "LINUX" OSWindowsServerFull = "WINDOWS_SERVER_2019_FULL" OSWindowsServerCore = "WINDOWS_SERVER_2019_CORE" ArchX86 = "X86_64" ArchARM64 = "ARM64" )
Constants for workload options.
const LastForceDeployIDOutputName = "LastForceDeployID"
LastForceDeployIDOutputName is the logical ID of the deployment controller output.
Variables ¶
This section is empty.
Functions ¶
func AvailableEnvFeatures ¶ added in v1.19.0
func AvailableEnvFeatures() []string
AvailableEnvFeatures returns a list of the latest available feature, named after their corresponding parameter names.
func DashReplacedLogicalIDToOriginal ¶
DashReplacedLogicalIDToOriginal takes a "sanitized" logical ID and converts it back to its original form, with dashes.
func EnvVarNameFunc ¶
EnvVarNameFunc converts an input resource name to LogicalIDSafe, then appends "Name" to the end.
func EnvVarSecretFunc ¶ added in v1.5.0
EnvVarSecretFunc converts an input resource name to LogicalIDSafe, then appends "Secret" to the end.
func FmtSliceFunc ¶
FmtSliceFunc renders a string representation of a go string slice, surrounded by brackets and joined by commas.
func FriendlyEnvFeatureName ¶ added in v1.19.0
FriendlyEnvFeatureName returns a user-friendly feature name given a env-controller managed parameter name. If there isn't one, it returns the parameter name that it is given.
func IsARNFunc ¶ added in v1.16.0
IsArnFunc takes a string value and determines if it's an ARN or not.
func LeastVersionForFeature ¶ added in v1.19.0
LeastVersionForFeature maps each feature to the least environment template version it requires.
func QuoteSliceFunc ¶
QuoteSliceFunc places quotation marks around all elements of a go string slice.
func ReplaceDashesFunc ¶
ReplaceDashesFunc takes a CloudFormation logical ID, and sanitizes it by removing "-" characters (not allowed) and replacing them with "DASH" (allowed by CloudFormation but not permitted in ecs-cli generated resource names).
func SecretFromSSMOrARN ¶ added in v1.15.0
func SecretFromSSMOrARN(value string) ssmOrSecretARN
SecretFromSSMOrARN returns a Secret that refers to an SSM parameter or a secret ARN.
func SecretFromSecretsManager ¶ added in v1.15.0
func SecretFromSecretsManager(value string) secretsManagerName
SecretFromSecretsManager returns a Secret that refers to SecretsManager secret name.
func StripNonAlphaNumFunc ¶
StripNonAlphaNumFunc strips non-alphanumeric characters from an input string.
func ToSnakeCaseFunc ¶
ToSnakeCaseFunc transforms a CamelCase input string s into an upper SNAKE_CASE string and returns it. For example, "usersDdbTableName" becomes "USERS_DDB_TABLE_NAME".
func TrimSlashPrefix ¶ added in v1.16.0
TrimSlashPrefix takes a string value and removes slash prefix from the string if present.
Types ¶
type AdvancedCount ¶ added in v1.6.0
type AdvancedCount struct { Spot *int Autoscaling *AutoscalingOpts Cps []*CapacityProviderStrategy }
AdvancedCount holds configuration for autoscaling and capacity provider parameters.
type AliasesForHostedZone ¶ added in v1.19.0
AliasesForHostedZone maps hosted zone IDs to aliases that belong to it.
type AutoscalingOpts ¶ added in v0.4.0
type AutoscalingOpts struct { MinCapacity *int MaxCapacity *int CPU *float64 Memory *float64 Requests *float64 ResponseTime *float64 CPUCooldown Cooldown MemCooldown Cooldown ReqCooldown Cooldown RespTimeCooldown Cooldown QueueDelayCooldown Cooldown QueueDelay *AutoscalingQueueDelayOpts }
AutoscalingOpts holds configuration that's needed for Auto Scaling.
type AutoscalingQueueDelayOpts ¶ added in v1.11.0
type AutoscalingQueueDelayOpts struct {
AcceptableBacklogPerTask int
}
AutoscalingQueueDelayOpts holds configuration to scale SQS queues.
type CDNConfig ¶ added in v1.20.0
type CDNConfig struct {
ImportedCertificate *string
}
CDNConfig represents a Content Delivery Network deployed by CloudFront.
type CapacityProviderStrategy ¶ added in v1.6.0
CapacityProviderStrategy holds the configuration needed for a CapacityProviderStrategyItem on a Service
type ContainerHealthCheck ¶ added in v1.11.0
type ContainerHealthCheck struct { Command []string Interval *int64 Retries *int64 StartPeriod *int64 Timeout *int64 }
ContainerHealthCheck holds configuration for container health check.
type Content ¶
Content represents the parsed template.
func (*Content) MarshalBinary ¶
MarshalBinary returns the contents as binary and implements the encoding.BinaryMarshaler interface.
type Cooldown ¶ added in v1.20.0
Cooldown holds configuration needed for autoscaling cooldown fields.
type DeadLetterQueue ¶ added in v1.9.0
type DeadLetterQueue struct {
Tries *uint16
}
DeadLetterQueue holds information needed to render a dead-letter SQS Queue in a container definition.
type DeploymentConfigurationOpts ¶ added in v1.18.0
type DeploymentConfigurationOpts struct { // The lower limit on the number of tasks that should be running during a service deployment or when a container instance is draining. MinHealthyPercent int // The upper limit on the number of tasks that should be running during a service deployment or when a container instance is draining. MaxPercent int }
DeploymentConfiguraitonOpts holds values for MinHealthyPercent and MaxPercent.
type EFSPermission ¶ added in v1.3.0
EFSPermission holds information needed to render an IAM policy statement.
type EFSVolumeConfiguration ¶ added in v1.5.0
type EFSVolumeConfiguration struct { // EFSVolumeConfiguration Filesystem *string RootDirectory *string // "/" or empty are equivalent // Authorization Config AccessPointID *string IAM *string // ENABLED or DISABLED }
EFSVolumeConfiguration contains information about how to specify externally managed file systems.
type ELBAccessLogs ¶ added in v1.21.0
ELBAccessLogs represents configuration for ELB access logs S3 bucket.
func (*ELBAccessLogs) ShouldCreateBucket ¶ added in v1.21.0
func (elb *ELBAccessLogs) ShouldCreateBucket() bool
ShouldCreateBucket returns true if copilot should create bucket on behalf of customer.
type EnvOpts ¶ added in v0.3.0
type EnvOpts struct { AppName string // The application name. Needed to create default value for svc discovery endpoint for upgraded environments. EnvName string Version string // The template version to use for the environment. If empty uses the "legacy" template. // Custom Resourced backed by Lambda functions. CustomResources map[string]S3ObjectLocation DNSDelegationLambda string DNSCertValidatorLambda string EnableLongARNFormatLambda string CustomDomainLambda string ScriptBucketName string ArtifactBucketARN string ArtifactBucketKeyARN string VPCConfig VPCConfig PublicHTTPConfig HTTPConfig PrivateHTTPConfig HTTPConfig Telemetry *Telemetry CDNConfig *CDNConfig LatestVersion string SerializedManifest string // Serialized manifest used to render the environment template. ForceUpdateID string DelegateDNS bool }
EnvOpts holds data that can be provided to enable features in an environment stack template.
type ExecuteCommandOpts ¶ added in v1.4.0
type ExecuteCommandOpts struct{}
ExecuteCommandOpts holds configuration that's needed for ECS Execute Command.
type HTTPConfig ¶ added in v1.21.0
type HTTPConfig struct { CIDRPrefixListIDs []string ImportedCertARNs []string CustomALBSubnets []string ELBAccessLogs *ELBAccessLogs }
HTTPConfig represents configuration for a Load Balancer.
type HTTPHealthCheckOpts ¶ added in v0.6.0
type HTTPHealthCheckOpts struct { HealthCheckPath string Port string SuccessCodes string HealthyThreshold *int64 UnhealthyThreshold *int64 Interval *int64 Timeout *int64 DeregistrationDelay *int64 GracePeriod *int64 }
HTTPHealthCheckOpts holds configuration that's needed for HTTP Health Check.
type LogConfigOpts ¶
type LogConfigOpts struct { Image *string Destination map[string]string EnableMetadata *string SecretOptions map[string]Secret ConfigFile *string Variables map[string]string Secrets map[string]Secret }
LogConfigOpts holds configuration that's needed if the service is configured with Firelens to route its logs.
type ManagedVPC ¶ added in v1.18.0
type ManagedVPC struct { CIDR string AZs []string PublicSubnetCIDRs []string PrivateSubnetCIDRs []string }
ManagedVPC holds the fields to configure a managed VPC.
type ManagedVolumeCreationInfo ¶ added in v1.5.0
ManagedVolumeCreationInfo holds information about how to create Copilot-managed access points.
type MountPoint ¶ added in v1.3.0
MountPoint holds information needed to render a MountPoint in a containerdefinition.
type NLBHealthCheck ¶ added in v1.14.0
type NLBHealthCheck struct { Port string // The port to which health check requests made from Network Load Balancer are routed to. HealthyThreshold *int64 UnhealthyThreshold *int64 Timeout *int64 Interval *int64 }
NLBHealthCheck holds configuration for Network Load Balancer health check.
type NetworkLoadBalancer ¶ added in v1.13.0
type NetworkLoadBalancer struct { PublicSubnetCIDRs []string Listener NetworkLoadBalancerListener MainContainerPort string }
NetworkLoadBalancer holds configuration that's needed for a Network Load Balancer.
type NetworkLoadBalancerListener ¶ added in v1.13.0
type NetworkLoadBalancerListener struct { // The port and protocol that the Network Load Balancer listens to. Port string Protocol string // The target container and port to which the traffic is routed to from the Network Load Balancer. TargetContainer string TargetPort string SSLPolicy *string // The SSL policy applied when using TLS protocol. Aliases []string Stickiness *bool HealthCheck NLBHealthCheck }
NetworkLoadBalancerListener holds configuration that's need for a Network Load Balancer listener.
type NetworkOpts ¶ added in v1.3.0
type NetworkOpts struct { SecurityGroups []string AssignPublicIP string // SubnetsType and SubnetIDs are mutually exclusive. They won't be set together. SubnetsType string SubnetIDs []string DenyDefaultSecurityGroup bool }
NetworkOpts holds AWS networking configuration for the workloads.
type ObservabilityOpts ¶ added in v1.16.0
type ObservabilityOpts struct {
Tracing string // The name of the vendor used for tracing.
}
ObservabilityOpts holds configurations for observability.
type ParseOption ¶
ParseOption represents a functional option for the Parse method.
func WithFuncs ¶
func WithFuncs(fns map[string]interface{}) ParseOption
WithFuncs returns a template that can parse additional custom functions.
type Parser ¶
type Parser interface {
Parse(path string, data interface{}, options ...ParseOption) (*Content, error)
}
Parser is the interface that wraps the Parse method.
type PublishOpts ¶ added in v1.8.3
type PublishOpts struct {
Topics []*Topic
}
PublishOpts holds configuration needed if the service has publishers.
type ReadParser ¶
ReadParser is the interface that wraps the Read and Parse methods.
type RuntimePlatformOpts ¶ added in v1.12.0
RuntimePlatformOpts holds configuration needed for Platform configuration.
func (RuntimePlatformOpts) IsDefault ¶ added in v1.12.0
func (p RuntimePlatformOpts) IsDefault() bool
IsDefault returns true if the platform matches the default docker image platform of "linux/amd64".
func (RuntimePlatformOpts) Version ¶ added in v1.12.0
func (p RuntimePlatformOpts) Version() string
Version returns the Fargate platform version based on the selected os family.
type S3ObjectLocation ¶ added in v1.20.0
type S3ObjectLocation struct { Bucket string // Name of the bucket. Key string // Key of the object. }
S3ObjectLocation represents an object stored in an S3 bucket.
type SQSQueue ¶ added in v1.9.0
type SQSQueue struct { Retention *int64 Delay *int64 Timeout *int64 DeadLetter *DeadLetterQueue }
SQSQueue holds information needed to render a SQS Queue in a container definition.
type Secret ¶ added in v1.15.0
A Secret represents an SSM or SecretsManager secret that can be rendered in CloudFormation.
type SecurityGroupConfig ¶ added in v1.21.0
type SecurityGroupConfig struct { Ingress []SecurityGroupRule Egress []SecurityGroupRule }
SecurityGroupConfig holds the fields to import security group config
type SecurityGroupRule ¶ added in v1.21.0
SecurityGroupRule holds the fields to import security group rule
type SidecarOpts ¶
type SidecarOpts struct { Name *string Image *string Essential *bool Port *string Protocol *string CredsParam *string Variables map[string]string Secrets map[string]Secret Storage SidecarStorageOpts DockerLabels map[string]string DependsOn map[string]string EntryPoint []string Command []string HealthCheck *ContainerHealthCheck }
SidecarOpts holds configuration that's needed if the service has sidecar containers.
type SidecarStorageOpts ¶ added in v1.12.0
type SidecarStorageOpts struct {
MountPoints []*MountPoint
}
SidecarStorageOpts holds data structures for rendering Mount Points inside of a sidecar.
type StateMachineOpts ¶ added in v0.5.0
StateMachineOpts holds configuration needed for State Machine retries and timeout.
type StorageOpts ¶ added in v1.3.0
type StorageOpts struct { Ephemeral *int Volumes []*Volume MountPoints []*MountPoint EFSPerms []*EFSPermission ManagedVolumeInfo *ManagedVolumeCreationInfo // Used for delegating CreationInfo for Copilot-managed EFS. }
StorageOpts holds data structures for rendering Volumes and Mount Points
type SubscribeOpts ¶ added in v1.9.0
type SubscribeOpts struct { Topics []*TopicSubscription Queue *SQSQueue }
SubscribeOpts holds configuration needed if the service has subscriptions.
func (*SubscribeOpts) HasTopicQueues ¶ added in v1.10.0
func (s *SubscribeOpts) HasTopicQueues() bool
HasTopicQueues returns true if any individual subscription has a dedicated queue.
type Telemetry ¶ added in v1.18.0
type Telemetry struct {
EnableContainerInsights bool
}
Telemetry represents optional observability and monitoring configuration.
type Template ¶
type Template struct {
// contains filtered or unexported fields
}
Template represents the "/templates/" directory that holds static files to be embedded in the binary.
func New ¶
func New() *Template
New returns a Template object that can be used to parse files under the "/templates/" directory.
func (*Template) Parse ¶
func (t *Template) Parse(path string, data interface{}, options ...ParseOption) (*Content, error)
Parse parses the template under "/templates/{path}" with the specified data object and returns its content.
func (*Template) ParseBackendService ¶
func (t *Template) ParseBackendService(data WorkloadOpts) (*Content, error)
ParseBackendService parses a backend service's CloudFormation template with the specified data object and returns its content.
func (*Template) ParseEnv ¶ added in v0.3.0
ParseEnv parses an environment's CloudFormation template with the specified data object and returns its content.
func (*Template) ParseEnvBootstrap ¶ added in v1.20.0
func (t *Template) ParseEnvBootstrap(data *EnvOpts, options ...ParseOption) (*Content, error)
ParseEnvBootstrap parses the CloudFormation template that bootstrap IAM resources with the specified data object and returns its content.
func (*Template) ParseLoadBalancedWebService ¶
func (t *Template) ParseLoadBalancedWebService(data WorkloadOpts) (*Content, error)
ParseLoadBalancedWebService parses a load balanced web service's CloudFormation template with the specified data object and returns its content.
func (*Template) ParseRequestDrivenWebService ¶ added in v1.7.0
func (t *Template) ParseRequestDrivenWebService(data WorkloadOpts) (*Content, error)
ParseRequestDrivenWebService parses a request-driven web service's CloudFormation template with the specified data object and returns its content.
func (*Template) ParseScheduledJob ¶ added in v0.5.0
func (t *Template) ParseScheduledJob(data WorkloadOpts) (*Content, error)
ParseScheduledJob parses a scheduled job's Cloudformation Template
func (*Template) ParseWorkerService ¶ added in v1.9.0
func (t *Template) ParseWorkerService(data WorkloadOpts) (*Content, error)
ParseWorkerService parses a worker service's CloudFormation template with the specified data object and returns its content.
func (*Template) UploadEnvironmentCustomResources ¶ added in v1.4.0
func (t *Template) UploadEnvironmentCustomResources(upload s3.CompressAndUploadFunc) (map[string]string, error)
UploadEnvironmentCustomResources uploads the environment custom resource scripts.
type Topic ¶ added in v1.9.0
type Topic struct { Name *string Region string Partition string AccountID string App string Env string Svc string }
Topic holds information needed to render a SNSTopic in a container definition.
type TopicSubscription ¶ added in v1.9.0
TopicSubscription holds information needed to render a SNS Topic Subscription in a container definition.
type Uploadable ¶ added in v1.4.0
type Uploadable struct {
// contains filtered or unexported fields
}
Uploadable is an uploadable file.
func (Uploadable) Content ¶ added in v1.4.0
func (e Uploadable) Content() []byte
Content returns the content of the custom resource script.
func (Uploadable) Name ¶ added in v1.4.0
func (e Uploadable) Name() string
Name returns the name of the custom resource script.
type VPCConfig ¶ added in v1.18.0
type VPCConfig struct { Imported *ImportVPC // If not-nil, use the imported VPC resources instead of the Managed VPC. Managed ManagedVPC AllowVPCIngress bool SecurityGroupConfig *SecurityGroupConfig }
type Volume ¶ added in v1.3.0
type Volume struct { Name *string EFS *EFSVolumeConfiguration }
Volume contains fields that render a volume, its name, and EFSVolumeConfiguration
type WorkloadNestedStackOpts ¶ added in v0.5.0
type WorkloadNestedStackOpts struct { StackName string VariableOutputs []string SecretOutputs []string PolicyOutputs []string SecurityGroupOutputs []string }
WorkloadNestedStackOpts holds configuration that's needed if the workload stack has a nested stack.
type WorkloadOpts ¶ added in v0.5.0
type WorkloadOpts struct { AppName string EnvName string WorkloadName string SerializedManifest string // Raw manifest file used to deploy the workload. EnvVersion string // Additional options that are common between **all** workload templates. Variables map[string]string Secrets map[string]Secret Aliases []string HTTPSListener bool Tags map[string]string // Used by App Runner workloads to tag App Runner service resources NestedStack *WorkloadNestedStackOpts // Outputs from nested stacks such as the addons stack. AddonsExtraParams string // Additional user defined Parameters for the addons stack. Sidecars []*SidecarOpts LogConfig *LogConfigOpts Autoscaling *AutoscalingOpts CapacityProviders []*CapacityProviderStrategy DesiredCountOnSpot *int Storage *StorageOpts Network NetworkOpts ExecuteCommand *ExecuteCommandOpts Platform RuntimePlatformOpts EntryPoint []string Command []string DomainAlias string DockerLabels map[string]string DependsOn map[string]string Publish *PublishOpts ServiceDiscoveryEndpoint string HTTPVersion *string ALBEnabled bool HostedZoneAliases AliasesForHostedZone CredentialsParameter string // Additional options for service templates. WorkloadType string HealthCheck *ContainerHealthCheck HTTPHealthCheck HTTPHealthCheckOpts DeregistrationDelay *int64 AllowedSourceIps []string NLB *NetworkLoadBalancer DeploymentConfiguration DeploymentConfigurationOpts // Custom Resources backed by Lambda functions. CustomResources map[string]S3ObjectLocation // Additional options for job templates. ScheduleExpression string StateMachine *StateMachineOpts // Additional options for request driven web service templates. StartCommand *string EnableHealthCheck bool Observability ObservabilityOpts // Input needed for the custom resource that adds a custom domain to the service. Alias *string AWSSDKLayer *string AppDNSDelegationRole *string AppDNSName *string // Additional options for worker service templates. Subscribe *SubscribeOpts }
WorkloadOpts holds optional data that can be provided to enable features in a workload stack template.
Directories ¶
Path | Synopsis |
---|---|
Package artifactpath holds functions to generate the S3 object path for artifacts.
|
Package artifactpath holds functions to generate the S3 object path for artifacts. |
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
Package override provides functionality to replace content from vended templates.
|
Package override provides functionality to replace content from vended templates. |