AWS Region-Specific Information Directory
Usage
Some information used in CDK Applications differs from one AWS region to another, such as service principals used in IAM policies, S3 static website endpoints, …
The RegionInfo
class
The library offers a simple interface to obtain region specific information in
the form of the RegionInfo
class. This is the preferred way to interact with
the regional information database:
# Get the information for "eu-west-1":
region = region_info.RegionInfo.get("eu-west-1")
# Access attributes:
region.s3_static_website_endpoint
The RegionInfo
layer is built on top of the Low-Level API, which is described
below and can be used to register additional data, including user-defined facts
that are not available through the RegionInfo
interface.
Low-Level API
This library offers a primitive database of such information so that CDK
constructs can easily access regional information. The FactName
class provides
a list of known fact names, which can then be used with the RegionInfo
to
retrieve a particular value:
static_website = region_info.Fact.find("ap-northeast-1", region_info.FactName.S3_STATIC_WEBSITE_ENDPOINT)
Supplying new or missing information
As new regions are released, it might happen that a particular fact you need is
missing from the library. In such cases, the Fact.register
method can be used
to inject FactName into the database:
@jsii.implements(region_info.IFact)
class MyFact:
region_info.Fact.register(MyFact())
Overriding incorrect information
In the event information provided by the library is incorrect, it can be
overridden using the same Fact.register
method demonstrated above, simply
adding an extra boolean argument:
@jsii.implements(region_info.IFact)
class MyFact:
region_info.Fact.register(MyFact(), True)
If you happen to have stumbled upon incorrect data built into this library, it is always a good idea to report your findings in a GitHub issue, so we can fix it for everyone else!
This module is part of the AWS Cloud Development Kit project.