Author: Stuart Douglas
Egress allows users to specify remote endpoints they need access to. FTL will provision appropriate policies to allow this access.
Egress will be specified as annotation on the verb methods. For JVM languages this will be represented as parameter annotations:
For go this will be represented in a comment declaration that specifies the paramter names:
In the schema this will be repsented as metadata on the verb decl:
An egress element will be added to the verb runtime metadata that will contain the expanded URI.
Variables are interpolated from config, so for the above deployment to succeed the 'target' config value must be set for the module. The runtime interpolated value must expand to a valid URI, including the protocol, as this information may be required by the provisioner to correctly provision resources. If the protocol is non-standard or if the user wants to ensure that no layer 7 proxying is involved you can use the tcp://host:port
URI to specify that egress is in the form of a plain TCP connection.
Egress does not specify any particular protocol, however the provisioner may provision resources differently based on the procotol in the URI.