Naming Resources

Editor’s Note: The resources of Fugue are a work in progress and can be expected to change as we refine and expand our AWS service coverage. For any questions about resources not identified here or resources in general feel free to reach out to us through support@fugue.co.

How does Fugue handle naming resources in AWS? The answer varies, but there is a rule. Fugue derives resource names for you based on your composition when possible. However, if your application is likely to interact with a resource directly, you must specify a name.

Resources Which Fugue Names

If a resource is something that you should only modify through Fugue, its name is a generated GUID, which guarantees that the resource is uniquely named. This makes the resource easier for the Conductor to track precisely. In these cases, the binding name in Ludwig usually appears as a Name tag.

Examples:

  • AutoScaling Groups (ASGs)
  • Security Groups (SGs)

Resources Which You Name

If a resource is one that you are likely to interact with in application code, a name for it is required in its Standard Library type. For example, this can take the form of a field like name or loadBalancerName. In these cases, Fugue uses the name value provided in the Ludwig (NOT the Ludwig binding name) as the resource name. These resources are typically required to have names that are unique - in other words you can’t have two DynamoDB tables with the same name.

Examples:

  • DynamoDB table (tableName field)
  • S3 bucket (name field)

Most Other AWS Resources

The most common category of resources within AWS are those resources that don’t have specific names. These resources are identified using Amazon-generated names. When tags are available, we store name information within the tags.

Items to note

  • While Ludwig binding names are associated with resource metadata whenever possible (usually via tags), Fugue never uses the Ludwig binding name directly as the resource name. The resource name is always a generated GUID, or a user-provided name when a name or similar field is in a resource’s Standard Library type.