

# How to use AWS AppConfig Agent to retrieve configuration data


The AWS AppConfig Agent is the recommended method for retrieving AWS AppConfig feature flags or free form configuration data. The agent is supported on all forms of AWS Compute including Amazon EC2, Amazon ECS, Amazon EKS, and Lambda. After you complete the initial agent set up, using the agent to retrieve configuration data is simpler than directly calling AWS AppConfig APIs. The agent automatically implements best practices and may lower your cost of using AWS AppConfig as a result of fewer API calls to retrieve configurations.

**Note**  
Retrieving configuration data from a separate AWS account isn't supported.

## Using AWS AppConfig Agent for user- or entity-based gradual deployments


AWS AppConfig Agent supports deploying feature flag or free-form configuration data to specific segments or individual users during a gradual rollout. Entity-based gradual deployments ensure that once a user or segment receives a configuration version, they continue to receive that same version throughout the deployment period, regardless of which compute resource serves their requests.

With entity-based gradual deployments, AWS AppConfig Agent evaluates a unique identifier (`Entity-Id`) supplied with each HTTP request. Based on this identifier, the agent consistently serves either the new or previous configuration version throughout the deployment period. This process ensures that once a user receives the updated configuration, they continue to receive it. It also ensures that rollback alarms have sufficient time and data to detect issues.

Consider entity-based gradual deployments if a configuration directly changes user-facing behavior and if the change in blast radius (impacting specific users fully rather than all users partially) is acceptable for your application.

**Important**  
Note the following important information about entity-based gradual deployments:  
Entity-based gradual deployments require AWS AppConfig Agent version 2.0.136060 or later.
`Entity-Id` accepts a maximum string size of 2 KB.
Unique identifiers must not be hard-coded or low cardinality.
Identifiers aren't sent to the AWS AppConfig service. AWS AppConfig Agent evaluates unique identifiers client-side.
During a deployment, AWS AppConfig Agent keeps track of entities and deployed configurations. This tracking is maintained only during a deployment period. The tracking ends when the deployment completes.
Each instance of AWS AppConfig polls for deployment state independently, so agents may briefly serve different versions of the same entity as the deployment percentage changes. This window is determined by the poll interval and a short synchronization period. You can reduce it by setting `RequiredMinimumPollIntervalInSeconds` in the [StartConfigurationSession](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html) API action. However, shorter intervals increase API call rates, which can raise costs and risk throttling. Choose a poll interval that meets your requirements. For more information, see [StartConfigurationSession](https://docs.aws.amazon.com/cli/latest/reference/appconfigdata/start-configuration-session.html) in the AWS CLI Reference.

### Enabling entity-based gradual deployments


To enable entity-based gradual deployments:

1. Update to AWS AppConfig Agent version 2.0.136060 or later.

1. Provide a unique identifier in the `Entity-Id` HTTP header when retrieving configuration data.

The following example request uses an email address for `Entity-Id`

```
GET /applications/myapp/environments/prod/configurations/featureflags HTTP/1.1
Host: localhost:2772
Entity-Id: example@AWS-example-email.com
```

You can include the `Entity-Id` header in requests to:

/applications/\$1Application\$1/environments/\$1Environment\$1/configurations/\$1Configuration\$1

To view code samples with `Entity-Id`, see [Using AWS AppConfig Agent to read a freeform configuration profile](appconfig-code-samples-agent-read-configuration.md).

The `Entity-Id` value can be any string that uniquely identifies an entity in your system, such as:
+ Customer ID
+ Email address
+ Account ID
+ Backend job ID
+ Session-scoped identifier (if appropriate)

# Using AWS AppConfig Agent with AWS Lambda


An AWS Lambda extension is a companion process that augments the capabilities of a Lambda function. An extension can start before a function is invoked, run in parallel with a function, and continue to run after a function invocation is processed. In essence, a Lambda extension is like a client that runs in parallel to a Lambda invocation. This parallel client can interface with your function at any point during its lifecycle.

If you use AWS AppConfig feature flags or other dynamic configuration data in a Lambda function, then we recommend that you add the AWS AppConfig Agent Lambda extension as a layer to your Lambda function. This makes calling feature flags simpler, and the extension itself includes best practices that simplify using AWS AppConfig while reducing costs. Reduced costs result from fewer API calls to the AWS AppConfig service and shorter Lambda function processing times. For more information about Lambda extensions, see [Lambda extensions](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-extensions-api.html) in the *AWS Lambda Developer Guide*.

**Note**  
AWS AppConfig is a capability of AWS Systems Manager. AWS AppConfig [pricing](https://aws.amazon.com/systems-manager/pricing/) is based on the number of times a configuration is called and received. Your costs increase if your Lambda performs multiple cold starts and retrieves new configuration data frequently. 

**Topics**
+ [

# Understanding how the AWS AppConfig Agent Lambda extension works
](appconfig-integration-lambda-extensions-how-it-works.md)
+ [

# Adding the AWS AppConfig Agent Lambda extension
](appconfig-integration-lambda-extensions-add.md)
+ [

# Configuring the AWS AppConfig Agent Lambda extension
](appconfig-integration-lambda-extensions-config.md)
+ [

# Understanding available versions of the AWS AppConfig Agent Lambda extension
](appconfig-integration-lambda-extensions-versions.md)
+ [

# Using AWS AppConfig Agent with Amazon EC2 and on-premises machines
](appconfig-integration-ec2.md)
+ [

# Using AWS AppConfig Agent with Amazon ECS and Amazon EKS
](appconfig-integration-containers-agent.md)
+ [

# Retrieving basic and multi-variant feature flags
](appconfig-integration-retrieving-feature-flags.md)
+ [

# Using a manifest to enable additional retrieval features
](appconfig-agent-how-to-use-additional-features.md)
+ [

# Generating a client using the OpenAPI specification
](appconfig-integration-OpenAPI.md)
+ [

# Working with AWS AppConfig Agent local development mode
](appconfig-agent-how-to-use-local-development.md)

# Understanding how the AWS AppConfig Agent Lambda extension works


If you use AWS AppConfig to manage configurations for a Lambda function *without* Lambda extensions, then you must configure your Lambda function to receive configuration updates by integrating with the [StartConfigurationSession](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html) and [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html) API actions.

Integrating the AWS AppConfig Agent Lambda extension with your Lambda function simplifies this process. The extension takes care of calling the AWS AppConfig service, managing a local cache of retrieved data, tracking the configuration tokens needed for the next service calls, and periodically checking for configuration updates in the background. The following diagram shows how it works.

![\[A diagram of how the AWS AppConfig Agent Lambda extension works\]](http://docs.aws.amazon.com/appconfig/latest/userguide/images/AppConfigLambdaExtension.png)


1. You configure the AWS AppConfig Agent Lambda extension as a layer of your Lambda function. 

1. To access its configuration data, your function calls the AWS AppConfig extension at an HTTP endpoint running on `localhost:2772`.

1. The extension maintains a local cache of the configuration data. If the data isn't in the cache, the extension calls AWS AppConfig to get the configuration data.

1. Upon receiving the configuration from the service, the extension stores it in the local cache and passes it to the Lambda function. 

1. AWS AppConfig Agent Lambda extension periodically checks for updates to your configuration data in the background. Each time your Lambda function is invoked, the extension checks the elapsed time since it retrieved a configuration. If the elapsed time is greater than the configured poll interval, the extension calls AWS AppConfig to check for newly deployed data, updates the local cache if there has been a change, and resets the elapsed time. 

**Note**  
Lambda instantiates separate instances corresponding to the concurrency level that your function requires. Each instance is isolated and maintains its own local cache of your configuration data. For more information about Lambda instances and concurrency, see [Managing concurrency for a Lambda function](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html).
The amount of time it takes for a configuration change to appear in a Lambda function, after you deploy an updated configuration from AWS AppConfig, depends on the deployment strategy you used for the deployment and the polling interval you configured for the extension. 

# Adding the AWS AppConfig Agent Lambda extension


To use the AWS AppConfig Agent Lambda extension, you need to add the extension to your Lambda. This can be done by adding the AWS AppConfig Agent Lambda extension to your Lambda function as a layer or by enabling the extension on a Lambda function as a container image.

**Note**  
The AWS AppConfig extension is runtime agnostic and supports all runtimes.

**Before you begin**  
Before you enable the AWS AppConfig Agent Lambda extension, do the following:
+ Organize the configurations in your Lambda function so that you can externalize them into AWS AppConfig.
+ Create AWS AppConfig artifacts and configuration data, including feature flags or freeform configuration data. For more information, see [Creating feature flags and free form configuration data in AWS AppConfig](creating-feature-flags-and-configuration-data.md).
+ Add `appconfig:StartConfigurationSession` and `appconfig:GetLatestConfiguration` to the AWS Identity and Access Management (IAM) policy used by the Lambda function execution role. For more information, see [AWS Lambda execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) in the *AWS Lambda Developer Guide*. For more information about AWS AppConfig permissions, see [Actions, resources, and condition keys for AWS AppConfig](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappconfig.html) in the *Service Authorization Reference*. 

## Adding the AWS AppConfig Agent Lambda extension by using a layer and an ARN


To use the AWS AppConfig Agent Lambda extension, you add the extension to your Lambda function as a layer. For information about how to add a layer to your function, see [Configuring extensions](https://docs.aws.amazon.com/lambda/latest/dg/using-extensions.html#using-extensions-config) in the *AWS Lambda Developer Guide*. The name of the extension in the AWS Lambda console is **AWS-AppConfig-Extension**. Also note that when you add the extension as a layer to your Lambda, you must specify an Amazon Resource Name (ARN). Choose an ARN from one of the following lists that corresponds with the platform and AWS Region where you created the Lambda.
+ [x86-64 platform](appconfig-integration-lambda-extensions-versions.md#appconfig-integration-lambda-extensions-enabling-x86-64)
+ [ARM64 platform](appconfig-integration-lambda-extensions-versions.md#appconfig-integration-lambda-extensions-enabling-ARM64)

If you want to test the extension before you add it to your function, you can verify that it works by using the following code example.

```
import urllib.request
                

def lambda_handler(event, context):
    url = f'http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name'
    config = urllib.request.urlopen(url).read()
    return config
```

To test it, create a new Lambda function for Python, add the extension, and then run the Lambda function. After you run the Lambda function, the AWS AppConfig Lambda function returns the configuration you specified for the http://localhost:2772 path. For information about creating a Lambda function, see [Create a Lambda function with the console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html) in the *AWS Lambda Developer Guide*. 

**Important**  
You can view log data for the AWS AppConfig Agent Lambda extension in the AWS Lambda logs. Log entries are prefaced with `appconfig agent`. Here's an example.  

```
[appconfig agent] 2024/05/07 04:19:01 ERROR retrieve failure for 'SourceEventConfig:SourceEventConfigEnvironment:SourceEventConfigProfile': StartConfigurationSession: api error AccessDenied: User: arn:aws:sts::0123456789:assumed-role/us-east-1-LambdaRole/extension1 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::0123456789:role/test1 (retry in 60s)
```

# Configuring the AWS AppConfig Agent Lambda extension


You can configure the extension by changing the following AWS Lambda environment variables. For more information, see [Using AWS Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html) in the *AWS Lambda Developer Guide*. 

**Prefetching configuration data**

The environment variable `AWS_APPCONFIG_EXTENSION_PREFETCH_LIST` can improve the start-up time of your function. When the AWS AppConfig Agent Lambda extension is initialized, it retrieves the specified configuration from AWS AppConfig before Lambda starts to initialize your function and invoke your handler. In some cases, the configuration data is already available in the local cache before your function requests it. 

To use the prefetch capability, set the value of the environment variable to the path corresponding to your configuration data. For example, if your configuration corresponds to an application, environment, and configuration profile respectively named "my\$1application", "my\$1environment", and "my\$1configuration\$1data", the path would be `/applications/my_application/environments/my_environment/configurations/my_configuration_data`. You can specify multiple configuration items by listing them as a comma-separated list (If you have a resource name that includes a comma, use the resource’s ID value instead of its name). 

**Accessing configuration data from another account**

The AWS AppConfig Agent Lambda extension can retrieve configuration data from another account by specifying an IAM role that grants [permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) to the data. To set this up, follow these steps: 

1. In the account where AWS AppConfig is used to manage the configuration data, create a role with a trust policy that grants the account running the Lambda function access to the `appconfig:StartConfigurationSession` and `appconfig:GetLatestConfiguration` actions, along with the partial or complete ARNs corresponding to the AWS AppConfig configuration resources.

1. In the account running the Lambda function, add the `AWS_APPCONFIG_EXTENSION_ROLE_ARN` environment variable to the Lambda function with the ARN of the role created in step 1.

1. (Optional) If needed, an [external ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) can be specified using the `AWS_APPCONFIG_EXTENSION_ROLE_EXTERNAL_ID` environment variable. Similarly, a session name can be configured using the `AWS_APPCONFIG_EXTENSION_ROLE_SESSION_NAME` environment variable.

**Note**  
Note the following information.  
The AWS AppConfig Agent Lambda extension can only retrieve data from one account. If you specify an IAM role, the extension will not be able to retrieve configuration data from the account in which the Lambda function is running.
AWS Lambda logs information about the AWS AppConfig Agent Lambda extension and the Lambda function by using Amazon CloudWatch Logs. 
The following table includes a **Sample values** column. Depending on your monitor resolution, you might need to scroll to the bottom of the table and then scroll to the right to view the column.


****  

| Environment variable | Details | Default value | Sample values | 
| --- | --- | --- | --- | 
|  `AWS_APPCONFIG_EXTENSION_HTTP_PORT`  |  This environment variable specifies the port on which the local HTTP server that hosts the extension runs.  | 2772 | 2772 | 
|  `AWS_APPCONFIG_EXTENSION_LOG_LEVEL`  |  This environment variable specifies the level of detail that the agent logs. Each level includes the current level and all higher levels. The value is case insensitive. From most to least detailed, the log levels are: `trace`, `debug`, `info`, `warn`, `error`, `fatal`, and `none`. The `trace` log includes detailed information, including timing information, about the agent.  |  info  | trace debug info warn error fatal none | 
|  `AWS_APPCONFIG_EXTENSION_MAX_CONNECTIONS`  |  This environment variable configures the maximum number of connections the extension uses to retrieve configurations from AWS AppConfig.   | 3 | 3 | 
|  `AWS_APPCONFIG_EXTENSION_POLL_INTERVAL_SECONDS`  |  This environment variable controls how often the agent polls AWS AppConfig for updated configuration data. You can specify a number of seconds for the interval. You can also specify a number with a time unit: s for seconds, m for minutes, and h for hours. If a unit isn't specified, the agent defaults to seconds. For example, 60, 60s, and 1m result in the same poll interval.   | 45 | 4545s5m1h | 
|  `AWS_APPCONFIG_EXTENSION_POLL_TIMEOUT_MILLIS`  |  This environment variable controls the maximum amount of time, in milliseconds, the extension waits for a response from AWS AppConfig when refreshing data in the cache. If AWS AppConfig does not respond in the specified amount of time, the extension skips this poll interval and returns the previously updated cached data.  | 3000ms | 3000300ms5s | 
|  `AWS_APPCONFIG_EXTENSION_PREFETCH_LIST`  |  This environment variable specifies the configuration data the agent requests from AWS AppConfig as soon as it starts. Multiple configuration identifiers may be provided in a comma-separated list. Prefetching configuration data from AWS AppConfig can reduce the cold start time of your function significantly.  | None | MyApp:MyEnv:MyConfigabcd123:efgh456:ijkl789MyApp:MyEnv:Config1,MyApp:MyEnv:Config2 | 
| AWS\$1APPCONFIG\$1EXTENSION\$1PROXY\$1HEADERS | This environment variable specifies headers required by the proxy referenced in the AWS\$1APPCONFIG\$1EXTENSION\$1PROXY\$1URL environment variable. The value is a comma-separated list of headers. | None | header: valueh1: v1, h2: v2 | 
| AWS\$1APPCONFIG\$1EXTENSION\$1PROXY\$1URL | This environment variable specifies the proxy URL to use for connections from the AWS AppConfig extension to AWS services. HTTPS and HTTP URLs are supported. | None | http://localhost:7474https://my-proxy.example.com | 
| AWS\$1APPCONFIG\$1EXTENSION\$1ROLE\$1ARN | This environment variable specifies the IAM role ARN corresponding to a role that should be assumed by the AWS AppConfig extension to retrieve configuration. | None | arn:aws:iam::123456789012:role/MyRole | 
| AWS\$1APPCONFIG\$1EXTENSION\$1ROLE\$1EXTERNAL\$1ID | This environment variable specifies the external id to use in conjunction with the assumed role ARN. | None | MyExternalId | 
| AWS\$1APPCONFIG\$1EXTENSION\$1ROLE\$1SESSION\$1NAME | This environment variable specifies the session name to be associated with the credentials for the assumed IAM role. | None | AWSAppConfigAgentSession | 
| AWS\$1APPCONFIG\$1EXTENSION\$1SERVICE\$1REGION | This environment variable specifies an alternative Region the extension should use to call the AWS AppConfig service. When undefined, the extension uses the endpoint in the current Region. | None | us-east-1eu-west-1 | 
|  `AWS_APPCONFIG_EXTENSION_MANIFEST`  |  This environment variable configures AWS AppConfig Agent to take advantage of additional per-configuration features like multi-account retrievals and save configuration to disk. For more information about these features, see [Using a manifest to enable additional retrieval features](appconfig-agent-how-to-use-additional-features.md).   | None | When using AWS AppConfig configuration as manifest: `MyApp:MyEnv:MyManifestConfig`.When loading manifest from disk: `file:/path/to/manifest.json` | 
|  `AWS_APPCONFIG_EXTENSION_WAIT_ON_MANIFEST`  |  This environment variable configures AWS AppConfig Agent to wait until the manifest is processed before completing startup.  | true | truefalse | 

# Understanding available versions of the AWS AppConfig Agent Lambda extension


This topic includes information about AWS AppConfig Agent Lambda extension versions. The AWS AppConfig Agent Lambda extension supports Lambda functions developed for the x86-64 and ARM64 (Graviton2) platforms. To work properly, your Lambda function must be configured to use the specific Amazon Resource Name (ARN) for the AWS Region where it is currently hosted. You can view AWS Region and ARN details later in this section.

**Important**  
Note the following important details about the AWS AppConfig Agent Lambda extension.  
The `GetConfiguration` API action was deprecated on January 28, 2022. Calls to receive configuration data should use the `StartConfigurationSession` and `GetLatestConfiguration` APIs instead. If you are using a version of the AWS AppConfig Agent Lambda extension created after January 28, 2022, you need to configure permissions to the new APIs. For more information, see [Retrieving configuration data without AWS AppConfig Agent](about-data-plane.md).
AWS AppConfig supports all of the versions listed in [Older extension versions](#appconfig-integration-lambda-extensions-enabling-older-versions). We recommend that you periodically update to the latest version to take advantage of extension enhancements.

**Topics**
+ [

## AWS AppConfig Agent Lambda Extension release notes
](#appconfig-integration-lambda-extensions-versions-release-notes)
+ [

## Finding your Lambda extension version number
](#appconfig-integration-lambda-extensions-versions-find)
+ [

## x86-64 platform
](#appconfig-integration-lambda-extensions-enabling-x86-64)
+ [

## ARM64 platform
](#appconfig-integration-lambda-extensions-enabling-ARM64)
+ [

## Older extension versions
](#appconfig-integration-lambda-extensions-enabling-older-versions)

## AWS AppConfig Agent Lambda Extension release notes


The following table describes changes made to recent versions of the AWS AppConfig Lambda extension.


****  

| Version | Launch date | Notes | 
| --- | --- | --- | 
|  2.0.14126.0  |  03/25/2026  |  Minor enhancements and bug fixes.   | 
|  2.0.11962.0  |  02/20/2026  |  Improved environment support, minor enhancements, and bug fixes.   | 
|  2.0.8693  |  11/20/2025  |  Improved environment support, minor enhancements, and bug fixes. Added support for the following AWS Regions [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-lambda-extensions-versions.html)  | 
|  2.0.2037  |  05/12/2025  |  Added `/ping` path, which exposes a simple health check that returns that agent's version. Also includes minor enhancements and bug fixes.   | 
|  2.0.1079  |  12/12/2024  |  Minor enhancements and bug fixes.  | 
|  2.0.719  |  08/08/2024  |  Minor enhancements and bug fixes.  | 
|  2.0.678  |  07/23/2024  |  Enhancements to support feature flag targets, variants, and splits. For more information, see [Creating multi-variant feature flags](appconfig-creating-multi-variant-feature-flags.md).   | 
|  2.0.501  |  07/01/2024  |  Minor enhancements and bug fixes.  | 
|  2.0.358  |  12/01/2023  |  Added support for the following [retrieval features:](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-agent-how-to-use-additional-features.html)  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-lambda-extensions-versions.html)  | 
|  2.0.181  |  08/14/2023  |  Added support for the Israel (Tel Aviv) il-central-1 AWS Region.  | 
|  2.0.165  |  02/21/2023  |  Minor bug fixes. No longer restricting extension use to specific runtime versions via the AWS Lambda console. Added support for the following AWS Regions: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-lambda-extensions-versions.html)  | 
|  2.0.122  |  08/23/2022  |  Added support for a tunneling proxy, which can be configured with the `AWS_APPCONFIG_EXTENSION_PROXY_URL` and `AWS_APPCONFIG_EXTENSION_PROXY_HEADERS` environment variables. Added .NET 6 as a runtime. For more information about environment variables, see [Configuring the AWS AppConfig Agent Lambda extension](appconfig-integration-lambda-extensions-config.md).   | 
|  2.0.58  |  05/03/2022  |  Improved support for Graviton2 (ARM64) processors in Lambda.  | 
|  2.0.45  |  03/15/2022  |  Added support for calling a single feature flag. Previously, customers called feature flags grouped into a configuration profile and had to parse the response client-side. With this release, customers can use a `flag=<flag-name>` parameter when calling the HTTP localhost endpoint to get the value of a single flag. Also added initial support for Graviton2 (ARM64) processors.   | 

## Finding your Lambda extension version number


Use the following procedure to locate the version number of your currently configured AWS AppConfig Agent Lambda extension. To work properly, your Lambda function must be configured to use the specific Amazon Resource Name (ARN) for the AWS Region where it is currently hosted.

1. Sign in to the AWS Management Console and open the AWS Lambda console at [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Choose the Lambda function where you want to add the `AWS-AppConfig-Extension` layer.

1. In the **Layers** section, choose **Add a layer**.

1. In the **Choose a layer** section, choose **AWS-AppConfig-Extension** from the **AWS layers** list.

1. Use the **Version** list to choose a version number.

1. Choose **Add**.

1. Use the **Test** tab to test the function.

1. After the test completes, view the log output. Locate the AWS AppConfig Agent Lambda extension version in the **Details of the Execution** section. This version must match the required URLs for that version. 

## x86-64 platform


When you add the extension as a layer to your Lambda, you must specify an ARN. Choose an ARN from the following table that corresponds with the AWS Region where you created the Lambda. These ARNs are for Lambda functions developed for the x86-64 platform.


**Version 2.0.14126.0**  

| Region | ARN | 
| --- | --- | 
| US East (N. Virginia) | `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:317` | 
| US East (Ohio) | `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:273` | 
| US West (N. California) | `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:383` | 
| US West (Oregon) | `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:369` | 
| Canada (Central) | `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:258` | 
| Canada West (Calgary) | `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension:168` | 
| Europe (Frankfurt) | `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:291` | 
| Europe (Zurich) | `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:216` | 
| Europe (Ireland) | `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:299` | 
| Europe (London) | `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:238` | 
| Europe (Paris) | `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:269` | 
| Europe (Stockholm) | `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:363` | 
| Europe (Milan) | `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:245` | 
| Europe (Spain) | `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:210` | 
| Asia Pacific (Hong Kong) | `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:249` | 
| Asia Pacific (Taipei) | `arn:aws:lambda:ap-east-2:730335625313:layer:AWS-AppConfig-Extension:139` | 
| Asia Pacific (Mumbai) | `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:286` | 
| Asia Pacific (Hyderabad) | `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:213` | 
| Asia Pacific (Tokyo) | `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:268` | 
| Asia Pacific (Seoul) | `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:269` | 
| Asia Pacific (Osaka) | `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:268` | 
| Asia Pacific (Singapore) | `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:254` | 
| Asia Pacific (Sydney) | `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:309` | 
| Asia Pacific (Jakarta) | `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:252` | 
| Asia Pacific (Melbourne) | `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:184` | 
| Asia Pacific (Malaysia) | `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension:157` | 
| Asia Pacific (New Zealand) | `arn:aws:lambda:ap-southeast-6:381491832265:layer:AWS-AppConfig-Extension:87` | 
| Asia Pacific (Thailand) | `arn:aws:lambda:ap-southeast-7:851725616657:layer:AWS-AppConfig-Extension:130` | 
| Africa (Cape Town) | `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:256` | 
| Israel (Tel Aviv) | `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:184` | 
| Mexico (Central) | `arn:aws:lambda:mx-central-1:891376990304:layer:AWS-AppConfig-Extension:138` | 
| South America (São Paulo) | `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:323` | 
| China (Beijing) | `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:236` | 
| China (Ningxia) | `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:237` | 
| AWS GovCloud (US-East) | `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:215` | 
| AWS GovCloud (US-West) | `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:214` | 

## ARM64 platform


When you add the extension as a layer to your Lambda, you must specify an ARN. Choose an ARN from the following table that corresponds with the AWS Region where you created the Lambda. These ARNs are for Lambda functions developed for the ARM64 platform.


**Version 2.0.14126.0**  

| Region | ARN | 
| --- | --- | 
| US East (N. Virginia) | `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:250` | 
| US East (Ohio) | `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:225` | 
| US West (N. California) | `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:260` | 
| US West (Oregon) | `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:271` | 
| Canada (Central) | `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:178` | 
| Canada West (Calgary) | `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension-Arm64:158` | 
| Europe (Frankfurt) | `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:234` | 
| Europe (Zurich) | `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension-Arm64:174` | 
| Europe (Ireland) | `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:237` | 
| Europe (London) | `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:190` | 
| Europe (Paris) | `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:188` | 
| Europe (Stockholm) | `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:222` | 
| Europe (Milan) | `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:173` | 
| Europe (Spain) | `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension-Arm64:171` | 
| Asia Pacific (Hong Kong) | `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:177` | 
| Asia Pacific (Taipei) | `arn:aws:lambda:ap-east-2:730335625313:layer:AWS-AppConfig-Extension-Arm64:113` | 
| Asia Pacific (Mumbai) | `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:228` | 
| Asia Pacific (Hyderabad) | `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension-Arm64:171` | 
| Asia Pacific (Tokyo) | `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:221` | 
| Asia Pacific (Seoul) | `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:177` | 
| Asia Pacific (Osaka) | `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:183` | 
| Asia Pacific (Singapore) | `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:206` | 
| Asia Pacific (Sydney) | `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:252` | 
| Asia Pacific (Jakarta) | `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:189` | 
| Asia Pacific (Melbourne) | `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension-Arm64:169` | 
| Asia Pacific (Malaysia) | `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension-Arm64:132` | 
| Asia Pacific (New Zealand) | `arn:aws:lambda:ap-southeast-6:381491832265:layer:AWS-AppConfig-Extension-Arm64:77` | 
| Asia Pacific (Thailand) | `arn:aws:lambda:ap-southeast-7:851725616657:layer:AWS-AppConfig-Extension-Arm64:129` | 
| Africa (Cape Town) | `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:184` | 
| Israel (Tel Aviv) | `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension-Arm64:167` | 
| Mexico (Central) | `arn:aws:lambda:mx-central-1:891376990304:layer:AWS-AppConfig-Extension-Arm64:137` | 
| South America (São Paulo) | `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:211` | 
| China (Beijing) | `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension-Arm64:158` | 
| China (Ningxia) | `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension-Arm64:159` | 
| AWS GovCloud (US-East) | `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension-Arm64:161` | 
| AWS GovCloud (US-West) | `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension-Arm64:160` | 

## Older extension versions


This section lists the ARNs and AWS Regions for older versions of the AWS AppConfig Lambda extension. This list doesn't contain information for all previous versions of the AWS AppConfig Agent Lambda extension, but it will be updated when new versions are released.

**Topics**
+ [

### Older extension versions (x86-64 platform)
](#appconfig-integration-lambda-extensions-enabling-older-versions-x86-64)
+ [

### Older extension versions (ARM64 platform)
](#appconfig-integration-lambda-extensions-enabling-older-versions-ARM64)

### Older extension versions (x86-64 platform)


The following tables list ARNs and the AWS Regions for older versions of the AWS AppConfig Agent Lambda extension developed for the x86-64 platform.

Date replaced by newer extension: 03/25/2026


**Version 2.0.11962.0**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |   `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:296`   | 
|  US East (Ohio)  |   `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:252`   | 
|  US West (N. California)  |   `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:359`   | 
|  US West (Oregon)  |   `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:348`   | 
|  Canada (Central)  |   `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:239`   | 
|  Canada West (Calgary)  |   `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension:147`   | 
|  Europe (Frankfurt)  |   `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:270`   | 
|  Europe (Zurich)  |   `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:195`   | 
|  Europe (Ireland)  |   `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:278`   | 
|  Europe (London)  |   `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:217`   | 
|  Europe (Paris)  |   `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:248`   | 
|  Europe (Stockholm)  |   `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:342`   | 
|  Europe (Milan)  |   `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:226`   | 
|  Europe (Spain)  |   `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:189`   | 
|  China (Beijing)  |   `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:219`   | 
|  China (Ningxia)  |   `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:221`   | 
|  Asia Pacific (Hong Kong)  |   `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:228`   | 
|  Asia Pacific (Tokyo)  |   `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:245`   | 
|  Asia Pacific (Seoul)  |   `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:248`   | 
|  Asia Pacific (Osaka)  |   `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:247`   | 
|  Asia Pacific (Singapore)  |   `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:233`   | 
|  Asia Pacific (Sydney)  |   `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:288`   | 
|  Asia Pacific (Jakarta)  |   `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:231`   | 
|  Asia Pacific (Melbourne)  |   `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:163`   | 
|  Asia Pacific (Malaysia)  |   `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension:136`   | 
|  Asia Pacific (Mumbai)  |   `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:264`   | 
|  Asia Pacific (Hyderabad)  |   `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:192`   | 
|  Asia Pacific (New Zealand)  |   `arn:aws:lambda:ap-southeast-6:381491832265:layer:AWS-AppConfig-Extension:58`   | 
|  Asia Pacific (Thailand)  |   `arn:aws:lambda:ap-southeast-7:851725616657:layer:AWS-AppConfig-Extension:109`   | 
|  Asia Pacific (Taipei)  |   `arn:aws:lambda:ap-east-2:730335625313:layer:AWS-AppConfig-Extension:118`   | 
|  South America (São Paulo)  |   `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:302`   | 
|  Mexico (Central)  |   `arn:aws:lambda:mx-central-1:891376990304:layer:AWS-AppConfig-Extension:115`   | 
|  Africa (Cape Town)  |   `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:234`   | 
|  Israel (Tel Aviv)  |   `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:168`   | 
|  Middle East (UAE)  |   `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:206`   | 
|  Middle East (Bahrain)  |   `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:244`   | 
|  AWS GovCloud (US-East)  |   `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:184`   | 
|  AWS GovCloud (US-West)  |   `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:182`   | 

Date replaced by newer extension: 02/17/2026


**Version 2.0.8693**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |   `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:279`   | 
|  US East (Ohio)  |   `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:235`   | 
|  US West (N. California)  |   `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:348`   | 
|  US West (Oregon)  |   `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:335`   | 
|  Canada (Central)  |   `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:228`   | 
|  Canada West (Calgary)  |   `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension:130`   | 
|  Europe (Frankfurt)  |   `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:261`   | 
|  Europe (Zurich)  |   `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:178`   | 
|  Europe (Ireland)  |   `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:261`   | 
|  Europe (London)  |   `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:207`   | 
|  Europe (Paris)  |   `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:235`   | 
|  Europe (Stockholm)  |   `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:333`   | 
|  Europe (Milan)  |   `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:215`   | 
|  Europe (Spain)  |   `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:176`   | 
| China (Beijing) |   `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:205`   | 
| China (Ningxia) |   `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:203`   | 
|  Asia Pacific (Hong Kong)  |   `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:217`   | 
|  Asia Pacific (Tokyo)  |   `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:228`   | 
|  Asia Pacific (Seoul)  |   `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:239`   | 
| Asia Pacific (Osaka) |   `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:234`   | 
|  Asia Pacific (Singapore)  |   `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:224`   | 
|  Asia Pacific (Sydney)  |   `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:272`   | 
|  Asia Pacific (Jakarta)  |   `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:222`   | 
|  Asia Pacific (Melbourne)  |   `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:152`   | 
|  Asia Pacific (Malaysia)  |   `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension:127`   | 
|  Asia Pacific (Mumbai)  |   `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:248`   | 
|  Asia Pacific (Hyderabad)  |   `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:179`   | 
|  Asia Pacific (New Zealand)  |   `arn:aws:lambda:ap-southeast-6:381491832265:layer:AWS-AppConfig-Extension:41`   | 
|  Asia Pacific (Thailand)  |   `arn:aws:lambda:ap-southeast-7:851725616657:layer:AWS-AppConfig-Extension:98`   | 
|  Asia Pacific (Taipei)  |   `arn:aws:lambda:ap-east-2:730335625313:layer:AWS-AppConfig-Extension:100 `   | 
|  South America (São Paulo)  |   `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:288`   | 
|  Mexico (Central)  |   `arn:aws:lambda:mx-central-1:891376990304:layer:AWS-AppConfig-Extension:98`   | 
|  Africa (Cape Town)  |   `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:225`   | 
|  Israel (Tel Aviv)  |   `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:155`   | 
|  Middle East (UAE)  |   `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:195`   | 
|  Middle East (Bahrain)  |   `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:227`   | 
| AWS GovCloud (US-East) |   `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:184`   | 
| AWS GovCloud (US-West) |   `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:182`   | 

Date replaced by newer extension: 11/20/2025


**Version 2.0.2037**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:207`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:162`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:258`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:262`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:152`  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension:57`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:189`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:106`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:189`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:133`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:162`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:259`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:140`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:102`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:133`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:131`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:142`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:155`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:165`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:159`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:156`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:199`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:150`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:78`  | 
|  Asia Pacific (Malaysia)  |  `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension:55`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:175`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:104`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:215`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:152`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:81`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:120`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:154`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:110`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:109`  | 

Date replaced by newer extension: 05/20/2025


**Version 2.0.1079**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:174`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:133`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:223`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:230`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:123`  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension:27`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:159`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:77`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:160`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:121`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:133`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:225`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:111`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:74`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:106`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:104`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:113`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:126`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:136`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:130`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:134`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:165`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:121`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:49`  | 
|  Asia Pacific (Malaysia)  |  `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension:26`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:146`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:75`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:179`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:123`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:52`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:91`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:125`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:80`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:80`  | 

Date replaced by newer extension: 12/12/2024


**Version 2.0.719**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:173`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:132`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:221`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:229`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:121`  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension:27`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:158`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:75`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:159`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:120`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:132`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:224`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:110`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:72`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:104`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:102`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:112`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:125`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:135`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:129`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:132`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:164`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:120`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:48`  | 
|  Asia Pacific (Malaysia)  |  `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension:25`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:145`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:74`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:178`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:122`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:50`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:90`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:124`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:79`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:79`  | 

Date replaced by newer extension: 08/08/2024


**Version 2.0.678**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:167`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:126`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:213`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:223`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:116`  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension:21`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:152`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:70`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:153`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:114`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:126`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:218`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:104`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:67`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:99`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:97`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:106`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:119`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:129`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:123`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:127`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:158`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:114`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:42`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:139`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:68`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:172`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:116`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:45`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:84`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:118`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:73`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:73`  | 

Date replaced by newer extension: 07/23/2024


**Version 2.0.501**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:153`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:112`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:195`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:210`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:101`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:136`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:53`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:144`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:99`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:111`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:201`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:89`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:50`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:85`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:83`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:91`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:104`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:114`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:107`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:112`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:142`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:98`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:26`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:125`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:53`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:155`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:102`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:28`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:68`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:103`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:59`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:59`  | 

Date replaced by newer extension: 07/01/2024


**Version 2.0.358**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:128`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:93`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:141`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:161`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:93`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:106`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:47`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:125`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:93`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:98`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:159`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:83`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:44`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:76`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:76`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:83`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:98`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:108`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:101`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:106`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:106`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:79`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:20`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:107`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:47`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:128`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:83`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:22`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:49`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:85`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:54`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:54`  | 

Date replaced by newer extension: 12/01/2023


**Version 2.0.181**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:113`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:81`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:124`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:146`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:81`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:93`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:32`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:110`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:81`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:82`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:142`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:73`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:29`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:68`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:68`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:73`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:84`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:93`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:86`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:91`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:93`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:64`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:5`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:94`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:32`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:113`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:73`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension:7`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:34`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:73`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:46`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:46`  | 

Date replaced by newer extension: 08/14/2023


**Version 2.0.165**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:110`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:79`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:121`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:143`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:79`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:91`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension:29`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:108`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:79`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:80`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:139`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:71`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension:26`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:66`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:66`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:71`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:82`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:91`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:84`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:89`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:91`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:60`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension:2`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:92`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension:29`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:110`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:71`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension:31`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:71`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:44`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:44`  | 

Date replaced by newer extension: 02/21/2023


**Version 2.0.122**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia) |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:82`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:59`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:93`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:114`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:59`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:70`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:82`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:59`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:60`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:111`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:54`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:52`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:52`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:54`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:62`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:70`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:59`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:64`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:70`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:37`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:71`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:82`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:54`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:54`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:29`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:29`  | 

Date replaced by newer extension: 08/23/2022


**Version 2.0.58**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)   |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:69`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:50`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:78`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:101`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:50`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:59`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:69`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:50`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:51`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:98`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:47`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:46`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:46`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:47`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:49`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:59`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:46`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:51`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:59`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:24`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:60`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:69`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:47`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:47`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:23`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:23`  | 

Date replaced by newer extension: 04/21/2022


**Version 2.0.45**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:68`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:49`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:77`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:100`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:49`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:58`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:68`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:49`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:50`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:97`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:46`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:45`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:45`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:46`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:48`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:58`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:45`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:50`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:58`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:23`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:59`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:68`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:46`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:46`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:22`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:22`  | 

Date replaced by newer extension: 03/15/2022


**Version 2.0.30**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:61`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension:47`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension:61`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension:89`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension:47`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension:54`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension:59`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:47`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension:48`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension:86`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension:44`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension:43`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension:43`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension:44`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension:45`  | 
| Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension:42`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension:54`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension:45`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:54`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension:13`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension:55`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension:61`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension:44`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension:44`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension:20`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension:20`  | 

### Older extension versions (ARM64 platform)


The following tables list ARNs and the AWS Regions for older versions of the AWS AppConfig Agent Lambda extension developed for the ARM64 platform.

Date replaced by newer extension: 03/25/2026


**Version 2.0.11962.0**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |   `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:229`   | 
|  US East (Ohio)  |   `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:204`   | 
|  US West (N. California)  |   `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:236`   | 
|  US West (Oregon)  |   `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:250`   | 
|  Canada (Central)  |   `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:159`   | 
|  Canada West (Calgary)  |   `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension-Arm64:137`   | 
|  Europe (Frankfurt)  |   `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:213`   | 
|  Europe (Zurich)  |   `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension-Arm64:153`   | 
|  Europe (Ireland)  |   `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:216`   | 
|  Europe (London)  |   `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:169`   | 
|  Europe (Paris)  |   `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:167`   | 
|  Europe (Stockholm)  |   `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:201`   | 
|  Europe (Milan)  |   `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:154`   | 
|  Europe (Spain)  |   `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension-Arm64:150`   | 
|  Asia Pacific (Hong Kong)  |   `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:156`   | 
|  Asia Pacific (Taipei)  |   `arn:aws:lambda:ap-east-2:730335625313:layer:AWS-AppConfig-Extension-Arm64:92`   | 
|  Asia Pacific (Tokyo)  |   `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:198`   | 
|  Asia Pacific (Seoul)  |   `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:156`   | 
|  Asia Pacific (Osaka)  |   `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:162`   | 
|  Asia Pacific (Singapore)  |   `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:185`   | 
|  Asia Pacific (Sydney)  |   `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:231`   | 
|  Asia Pacific (Jakarta)  |   `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:168`   | 
|  Asia Pacific (Melbourne)  |   `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension-Arm64:148`   | 
|  Asia Pacific (Malaysia)  |   `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension-Arm64:111`   | 
|  Asia Pacific (New Zealand)  |   `arn:aws:lambda:ap-southeast-6:381491832265:layer:AWS-AppConfig-Extension-Arm64:48`   | 
|  Asia Pacific (Thailand)  |   `arn:aws:lambda:ap-southeast-7:851725616657:layer:AWS-AppConfig-Extension-Arm64:108`   | 
|  Asia Pacific (Mumbai)  |   `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:206`   | 
|  Asia Pacific (Hyderabad)  |   `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension-Arm64:150`   | 
|  South America (São Paulo)  |   `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:190`   | 
|  Mexico (Central)  |   `arn:aws:lambda:mx-central-1:891376990304:layer:AWS-AppConfig-Extension-Arm64:114`   | 
|  Africa (Cape Town)  |   `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:162`   | 
|  Middle East (UAE)  |   `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension-Arm64:162`   | 
|  Middle East (Bahrain)  |   `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension-Arm64:172`   | 
|  Israel (Tel Aviv)  |   `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension-Arm64:151`   | 
|  China (Beijing)  |   `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension-Arm64:141`   | 
|  China (Ningxia)  |   `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension-Arm64:143`   | 
|  AWS GovCloud (US-East)  |   `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension-Arm64:130`   | 
|  AWS GovCloud (US-West)  |   `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension-Arm64:128`   | 

Date replaced by newer extension: 02/17/2026


**Version 2.0.8693**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:212 `  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:187 `  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:225 `  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:237 `  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:148 `  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension-Arm64:120 `  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:204 `  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension-Arm64:136 `  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:199 `  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:159`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:154`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:192 `  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:143 `  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension-Arm64:137 `  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:145 `  | 
|  Asia Pacific (Taipei)  |  `arn:aws:lambda:ap-east-2:730335625313:layer:AWS-AppConfig-Extension-Arm64:74 `  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:181 `  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:147 `  | 
|  Asia Pacific (Osaka)  |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:149 `  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:176 `  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:215 `  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:159 `  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension-Arm64:137 `  | 
|  Asia Pacific (Malaysia)  |  `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension-Arm64:102 `  | 
|  Asia Pacific (New Zealand)  |  `arn:aws:lambda:ap-southeast-6:381491832265:layer:AWS-AppConfig-Extension-Arm64:31 `  | 
|  Asia Pacific (Thailand)  |  `arn:aws:lambda:ap-southeast-7:851725616657:layer:AWS-AppConfig-Extension-Arm64:97 `  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:190 `  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension-Arm64:137 `  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:176 `  | 
|  Mexico (Central)  |  `arn:aws:lambda:mx-central-1:891376990304:layer:AWS-AppConfig-Extension-Arm64:97 `  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:153 `  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension-Arm64:151 `  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension-Arm64:155 `  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension-Arm64:138 `  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension-Arm64:127 `  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension-Arm64:125 `  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension-Arm64:130 `  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension-Arm64:128 `  | 

Date replaced by newer extension: 11/20/2025


**Version 2.0.2037**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:140`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:114`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:135`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:164`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:72`  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension-Arm64:47`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:132`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension-Arm64:64`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:127`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:85`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:81`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:118`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:68`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension-Arm64:63`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:70`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:108`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:73`  | 
|  Asia Pacific (Osaka)  |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:74`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:108`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:142`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:87`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension-Arm64:63`  | 
|  Asia Pacific (Malaysia)  |  `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension-Arm64:30`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:117`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension-Arm64:62`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:103`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:80`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension-Arm64:76`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension-Arm64:82`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension-Arm64:64`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension-Arm64:55`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension-Arm64:53`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension-Arm64:56`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension-Arm64:55`  | 

Date replaced by newer extension: 05/20/2025


**Version 2.0.1079**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:107`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:85`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:100`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:132`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:43`  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension-Arm64:18`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:102`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension-Arm64:35`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:98`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:73`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:52`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:84`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:39`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension-Arm64:35`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:41`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:79`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:44`  | 
|  Asia Pacific (Osaka)  |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:45`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:86`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:108`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:58`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension-Arm64:34`  | 
|  Asia Pacific (Malaysia)  |  `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:88`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension-Arm64:33`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:67`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:51`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension-Arm64:47`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension-Arm64:53`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension-Arm64:35`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension-Arm64:28`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension-Arm64:26`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension-Arm64:26`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension-Arm64:26`  | 

Date replaced by newer extension: 12/12/2024


**Version 2.0.678**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:106`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:84`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:98`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:131`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:41`  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension-Arm64:17`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:101`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension-Arm64:33`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:97`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:72`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:51`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:83`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:38`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension-Arm64:33`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:40`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:78`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:43`  | 
|  Asia Pacific (Osaka)  |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:44`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:84`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:107`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:57`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension-Arm64:33`  | 
|  Asia Pacific (Malaysia)  |  `arn:aws:lambda:ap-southeast-5:631746059939:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:87`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension-Arm64:32`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:66`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:50`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension-Arm64:46`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension-Arm64:52`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension-Arm64:33`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension-Arm64:26`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension-Arm64:24`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension-Arm64:25`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension-Arm64:25`  | 

Date replaced by newer extension: 08/08/2024


**Version 2.0.678**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:100`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:78`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:90`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:125`  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension:11`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:36`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:95`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension-Arm64:28`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:91`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:66`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:45`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:77`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:32`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension-Arm64:28`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:34`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:72`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:37`  | 
|  Asia Pacific (Osaka)  |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:38`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:79`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:101`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:51`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension-Arm64:27`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:81`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension-Arm64:26`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:60`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:44`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension-Arm64:40`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension-Arm64:46`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension-Arm64:28`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension-Arm64:21`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension-Arm64:19`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension-Arm64:19`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension-Arm64:19`  | 

Date replaced by newer extension: 07/23/2024


**Version 2.0.501**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:86`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:64`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:72`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:112`  | 
|  Canada West (Calgary)  |  `arn:aws:lambda:ca-west-1:436199621743:layer:AWS-AppConfig-Extension:1`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:21`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:79`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension-Arm64:11`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:82`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:51`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:30`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:60`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:17`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension-Arm64:11`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:19`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:57`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:22`  | 
|  Asia Pacific (Osaka)  |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:22`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:64`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:85`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:35`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension-Arm64:11`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:67`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension-Arm64:11`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:43`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:30`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension-Arm64:24`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension-Arm64:31`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension-Arm64:11`  | 
| China (Beijing) |  `arn:aws-cn:lambda:cn-north-1:615057806174:layer:AWS-AppConfig-Extension-Arm64:7`  | 
| China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:615084187847:layer:AWS-AppConfig-Extension-Arm64:5`  | 
| AWS GovCloud (US-East) |  `arn:aws-us-gov:lambda:us-gov-east-1:946561847325:layer:AWS-AppConfig-Extension-Arm64:5`  | 
| AWS GovCloud (US-West) |  `arn:aws-us-gov:lambda:us-gov-west-1:946746059096:layer:AWS-AppConfig-Extension-Arm64:5`  | 

Date replaced by newer extension: 07/01/2024


**Version 2.0.358**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:61`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:45`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:18`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:63`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:13`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:49`  | 
|  Europe (Zurich)  |  `arn:aws:lambda:eu-central-2:758369105281:layer:AWS-AppConfig-Extension-Arm64:5`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:63`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:45`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:17`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:18`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:11`  | 
|  Europe (Spain)  |  `arn:aws:lambda:eu-south-2:586093569114:layer:AWS-AppConfig-Extension-Arm64:5`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:11`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:51`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:16`  | 
|  Asia Pacific (Osaka)  |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:16`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:58`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:49`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:16`  | 
|  Asia Pacific (Melbourne)  |  `arn:aws:lambda:ap-southeast-4:307021474294:layer:AWS-AppConfig-Extension-Arm64:5`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:49`  | 
|  Asia Pacific (Hyderabad)  |  `arn:aws:lambda:ap-south-2:489524808438:layer:AWS-AppConfig-Extension-Arm64:5`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:16`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:11`  | 
|  Middle East (UAE)  |  `arn:aws:lambda:me-central-1:662846165436:layer:AWS-AppConfig-Extension-Arm64:5`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension-Arm64:13`  | 
|  Israel (Tel Aviv)  |  `arn:aws:lambda:il-central-1:895787185223:layer:AWS-AppConfig-Extension-Arm64:5`  | 

Date replaced by newer extension: 12/01/2023


**Version 2.0.181**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:46`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:33`  | 
|  US West (N. California)  |  `arn:aws:lambda:us-west-1:958113053741:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:48`  | 
|  Canada (Central)  |  `arn:aws:lambda:ca-central-1:039592058896:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:36`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:48`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:33`  | 
|  Europe (Paris)  |  `arn:aws:lambda:eu-west-3:493207061005:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Europe (Stockholm)  |  `arn:aws:lambda:eu-north-1:646970417810:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Europe (Milan)  |  `arn:aws:lambda:eu-south-1:203683718741:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Hong Kong)  |  `arn:aws:lambda:ap-east-1:630222743974:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:37`  | 
|  Asia Pacific (Seoul)  |  `arn:aws:lambda:ap-northeast-2:826293736237:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Osaka)  |  `arn:aws:lambda:ap-northeast-3:706869817123:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:43`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:36`  | 
|  Asia Pacific (Jakarta)  |  `arn:aws:lambda:ap-southeast-3:418787028745:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:36`  | 
|  South America (São Paulo)  |  `arn:aws:lambda:sa-east-1:000010852771:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Africa (Cape Town)  |  `arn:aws:lambda:af-south-1:574348263942:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Middle East (Bahrain)  |  `arn:aws:lambda:me-south-1:559955524753:layer:AWS-AppConfig-Extension-Arm64:1`  | 

Date replaced by newer extension: 03/30/2023


**Version 2.0.165**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:43`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:31`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:45`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:34`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:46`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:31`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:35`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:41`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:34`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:34`  | 

Date replaced by newer extension: 02/21/2023


**Version 2.0.122**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)   |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:15`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:11`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:16`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:13`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:20`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:11`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:15`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:16`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:13`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:13`  | 

Date replaced by newer extension: 08/23/2022


**Version 2.0.58**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:2`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:2`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:3`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:2`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:7`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:2`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:2`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:3`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:2`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:2`  | 

Date replaced by newer extension: 04/21/2022


**Version 2.0.45**  

| Region | ARN | 
| --- | --- | 
|  US East (N. Virginia)  |  `arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  US East (Ohio)  |  `arn:aws:lambda:us-east-2:728743619870:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  US West (Oregon)  |  `arn:aws:lambda:us-west-2:359756378197:layer:AWS-AppConfig-Extension-Arm64:2`  | 
|  Europe (Frankfurt)  |  `arn:aws:lambda:eu-central-1:066940009817:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Europe (Ireland)  |  `arn:aws:lambda:eu-west-1:434848589818:layer:AWS-AppConfig-Extension-Arm64:6`  | 
|  Europe (London)  |  `arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Tokyo)  |  `arn:aws:lambda:ap-northeast-1:980059726660:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Singapore)  |  `arn:aws:lambda:ap-southeast-1:421114256042:layer:AWS-AppConfig-Extension-Arm64:2`  | 
|  Asia Pacific (Sydney)  |  `arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension-Arm64:1`  | 
|  Asia Pacific (Mumbai)  |  `arn:aws:lambda:ap-south-1:554480029851:layer:AWS-AppConfig-Extension-Arm64:1`  | 

# Using AWS AppConfig Agent with Amazon EC2 and on-premises machines


You can integrate AWS AppConfig with applications running on your Amazon Elastic Compute Cloud (Amazon EC2) Linux instances by using AWS AppConfig Agent. The agent enhances application processing and management in the following ways:
+ The agent calls AWS AppConfig on your behalf by using an AWS Identity and Access Management (IAM) role and managing a local cache of configuration data. By pulling configuration data from the local cache, your application requires fewer code updates to manage configuration data, retrieves configuration data in milliseconds, and isn't affected by network issues that can disrupt calls for such data.\$1
+ The agent offers a native experience for retrieving and resolving AWS AppConfig feature flags.
+ Out of the box, the agent provides best practices for caching strategies, polling intervals, and availability of local configuration data while tracking the configuration tokens needed for subsequent service calls.
+ While running in the background, the agent periodically polls the AWS AppConfig data plane for configuration data updates. Your application can retrieve the data by connecting to localhost on port 2772 (a customizable default port value) and calling HTTP GET to retrieve the data.

\$1AWS AppConfig Agent caches data the first time the service retrieves your configuration data. For this reason, the first call to retrieve data is slower than subsequent calls.

**Topics**
+ [

## Step 1: (Required) Creating resources and configuring permissions
](#appconfig-integration-ec2-resources-and-permissions)
+ [

## Step 2: (Required) Installing and starting AWS AppConfig Agent on Amazon EC2 instances
](#appconfig-integration-ec2-installing)
+ [

## Step 3: (Optional, but recommended) Sending log files to CloudWatch Logs
](#appconfig-integration-ec2-logs)
+ [

## Step 4: (Optional) Using environment variables to configure AWS AppConfig Agent for Amazon EC2
](#appconfig-integration-ec2-configuring)
+ [

## Step 5: (Required) Retrieving configuration data
](#appconfig-integration-ec2-retrieving-data)
+ [

## Step 6 (Optional, but recommended): Automating updates to AWS AppConfig Agent
](#appconfig-integration-ec2-updating-agent)

## Step 1: (Required) Creating resources and configuring permissions


To integrate AWS AppConfig with applications running on your Amazon EC2 instances, you must create AWS AppConfig artifacts and configuration data, including feature flags or freeform configuration data. For more information, see [Creating feature flags and free form configuration data in AWS AppConfig](creating-feature-flags-and-configuration-data.md).

To retrieve configuration data hosted by AWS AppConfig, your applications must be configured with access to the AWS AppConfig data plane. To give your applications access, update the IAM permissions policy that is assigned to the Amazon EC2 instance role. Specifically, you must add the `appconfig:StartConfigurationSession` and `appconfig:GetLatestConfiguration` actions to the policy. Here is an example:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "appconfig:StartConfigurationSession",
                "appconfig:GetLatestConfiguration"
            ],
            "Resource": "*"
        }
    ]
}
```

------

For more information about adding permissions to a policy, see [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) in the *IAM User Guide*.

## Step 2: (Required) Installing and starting AWS AppConfig Agent on Amazon EC2 instances


AWS AppConfig Agent is hosted in an Amazon Simple Storage Service (Amazon S3) bucket that is managed by AWS. Use the following procedure to install the latest version of the agent on your Linux instance. If your application is distributed across multiple instances, then you must perform this procedure on each instance that hosts the application.

**Note**  
Note the following information:  
AWS AppConfig Agent is available for Linux operating systems running kernel version 4.15 or greater. Debian-based systems, such as Ubuntu, are not supported.
The agent supports x86\$164 and ARM64 architectures. 
For distributed applications, we recommend adding the install and startup commands to the Amazon EC2 user data of your Auto Scaling group. If you do, each instance runs the commands automatically. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*. Additionally, see [Tutorial: Configure user data to retrieve the target lifecycle state through instance metadata](https://docs.aws.amazon.com/autoscaling/ec2/userguide/tutorial-lifecycle-hook-instance-metadata.html) in the *Amazon EC2 Auto Scaling User Guide*.
The procedures throughout this topic describe how to perform actions like installing the agent by logging into the instance to run the command. You can run the commands from a local client machine and target one or more instances by using Run Command, which is a tool in AWS Systems Manager. For more information, see [AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) in the *AWS Systems Manager User Guide*.
AWS AppConfig Agent on Amazon EC2 Linux instances is a `systemd` service.

**To install and start AWS AppConfig Agent on an instance**

1. Log into your Linux instance.

1. Open a terminal and run one of the following commands with Administrator permissions:

   **x86\$164**

   ```
   sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm
   ```

   **ARM64**

   ```
   sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/arm64/latest/aws-appconfig-agent.rpm
   ```

   If you want to install a specific version of AWS AppConfig Agent, replace `latest` in the URL with a specific version number. Here's an example for x86\$164:

   ```
   sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/2.0.2/aws-appconfig-agent.rpm
   ```

1. Run the following command to start the agent:

   ```
   sudo systemctl start aws-appconfig-agent
   ```

1. Run the following command to verify the agent is running:

   ```
   sudo systemctl status aws-appconfig-agent
   ```

   If successful, the command returns information like the following:

   ```
   aws-appconfig-agent.service - aws-appconfig-agent
     ...
     Active: active (running) since Mon 2023-07-26 00:00:00 UTC; 0s ago
     ...
   ```

**Note**  
To stop the agent, run the following command:  

```
sudo systemctl stop aws-appconfig-agent
```

## Step 3: (Optional, but recommended) Sending log files to CloudWatch Logs


By default, AWS AppConfig Agent publishes logs to STDERR. Systemd redirects STDOUT and STDERR for all services running on the Linux instance to the systemd journal. You can view and manage log data in the systemd journal if you're running AWS AppConfig Agent on only one or two instances. A better solution, a solution we highly recommend for distributed applications, is to write log files to disk and then use Amazon CloudWatch agent to upload the log data to the AWS cloud. Additionally, you can configure the CloudWatch agent to delete old log files from your instance, which prevents your instance from running out of disk space.

To enable logging to disk, you must set the `LOG_PATH` environment variable, as described in [Step 4: (Optional) Using environment variables to configure AWS AppConfig Agent for Amazon EC2](#appconfig-integration-ec2-configuring).

To get started with the CloudWatch agent, see [Collect metrics and logs from Amazon EC2 instances and on-premises servers with the CloudWatch agent](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) in the *Amazon CloudWatch User Guide*. You can use Quick Setup, a tool in Systems Manager to quickly install the CloudWatch agent. For more information, see [Quick Setup Host Management](https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-host-management.html) in the *AWS Systems Manager User Guide*. 

**Warning**  
If you choose to write log files to disk without using the CloudWatch agent, you must delete old log files. AWS AppConfig Agent automatically rotates log files every hour. If you don't delete old log files, your instance can run out of disk space. 

After you install the CloudWatch agent on your instance, create a CloudWatch agent configuration file. The configuration file instructs CloudWatch agent on how to work with AWS AppConfig Agent log files. For more information about creating a CloudWatch agent configuration file, see [Create the CloudWatch agent configuration file](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file.html).

Add the following `logs` section to the CloudWatch agent configuration file on the instance and save your changes:

```
"logs": {
  "logs_collected": {
    "files": {
      "collect_list": [
        {
          "file_path": "/path_you_specified_for_logging",
          "log_group_name": "${YOUR_LOG_GROUP_NAME}/aws-appconfig-agent.log",
          "auto_removal": true
        },
        ...
      ]
    },
    ...
  },
  ...
}
```

If the value of `auto_removal` is `true`, the CloudWatch agent automatically deletes rotated AWS AppConfig Agent log files.

## Step 4: (Optional) Using environment variables to configure AWS AppConfig Agent for Amazon EC2


You can configure AWS AppConfig Agent for Amazon EC2 by using environment variables. To set environment variables for a `systemd` service, you create a drop-in unit file. The following example shows how to create drop-in unit file to set the AWS AppConfig Agent logging level to `DEBUG`.

**Example of how to create a drop-in unit file for environment variables**

1. Log into your Linux instance.

1. Open a terminal and run the following command with Administrator permissions. The command creates a configuration directory:

   ```
   sudo mkdir /etc/systemd/system/aws-appconfig-agent.service.d
   ```

1. Run the following command to create the drop-in unit file. Replace *file\$1name* with a name for the file. The extension must be `.conf`:

   ```
   sudo touch /etc/systemd/system/aws-appconfig-agent.service.d/file_name.conf
   ```

1. Enter information in the drop-in unit file. The following example adds a `Service` section that defines an environment variable. The example sets AWS AppConfig Agent log level to `DEBUG`.

   ```
   [Service]
   Environment=LOG_LEVEL=DEBUG
   ```

1. Run the following command to reload the systemd configuration:

   ```
   sudo systemctl daemon-reload
   ```

1. Run the following command to restart AWS AppConfig Agent:

   ```
   sudo systemctl restart aws-appconfig-agent
   ```

You can configure AWS AppConfig Agent for Amazon EC2 by specifying the following environment variables in a drop-in unit file.

**Note**  
The following table includes a **Sample values** column. Depending on your monitor resolution, you might need to scroll to the bottom of the table and then scroll to the right to view the column.


****  

| Environment variable | Details | Default value | Sample value(s) | 
| --- | --- | --- | --- | 
|  `ACCESS_TOKEN`  |  This environment variable defines a token that must be provided when requesting configuration data from the agent HTTP server. The value of the token must be set in the HTTP request authorization header with an authorization type of `Bearer`. Here is an example. <pre>GET /applications/my_app/...<br />                  Host: localhost:2772<br />                  Authorization: Bearer <token value></pre>  | None | MyAccessToken | 
|  `BACKUP_DIRECTORY`  |  This environment variable enables AWS AppConfig Agent to save a backup of each configuration it retrieves to the specified directory.   Configurations backed up to disk are not encrypted. If your configuration contains sensitive data, AWS AppConfig recommends that you practice the principle of least privilege with your filesystem permissions. For more information, see [Security in AWS AppConfig](appconfig-security.md).   | None | /path/to/backups | 
|  `HTTP_PORT`  |  This environment variable specifies the port on which the HTTP server for the agent runs.  | 2772 | 2772 | 
|  `HTTP_HOST`  |  The HTTP\$1HOST variable controls how the AWS AppConfig Agent binds to network interfaces. The binding behavior differs based on the runtime environment to ensure optimal security and accessibility.  |   ECS, EKS  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html) EC2 and on-prem [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html)  |  Custom Configuration Options. You can override the default behavior using these values: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html)  | 
|  `LOG_LEVEL`  |  This environment variable specifies the level of detail that the agent logs. Each level includes the current level and all higher levels. The value is case insensitive. From most to least detailed, the log levels are: `trace`, `debug`, `info`, `warn`, `error`, `fatal`, and `none`. The `trace` log includes detailed information, including timing information, about the agent.  |  info  |  trace debug info warn error fatal none  | 
|  `LOG_PATH`  |  The disk location where logs are written. If not specified, logs are written to stderr.  |  None  | /path/to/logs/agent.log | 
|  `MANIFEST`  |  This environment variable configures AWS AppConfig Agent to take advantage of additional per-configuration features like multi-account retrievals and save configuration to disk. For more information about these features, see [Using a manifest to enable additional retrieval features](appconfig-agent-how-to-use-additional-features.md).   | None | When using AWS AppConfig configuration as manifest: `MyApp:MyEnv:MyManifestConfig`.When loading manifest from disk: `file:/path/to/manifest.json` | 
|  `MAX_CONNECTIONS`  |  This environment variable configures the maximum number of connections that the agent uses to retrieve configurations from AWS AppConfig.   | 3 | 3 | 
|  `POLL_INTERVAL`  |  This environment variable controls how often the agent polls AWS AppConfig for updated configuration data. You can specify a number of seconds for the interval. You can also specify a number with a time unit: s for seconds, m for minutes, and h for hours. If a unit isn't specified, the agent defaults to seconds. For example, 60, 60s, and 1m result in the same poll interval.   | 45 seconds | 4545s5m1h | 
|  `PREFETCH_LIST`  |  This environment variable specifies the configuration data the agent requests from AWS AppConfig as soon as it starts. Multiple configuration identifiers may be provided in a comma-separated list.  | None | MyApp:MyEnv:MyConfigabcd123:efgh456:ijkl789MyApp:MyEnv:Config1,MyApp:MyEnv:Config2 | 
|  `PRELOAD_BACKUPS`  |  If set to `true`, AWS AppConfig Agent loads configuration backups found in the `BACKUP_DIRECTORY` into memory and immediately checks to see if a newer version exists from the service. If set to `false`, AWS AppConfig Agent only loads the contents from a configuration backup if it cannot retrieve configuration data from the service, for example if there is a problem with your network.  | true | true false  | 
| PROXY\$1HEADERS | This environment variable specifies headers that are required by the proxy referenced in the PROXY\$1URL environment variable. The value is a comma-separated list of headers.  | None |  header: value h1: v1, h2: v2  | 
| PROXY\$1URL | This environment variable specifies the proxy URL to use for connections from the agent to AWS services, including AWS AppConfig. HTTPS and HTTP URLs are supported. | None | http://localhost:7474https://my-proxy.example.com | 
|  `REQUEST_TIMEOUT`  |  This environment variable controls the amount of time the agent waits for a response from AWS AppConfig. If the service does not respond, the request fails. If the request is for the initial data retrieval, the agent returns an error to your application. If the timeout occurs during a background check for updated data, the agent logs the error and tries again after a short delay. You can specify the number of milliseconds for the timeout. You can also specify a number with a time unit: ms for milliseconds and s for seconds. If a unit isn't specified, the agent defaults to milliseconds. As an example, 5000, 5000ms and 5s result in the same request timeout value.  | 3000ms | 30003000ms5s | 
| ROLE\$1ARN | This environment variable specifies the Amazon Resource Name (ARN) of an IAM role. AWS AppConfig Agent assumes this role to retrieve configuration data. | None | arn:aws:iam::123456789012:role/MyRole | 
| ROLE\$1EXTERNAL\$1ID | This environment variable specifies the external ID to use with the assumed role ARN. | None | MyExternalId | 
| ROLE\$1SESSION\$1NAME | This environment variable specifies the session name to be associated with the credentials for the assumed IAM role. | None | AWSAppConfigAgentSession | 
| SERVICE\$1REGION | This environment variable specifies an alternative AWS Region that AWS AppConfig Agent uses to call the AWS AppConfig service. If left undefined, the agent attempts to determine the current Region. If it can't, the agent fails to start. | None | us-east-1eu-west-1 | 
|  `WAIT_ON_MANIFEST`  |  This environment variable configures AWS AppConfig Agent to wait until the manifest is processed before completing startup.  | true | truefalse | 

## Step 5: (Required) Retrieving configuration data


You can retrieve configuration data from AWS AppConfig Agent by using an HTTP localhost call. The following examples use `curl` with an HTTP client. You can call the agent using any available HTTP client supported by your application language or available libraries, including an AWS SDK.

** To retrieve the full content of any deployed configuration**

```
$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name"
```

**To retrieve a single flag and its attributes from an AWS AppConfig configuration of type `Feature Flag`**

```
$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name"
```

**To access multiple flags and their attributes from an AWS AppConfig configuration of type `Feature Flag`**

```
$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name_one&flag=flag_name_two"
```

## Step 6 (Optional, but recommended): Automating updates to AWS AppConfig Agent


AWS AppConfig Agent is updated periodically. To ensure you are running the latest version of AWS AppConfig Agent on your instances, we recommend that you add the following commands to your Amazon EC2 user data. You can add the commands to the user data on either the instance or the EC2 Auto Scaling group. The script installs and starts the latest version of the agent each time an instance starts or reboots. 

```
#!/bin/bash
# install the latest version of the agent
yum install -y https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm
# optional: configure the agent
mkdir /etc/systemd/system/aws-appconfig-agent.service.d
echo "${MY_AGENT_CONFIG}" > /etc/systemd/system/aws-appconfig-agent.service.d/overrides.conf 
systemctl daemon-reload
# start the agent
systemctl start aws-appconfig-agent
```

# Using AWS AppConfig Agent with Amazon ECS and Amazon EKS


You can integrate AWS AppConfig with Amazon Elastic Container Service (Amazon ECS) and Amazon Elastic Kubernetes Service (Amazon EKS) by using AWS AppConfig Agent. The agent functions as a sidecar container running alongside your Amazon ECS and Amazon EKS container applications. The agent enhances containerized application processing and management in the following ways:
+ The agent calls AWS AppConfig on your behalf by using an AWS Identity and Access Management (IAM) role and managing a local cache of configuration data. By pulling configuration data from the local cache, your application requires fewer code updates to manage configuration data, retrieves configuration data in milliseconds, and isn't affected by network issues that can disrupt calls for such data.\$1
+ The agent offers a native experience for retrieving and resolving AWS AppConfig feature flags.
+ Out of the box, the agent provides best practices for caching strategies, polling intervals, and local configuration data availability while tracking the configuration tokens needed for subsequent service calls.
+ While running in the background, the agent periodically polls the AWS AppConfig data plane for configuration data updates. Your containerized application can retrieve the data by connecting to localhost on port 2772 (a customizable default port value) and calling HTTP GET to retrieve the data.
+ AWS AppConfig Agent updates configuration data in your containers without having to restart or recycle those containers.

\$1AWS AppConfig Agent caches data the first time the service retrieves your configuration data. For this reason, the first call to retrieve data is slower than subsequent calls.

**Before you begin**  
To integrate AWS AppConfig with your container applications, you must create AWS AppConfig artifacts and configuration data, including feature flags or freeform configuration data. For more information, see [Creating feature flags and free form configuration data in AWS AppConfig](creating-feature-flags-and-configuration-data.md).

To retrieve configuration data hosted by AWS AppConfig, your container applications must be configured with access to the AWS AppConfig data plane. To give your applications access, update the IAM permissions policy that is used by your container service IAM role. Specifically, you must add the `appconfig:StartConfigurationSession` and `appconfig:GetLatestConfiguration` actions to the policy. Container service IAM roles include the following:
+ The Amazon ECS task role
+ The Amazon EKS node role
+ The AWS Fargate pod execution role (if your Amazon EKS containers use Fargate for compute processing)

For more information about adding permissions to a policy, see [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) in the *IAM User Guide*.

**Topics**
+ [

# Starting the AWS AppConfig agent for Amazon ECS integration
](appconfig-integration-containers-agent-starting-ecs.md)
+ [

# Starting the AWS AppConfig agent for Amazon EKS integration
](appconfig-integration-containers-agent-starting-eks.md)
+ [

# (Optional) Running AWS AppConfig as a DaemonSet in Amazon EKS
](appconfig-integration-containers-agent-daemon.md)
+ [

# (Optional) Using environment variables to configure AWS AppConfig Agent for Amazon ECS and Amazon EKS
](appconfig-integration-containers-agent-configuring.md)
+ [

# Retrieving configuration data for applications running in Amazon ECS and Amazon EKS
](appconfig-integration-containers-agent-retrieving-data.md)

# Starting the AWS AppConfig agent for Amazon ECS integration


The AWS AppConfig Agent sidecar container is automatically available in your Amazon ECS environment. To use it, you must start it, as described in the following procedure.

**To start Amazon ECS (console)**

1. Open the console at [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. In the navigation pane, choose **Task definitions**.

1. Choose the task definition for your application, and then select the latest revision.

1. Choose **Create new revision**, **Create new revision**.

1. Choose **Add more containers**.

1. For** Name**, enter a unique name for the AWS AppConfig Agent container.

1. For **Image URI**, enter: **public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x**

1. For **Essential container**, choose **Yes**.

1. In the **Port mappings** section, choose **Add port mapping**.

1. For **Container port**, enter **2772**.
**Note**  
AWS AppConfig Agent runs on port 2772, by default. You can specify a different port.

1. Choose **Create**. Amazon ECS creates a new container revision and displays the details.

1. In the navigation pane, choose **Clusters**, and then choose your application cluster in the list.

1. On the **Services** tab, select the service for your application.

1. Choose **Update**.

1. Under **Deployment configuration**, for **Revision**, choose the latest revision.

1. Choose **Update**. Amazon ECS deploys the latest task definition.

1. After the deployment finishes, you can verify that AWS AppConfig Agent is running on the **Configuration and tasks** tab. On the **Tasks** tab, choose the running task.

1. In the **Containers** section, verify that the AWS AppConfig Agent container is listed.

1. To verify that AWS AppConfig Agent started, choose the **Logs** tab. Locate a statement like the following for the AWS AppConfig Agent container: `[appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772`

**Note**  
Note the following information.  
AWS AppConfig Agent is a long-running process. As a best practice for Amazon ECS containers, configure health checks for your containers, specifically setting the container dependency to the HEALTHY condition. For more information, see [ContainerDependency](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDependency.html) in the *Amazon Elastic Container Service API Reference*.
You can adjust the default behavior of AWS AppConfig Agent by entering or changing environment variables. For information about the available environment variables, see [(Optional) Using environment variables to configure AWS AppConfig Agent for Amazon ECS and Amazon EKS](appconfig-integration-containers-agent-configuring.md). For information about how to change environment variables in Amazon ECS, see [Passing environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*.

# Starting the AWS AppConfig agent for Amazon EKS integration


The AWS AppConfig Agent sidecar container is automatically available in your Amazon EKS environment. To use it, you must start it. The following procedure describes how to use the Amazon EKS `kubectl` command line tool to start the agent.

**Note**  
Before you continue, ensure that your `kubeconfig` file is up to date. For more information about creating or editing a `kubeconfig` file, see [Creating or updating a kubeconfig file for an Amazon EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html) in the **Amazon EKS User Guide**.

**To start AWS AppConfig Agent (kubectl command line tool)**

1. Open the manifest for your application and verify that your Amazon EKS application is running as a single-container deployment. Contents of the file should look similar to the following.

   ```
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     name: my-app
     namespace: my-namespace
     labels:
       app: my-application-label
   spec:
     replicas: 1
     selector:
       matchLabels:
         app: my-application-label
     template:
       metadata:
         labels:
           app: my-application-label
       spec:
         containers:
         - name: my-app
           image: my-repo/my-image
           imagePullPolicy: IfNotPresent
   ```

1. Add the AWS AppConfig Agent container definition details to your deployment manifest.

   ```
   - name: appconfig-agent
           image: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x
           ports:
           - name: http
             containerPort: 2772
             protocol: TCP
           env:
           - name: SERVICE_REGION
             value: AWS Region
           imagePullPolicy: IfNotPresent
   ```
**Note**  
Note the following information.  
AWS AppConfig Agent runs on port 2772, by default. You can specify a different port.
You can adjust the default behavior of AWS AppConfig Agent by entering environment variables. For more information, see [(Optional) Using environment variables to configure AWS AppConfig Agent for Amazon ECS and Amazon EKS](appconfig-integration-containers-agent-configuring.md).
For *AWS Region*, specify the AWS Region code (for example, `us-west-1`) where AWS AppConfig Agent retrieves configuration data.

1. Run the following `kubectl` command to apply the changes to your cluster. Replace *my-deployment* with the name of your deployment manifest.

   ```
   kubectl apply -f my-deployment.yml
   ```

1. After the deployment finishes, verify that AWS AppConfig Agent is running. Use the following command to view the application pod log file.

   ```
   kubectl logs -n my-namespace -c appconfig-agent my-pod
   ```

   Locate a statement like the following for the AWS AppConfig Agent container: `[appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772`

**Note**  
You can adjust the default behavior of AWS AppConfig Agent by entering or changing environment variables. For information about the available environment variables, see [(Optional) Using environment variables to configure AWS AppConfig Agent for Amazon ECS and Amazon EKS](appconfig-integration-containers-agent-configuring.md).

# (Optional) Running AWS AppConfig as a DaemonSet in Amazon EKS


With Amazon EKS, you can run AWS AppConfig Agent as a sidecar, which results in one agent container *per application pod*. Or, if you prefer, you can run AWS AppConfig Agent as a [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/), which results in one agent container *per node in your cluster*. 

**Note**  
If you run AWS AppConfig Agent as a DaemonSet, the agent runs in a separate pod, which means you can't access it with calls to `localhost`. You must inject or otherwise discover the agent pod's IP address in order to call it.

To run AWS AppConfig Agent as a DaemonSet, create a manifest file with the following contents. Replace *highlighted* text with details for your application and environment. For *AWS Region*, specify an AWS Region code (for example, `us-west-1`). 

```
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: aws-appconfig-agent
  namespace: my_namespace
  labels:
    app: my_application_label
spec:
   selector:
    matchLabels:
      app: my_application_label
  template:
    metadata:
      labels:
        app: my_application_label
    spec:
      containers:
      - name: aws-appconfig-agent
        image: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x
        ports:
        - name: http
          containerPort: 2772
          protocol: TCP
        env:
        - name: SERVICE_REGION
          value: AWS Region
        imagePullPolicy: IfNotPresent
      # set a high priority class to ensure the agent is running on every node
      priorityClassName: system-node-critical
```

Run the following command to apply the AWS AppConfig Agent DaemonSet to your cluster. Replace *aws\$1appconfig\$1agent\$1daemonset* with the name of your DaemonSet manifest.

```
kubectl apply -f aws_appconfig_agent_daemonset.yml
```

# (Optional) Using environment variables to configure AWS AppConfig Agent for Amazon ECS and Amazon EKS


You can configure AWS AppConfig Agent by changing the following environment variables for your agent container.

**Note**  
The following table includes a **Sample values** column. Depending on your monitor resolution, you might need to scroll to the bottom of the table and then scroll to the right to view the column.


****  

| Environment variable | Details | Default value | Sample value(s) | 
| --- | --- | --- | --- | 
|  `ACCESS_TOKEN`  |  This environment variable defines a token that must be provided when requesting configuration data from the agent HTTP server. The value of the token must be set in the HTTP request authorization header with an authorization type of `Bearer`. Here is an example. <pre>GET /applications/my_app/...<br />                  Host: localhost:2772<br />                  Authorization: Bearer <token value></pre>  | None | MyAccessToken | 
|  `BACKUP_DIRECTORY`  |  This environment variable enables AWS AppConfig Agent to save a backup of each configuration it retrieves to the specified directory.   Configurations backed up to disk are not encrypted. If your configuration contains sensitive data, AWS AppConfig recommends that you practice the principle of least privilege with your filesystem permissions. For more information, see [Security in AWS AppConfig](appconfig-security.md).   | None | /path/to/backups | 
|  `HTTP_PORT`  |  This environment variable specifies the port on which the HTTP server for the agent runs.  | 2772 | 2772 | 
|  `HTTP_HOST`  |  The HTTP\$1HOST variable controls how the AWS AppConfig Agent binds to network interfaces. The binding behavior differs based on the runtime environment to ensure optimal security and accessibility.  |   ECS, EKS  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent-configuring.html) EC2 and on-prem [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent-configuring.html)  |  Custom Configuration Options. You can override the default behavior using these values: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent-configuring.html)  | 
|  `LOG_LEVEL`  |  This environment variable specifies the level of detail that the agent logs. Each level includes the current level and all higher levels. The value is case insensitive. From most to least detailed, the log levels are: `trace`, `debug`, `info`, `warn`, `error`, `fatal`, and `none`. The `trace` log includes detailed information, including timing information, about the agent.  |  info  |  trace debug info warn error fatal none  | 
|  `LOG_PATH`  |  The disk location where logs are written. If not specified, logs are written to stderr.  |  None  | /path/to/logs/agent.log | 
|  `MANIFEST`  |  This environment variable configures AWS AppConfig Agent to take advantage of additional per-configuration features like multi-account retrievals and save configuration to disk. For more information about these features, see [Using a manifest to enable additional retrieval features](appconfig-agent-how-to-use-additional-features.md).   | None | When using AWS AppConfig configuration as manifest: `MyApp:MyEnv:MyManifestConfig`.When loading manifest from disk: `file:/path/to/manifest.json` | 
|  `MAX_CONNECTIONS`  |  This environment variable configures the maximum number of connections that the agent uses to retrieve configurations from AWS AppConfig.   | 3 | 3 | 
|  `POLL_INTERVAL`  |  This environment variable controls how often the agent polls AWS AppConfig for updated configuration data. You can specify a number of seconds for the interval. You can also specify a number with a time unit: s for seconds, m for minutes, and h for hours. If a unit isn't specified, the agent defaults to seconds. For example, 60, 60s, and 1m result in the same poll interval.   | 45 seconds | 4545s5m1h | 
|  `PREFETCH_LIST`  |  This environment variable specifies the configuration data the agent requests from AWS AppConfig as soon as it starts. Multiple configuration identifiers may be provided in a comma-separated list.  | None | MyApp:MyEnv:MyConfigabcd123:efgh456:ijkl789MyApp:MyEnv:Config1,MyApp:MyEnv:Config2 | 
|  `PRELOAD_BACKUPS`  |  If set to `true`, AWS AppConfig Agent loads configuration backups found in the `BACKUP_DIRECTORY` into memory and immediately checks to see if a newer version exists from the service. If set to `false`, AWS AppConfig Agent only loads the contents from a configuration backup if it cannot retrieve configuration data from the service, for example if there is a problem with your network.  | true | true false  | 
| PROXY\$1HEADERS | This environment variable specifies headers that are required by the proxy referenced in the PROXY\$1URL environment variable. The value is a comma-separated list of headers.  | None |  header: value h1: v1, h2: v2  | 
| PROXY\$1URL | This environment variable specifies the proxy URL to use for connections from the agent to AWS services, including AWS AppConfig. HTTPS and HTTP URLs are supported. | None | http://localhost:7474https://my-proxy.example.com | 
|  `REQUEST_TIMEOUT`  |  This environment variable controls the amount of time the agent waits for a response from AWS AppConfig. If the service does not respond, the request fails. If the request is for the initial data retrieval, the agent returns an error to your application. If the timeout occurs during a background check for updated data, the agent logs the error and tries again after a short delay. You can specify the number of milliseconds for the timeout. You can also specify a number with a time unit: ms for milliseconds and s for seconds. If a unit isn't specified, the agent defaults to milliseconds. As an example, 5000, 5000ms and 5s result in the same request timeout value.  | 3000ms | 30003000ms5s | 
| ROLE\$1ARN | This environment variable specifies the Amazon Resource Name (ARN) of an IAM role. AWS AppConfig Agent assumes this role to retrieve configuration data. | None | arn:aws:iam::123456789012:role/MyRole | 
| ROLE\$1EXTERNAL\$1ID | This environment variable specifies the external ID to use with the assumed role ARN. | None | MyExternalId | 
| ROLE\$1SESSION\$1NAME | This environment variable specifies the session name to be associated with the credentials for the assumed IAM role. | None | AWSAppConfigAgentSession | 
| SERVICE\$1REGION | This environment variable specifies an alternative AWS Region that AWS AppConfig Agent uses to call the AWS AppConfig service. If left undefined, the agent attempts to determine the current Region. If it can't, the agent fails to start. | None | us-east-1eu-west-1 | 
|  `WAIT_ON_MANIFEST`  |  This environment variable configures AWS AppConfig Agent to wait until the manifest is processed before completing startup.  | true | truefalse | 

# Retrieving configuration data for applications running in Amazon ECS and Amazon EKS


You can retrieve configuration data from AWS AppConfig Agent for applications running in Amazon ECS and Amazon EKS by using an HTTP localhost call. The following examples use `curl` with an HTTP client. You can call the agent using any available HTTP client supported by your application language or available libraries.

**Note**  
To retrieve configuration data if your application uses a forward slash, for example "test-backend/test-service", you will need to use URL encoding.

**To retrieve the full content of any deployed configuration**

```
$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name"
```

**To retrieve a single flag and its attributes from an AWS AppConfig configuration of type `Feature Flag`**

```
$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name"
```

**To access multiple flags and their attributes from an AWS AppConfig configuration of type `Feature Flag`**

```
$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name_one&flag=flag_name_two"
```

The call returns configuration metadata in HTTP headers, including the configuration version, content type, and configuration version label (if applicable). The body of the agent response contains the configuration content. Here is an example:

```
HTTP/1.1 200 OK
Configuration-Version: 1
Content-Type: application/json
Date: Tue, 18 Feb 2025 20:20:16 GMT
Content-Length: 31

My test config
```

# Retrieving basic and multi-variant feature flags
Retrieving feature flags

For feature flag configurations (configurations of type `AWS.AppConfig.FeatureFlags`), the AWS AppConfig Agent enables you to retrieve a single flag or a subset of flags in a configuration. Retrieving one or two flags is useful if your use case only needs to use a few flags from the configuration profile. The following examples use cURL.

**Note**  
The ability to call a single feature flag or a subset of flags in a configuration is only available in the AWS AppConfig Agent version 2.0.45 and higher.

You can retrieve AWS AppConfig configuration data from a local HTTP endpoint. To access a specific flag or a list of flags, use the `?flag=FLAG_KEY` query parameter for an AWS AppConfig configuration profile.

**To retrieve a single flag and its attributes**

```
curl "http://localhost:2772/applications/APPLICATION_NAME/environments/ENVIRONMENT_NAME/configurations/CONFIGURATION_NAME?flag=FLAG_KEY"
```

**To retrieve multiple flags and their attributes**

```
curl "http://localhost:2772/applications/APPLICATION_NAME/environments/ENVIRONMENT_NAME/configurations/CONFIGURATION_NAME?flag=FLAG_KEY_ONE&flag=FLAG_KEY_TWO"
```

**To retrieve feature flag variants based on caller context**

The following cURL examples show how to retrieve feature flag variants based on caller context. To best illustrate how to make these calls, this section uses sample calls based on a scenario where a customer created variants similar to the following:

![\[An example screenshot of a feature flag with variants.\]](http://docs.aws.amazon.com/appconfig/latest/userguide/images/flag-variant-example.png)


**Note**  
To retrieve flag variants, you must use the latest version of AWS AppConfig Agent in your compute environment. For more information, see the following topics that describe how to update, install, or add the agent for each of the following compute environments:  
For Lambda compute environments: [Adding the AWS AppConfig Agent Lambda extension](appconfig-integration-lambda-extensions-add.md)
For Amazon EC2 compute environments: [Step 2: (Required) Installing and starting AWS AppConfig Agent on Amazon EC2 instances](appconfig-integration-ec2.md#appconfig-integration-ec2-installing)
For Amazon ECS compute environments: [Starting the AWS AppConfig agent for Amazon ECS integration](appconfig-integration-containers-agent-starting-ecs.md)
For Amazon EKS compute environments: [Starting the AWS AppConfig agent for Amazon EKS integration](appconfig-integration-containers-agent-starting-eks.md)

**To retrieve flag data using the caller context of jane\$1doe@example.org (who has not opted into the beta program):**

```
curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features \
-H "Context: email=jane_doe@example.org" \
-H "Context: opted_in_to_beta=false"
{
  "ui_refresh": {"_variant":"QA","dark_mode_support":true,"enabled":true}
}
```

**To retrieve flag data using the caller context of jane\$1doe@example.org (who *has* opted into the beta program):**

```
curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features \
-H "Context: email=jane_doe@example.org" \
-H "Context: opted_in_to_beta=true"
{
  "ui_refresh": {"_variant":"QA","dark_mode_support":true,"enabled":true}
}
```

**To retrieve flag data using the caller context of jane\$1doe@qa-testers.example.org (who is a quality assurance tester at Example Organization):**

```
curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features \
-H "Context: email=jane_doe@qa-testers.example.org" 
{
  "ui_refresh": {"_variant":"QA","dark_mode_support":true,"enabled":true}
}
```

**To retrieve flag data without caller context (which returns the Default variant)**

```
curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features
{
"ui_refresh": {"_variant":"Default Variant","enabled":false}
}
```

**To retrieve flag data for a traffic splitting scenario to determine if 1 out of 10 random callers receive the 'sample population' variant**

```
for i in {0..9} do ; \
curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features \
-H "Context: email=$i@example.org"
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
{
  "ui_refresh": {"_variant":"Sample Population","dark_mode_support":false,"enabled":true}
}
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
{
  "ui_refresh": {"_variant":"Default Variant","enabled":false}
}
```

# Using a manifest to enable additional retrieval features


AWS AppConfig Agent offers the following additional features to help you retrieve configurations for your applications. 
+ [Configuring AWS AppConfig Agent to retrieve configurations from multiple accounts](appconfig-agent-how-to-use-additional-features-multi-account.md): Use AWS AppConfig Agent from a primary or *retrieval* AWS account to retrieve configuration data from multiple vendor accounts. 
+ [Configuring AWS AppConfig Agent to write configuration copies to disk](appconfig-agent-how-to-use-additional-features-write-to-disk.md): Use AWS AppConfig Agent to write configuration data to disk. This feature enables customers with applications that read configuration data from disk to integrate with AWS AppConfig.

## Understanding agent manifests


To enable these AWS AppConfig Agent features, you create a manifest. A manifest is a set of configuration data that you provide to control actions the agent can perform. A manifest is written in JSON. It contains a set of top-level keys that correspond to different configurations you’ve deployed using AWS AppConfig.

A manifest can include multiple configurations. Furthermore, each configuration in the manifest can identify one or more agent features to use for the specified configuration. The content of the manifest uses the following format:

```
{
    "application_name:environment_name:configuration_name": {
        "agent_feature_to_enable_1": {
            "feature-setting-key": "feature-setting-value"
        },
        "agent_feature_to_enable_2": {
            "feature-setting-key": "feature-setting-value"
        }
    }
}
```

Here is example JSON for a manifest with two configurations. The first configuration (*MyApp*) doesn't use any AWS AppConfig Agent features. The second configuration (*My2ndApp*) uses the *write configuration copy to disk* and the *multi-account retrieval* features:

```
{
        "MyApp:Test:MyAllowListConfiguration": {},
        
        "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": {
            "credentials": {
                "roleArn": "arn:aws:us-west-1:iam::123456789012:role/MyTestRole",
                "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac",
                "roleSessionName": "AwsAppConfigAgent",
                "credentialsDuration": "2h"
            },
            "writeTo": {
                "path": "/tmp/aws-appconfig/my-2nd-app/beta/my-enable-payments-feature-flag-configuration.json"
            }
        }
    }
```

**How to supply an agent manifest**  
You can store the manifest as a file in a location where AWS AppConfig Agent can read it. Or, you can store the manifest as an AWS AppConfig configuration and point the agent to it. To supply an agent manifest, you must set a `MANIFEST` environment variable with one of the following values:


****  

| Manifest location | Environment variable value | Use case | 
| --- | --- | --- | 
|  File  |  file:/path/to/agent-manifest.json  |  Use this method if your manifest won't change often.  | 
|  AWS AppConfig configuration  |  *application-name*:*environment-name*:*configuration-name*  |  Use this method for dynamic updates. You can update and deploy a manifest stored in AWS AppConfig as a configuration in the same ways you store other AWS AppConfig configurations.  | 
|  Environment variable  |  Manifest content (JSON)  |  Use this method if your manifest won't change often. This method is useful in container environments where it's easier to set an environment variable than it is to expose a file.  | 

For more information about setting variables for AWS AppConfig Agent, see the relevant topic for your use case:
+ [Configuring the AWS AppConfig Agent Lambda extension](appconfig-integration-lambda-extensions-config.md)
+ [Using AWS AppConfig Agent with Amazon EC2](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html#appconfig-integration-ec2-configuring)
+ [Using AWS AppConfig Agent with Amazon ECS and Amazon EKS](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html#appconfig-integration-containers-agent-configuring)

# Configuring AWS AppConfig Agent to retrieve configurations from multiple accounts


You can configure AWS AppConfig Agent to retrieve configurations from multiple AWS accounts by entering credential overrides in the AWS AppConfig Agent manifest. *Credential overrides* include the Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role, a role ID, a session name, and a duration for how long the agent can assume the role. 

You enter these details in a "credentials" section in the manifest. The "credentials" section uses the following format:

```
{
    "application_name:environment_name:configuration_name": {
        "credentials": {
            "roleArn": "arn:partition:iam::account_ID:role/roleName",
            "roleExternalId": "string",
            "roleSessionName": "string",
            "credentialsDuration": "time_in_hours" 
        }
    }
}
```

Here is an example:

```
{
    "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": {
        "credentials": {
            "roleArn": "arn:aws:us-west-1:iam::123456789012:role/MyTestRole",
            "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac",
            "roleSessionName": "AWSAppConfigAgent",
            "credentialsDuration": "2h" 
        }
    }
}
```

Before retrieving a configuration, the agent reads the credential details for the configuration from the manifest and then assumes the IAM role specified for that configuration. You can specify a different set of credential overrides for different configurations in a single manifest. The following diagram shows how AWS AppConfig Agent, while running in Account A (the retrieval account), assumes separate roles specified for Accounts B and C (the vendor accounts) and then calls the [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html) API operation to retrieve configuration data from AWS AppConfig running in those accounts:

![\[How AWS AppConfig Agent works with IAM roles across separate AWS accounts.\]](http://docs.aws.amazon.com/appconfig/latest/userguide/images/agent multi-account.png)


## Configure permissions to retrieve configuration data from vendor accounts


AWS AppConfig Agent running in the retrieval account needs permission to retrieve configuration data from the vendor accounts. You give the agent permission by creating an AWS Identity and Access Management (IAM) role in each of the vendor accounts. AWS AppConfig Agent in the retrieval account assumes this role to get data from vendor accounts. Complete the procedures in this section to create an IAM permissions policy, an IAM role, and add agent overrides to the manifest.

**Before you begin**  
Collect the following information before you create a permission policy and a role in IAM.
+ The IDs for each AWS account. The *retrieval* account is the account that will call other accounts for configuration data. The *vendor* accounts are the accounts that will vend configuration data to the retrieval account.
+ The name of the IAM role used by AWS AppConfig in the retrieval account. Here's a list of the roles used by AWS AppConfig, by default:
  + For Amazon Elastic Compute Cloud (Amazon EC2), AWS AppConfig uses the instance role.
  + For AWS Lambda, AWS AppConfig uses the Lambda execution role.
  + For Amazon Elastic Container Service (Amazon ECS) and Amazon Elastic Kubernetes Service (Amazon EKS), AWS AppConfig uses the container role.

  If you configured AWS AppConfig Agent to use a different IAM role by specifying the `ROLE_ARN` environment variable, make a note of that name.

**Create the permissions policy**  
Use the following procedure to create a permissions policy using the IAM console. Complete the procedure in each AWS account that will vend configuration data for the retrieval account.

**To create an IAM policy**

1. Sign in to the AWS Management Console in a vendor account.

1. Open the IAM console at [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. In the navigation pane, choose **Policies**, and then choose **Create policy**.

1. Choose the **JSON** option.

1. In the **Policy editor**, replace the default JSON with the following policy statement. Update each *example resource placeholder* with vendor account details.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "appconfig:StartConfigurationSession",
                   "appconfig:GetLatestConfiguration"
               ],
               "Resource": "arn:aws:appconfig:us-east-1:111122223333:application/vendor_application_ID/environment/vendor_environment_ID/configuration/vendor_configuration_ID"
           }
       ]
   }
   ```

------

   Here's an example:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Action": [
               "appconfig:StartConfigurationSession",
               "appconfig:GetLatestConfiguration"
           ],
           "Resource": "arn:aws:appconfig:us-east-2:111122223333:application/abc123/environment/def456/configuration/hij789"
       }
      ]
   }
   ```

------

1. Choose **Next**.

1. In the **Policy name** field, enter a name.

1. (Optional) For **Add tags**, add one or more tag-key value pairs to organize, track, or control access for this policy.

1. Choose **Create policy**. The system returns you to the **Policies** page.

1. Repeat this procedure in each AWS account that will vend configuration data for the retrieval account.

**Create the IAM role**  
Use the following procedure to create an IAM role using the IAM console. Complete the procedure in each AWS account that will vend configuration data for the retrieval account.

**To create an IAM role**

1. Sign in to the AWS Management Console in a vendor account.

1. Open the IAM console at [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. In the navigation pane, choose **Roles**, and then choose **Create policy**.

1. For **Trusted entity type**, choose **AWS account**.

1. In the **AWS account** section, choose **Another AWS account**.

1. In the **Account ID** field, enter the retrieval account ID.

1. (Optional) As a security best practice for this assume role, choose **Require external ID** and enter a string.

1. Choose **Next**.

1. On the **Add permissions** page, use the **Search** field to locate the policy you created in the previous procedure. Select the check box next to its name. 

1. Choose **Next**.

1. For **Role name**, enter a name.

1. (Optional) For **Description**, enter a description.

1. For **Step 1: Select trusted entities**, choose **Edit**. Replace the default JSON trust policy with the following policy. Update each *example resource placeholder* with information from your retrieval account.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/appconfig_role_in_retrieval_account"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. (Optional) For **Tags**, add one or more tag-key value pairs to organize, track, or control access for this role.

1. Choose **Create role**. The system returns you to the **Roles** page.

1. Search for the role you just created. Choose it. In the **ARN** section, copy the ARN. You'll specify this information in the next procedure.

**Add credential overrides to the manifest**  
After you create the IAM role in your vendor account, update the manifest in the retrieval account. Specifically, add the credentials block and the IAM role ARN for retrieving configuration data from the vendor account. Here is the JSON format:

```
{
    "vendor_application_name:vendor_environment_name:vendor_configuration_name": {
        "credentials": {
            "roleArn": "arn:partition:iam::vendor_account_ID:role/name_of_role_created_in_vendor_account",
            "roleExternalId": "string",
            "roleSessionName": "string",
            "credentialsDuration": "time_in_hours" 
        }
    }
}
```

Here is an example:

```
{
    "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": {
        "credentials": {
            "roleArn": "arn:aws:us-west-1:iam::123456789012:role/MyTestRole",
            "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac",
            "roleSessionName": "AwsAppConfigAgent",
            "credentialsDuration": "2h" 
        }
    }
}
```

**Validate that multi-account retrieval is working**  
You can validate that that agent is able to retrieve configuration data from multiple accounts by reviewing the AWS AppConfig agent logs. The `INFO` level log for retrieved initial data for '`YourApplicationName`:`YourEnvironmentName`:`YourConfigurationName`' is the best indicator for successful retrievals. If retrievals are failing, you should see an `ERROR` level log indicating the failure reason. Here is an example for a successful retrieval from a vendor account:

```
[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x
[appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772
[appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MyTestApplication:MyTestEnvironment:MyDenyListConfiguration' in XX.Xms
```

# Configuring AWS AppConfig Agent to write configuration copies to disk


You can configure AWS AppConfig Agent to automatically store a copy of a configuration to disk in plain text. This feature enables customers with applications that read configuration data from disk to integrate with AWS AppConfig.

This feature is not designed to be used as a configuration backup feature. AWS AppConfig Agent doesn't read from the configuration files copied to disk. If you want to back up configurations to disk, see the `BACKUP_DIRECTORY` and `PRELOAD_BACKUP` environment variables for [Using AWS AppConfig Agent with Amazon EC2](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html#appconfig-integration-ec2-configuring) or [Using AWS AppConfig Agent with Amazon ECS and Amazon EKS](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html#appconfig-integration-containers-agent-configuring).

**Warning**  
Note the following important information about this feature:  
Configurations saved to disk are stored in *plain text* and are human readable. Don't enable this feature for configurations that include sensitive data. 
This feature writes to the local disk. Use the principle of least privilege for filesystem permissions. For more information, see [Implement least privilege access](appconfig-security.md#appconfig-security-least-privilege-access).

**To enable write configuration copy to disk**

1. Edit the manifest.

1. Choose the configuration that you want AWS AppConfig to write to disk and add a `writeTo` element. Here is an example:

   ```
   {
       "application_name:environment_name:configuration_name": {
           "writeTo": {
               "path": "path_to_configuration_file"
           }
       }
   }
   ```

   Here is an example:

   ```
   {
       "MyTestApp:MyTestEnvironment:MyNewConfiguration": {
           "writeTo": {
               "path": "/tmp/aws-appconfig/mobile-app/beta/enable-mobile-payments"
           }
       }
   }
   ```

1. Save your changes. The configuration.json file will be updated each time new configuration data is deployed.

**Validate that write configuration copy to disk is working**  
You can validate that copies of a configuration are being written to disk by looking by reviewing the AWS AppConfig agent logs. The `INFO` log entry with the phrasing "INFO wrote configuration '*application*:*environment*:*configuration*' to *file\$1path*" indicates that AWS AppConfig Agent writes configuration copies to disk.

Here is an example:

```
[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x
[appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772
[appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MobileApp:Beta:EnableMobilePayments' in XX.Xms
[appconfig agent] 2023/11/13 17:05:49 INFO wrote configuration 'MobileApp:Beta:EnableMobilePayments' to /tmp/configs/your-app/your-env/your-config.json
```

# Generating a client using the OpenAPI specification


You can use the following YAML specification for OpenAPI to create an SDK using a tool like [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator). You can update this specification to include hardcoded values for Application, Environment, or Configuration. You can also add additional paths (if you have multiple configuration types) and include configuration schemas to generate configuration-specific typed models for your SDK clients. For more information about OpenAPI (which is also known as Swagger), see the [OpenAPI specification](https://swagger.io/specification/).

```
openapi: 3.0.0
info:
  version: 1.0.0
  title: AWS AppConfig Agent API
  description: An API model for AWS AppConfig Agent. 
servers:
  - url: http://localhost:{port}/
    variables:
      port:
        default:
          '2772'
paths:
  /applications/{Application}/environments/{Environment}/configurations/{Configuration}:
    get:
      operationId: getConfiguration
      tags:
        - configuration
      parameters:
        - in: path
          name: Application
          description: The application for the configuration to get. Specify either the application name or the application ID.
          required: true
          schema:
            type: string
        - in: path
          name: Environment
          description: The environment for the configuration to get. Specify either the environment name or the environment ID.
          required: true
          schema:
            type: string
        - in: path
          name: Configuration
          description: The configuration to get. Specify either the configuration name or the configuration ID.
          required: true
          schema:
            type: string
        - in: query
          name: flag
          description: The key(s) of the feature flag(s) to retrieve. If not provided, all flags are returned. 
          required: false
          schema:
            type: array
            items:
              type: string
        - in: header
          name: context
          description: Request context used to evaluate multi-variant feature flags.
          required: false
          schema:
            type: array
            items:
              type: string
              pattern: '^\w+=\w+$'
      responses:
        200:
          headers:
            ConfigurationVersion:
              schema:
                type: string
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: successful config retrieval
        400:
          description: BadRequestException
          content:
            application/text:
              schema:
                $ref: '#/components/schemas/Error'
        404:
          description: ResourceNotFoundException
          content:
            application/text:
              schema:
                $ref: '#/components/schemas/Error'
        500:
          description: InternalServerException
          content:
            application/text:
              schema:
                $ref: '#/components/schemas/Error'
        502:
          description: BadGatewayException
          content:
            application/text:
              schema:
                $ref: '#/components/schemas/Error'
        504:
          description: GatewayTimeoutException
          content:
            application/text:
              schema:
                $ref: '#/components/schemas/Error'

components:
  schemas:
    Error:
      type: string
      description: The response error
```

# Working with AWS AppConfig Agent local development mode


AWS AppConfig Agent supports a *local development mode*. If you enable local development mode, the agent reads configuration data from a specified directory on disk. It doesn't retrieve configuration data from AWS AppConfig. You can simulate configuration deployments by updating files in the specified directory. We recommend local development mode for the following use cases:
+ Test different configuration versions before deploying them using AWS AppConfig.
+ Test different configuration options for a new feature before committing changes to your code repository.
+ Test different configuration scenarios to verify they work as expected.

**Warning**  
Don't use local development mode in production environments. This mode doesn't support important AWS AppConfig safety features like deployment validation and automated rollbacks.

Use the following procedure to configure AWS AppConfig Agent for local development mode.

**To configure AWS AppConfig Agent for local development mode**

1. Install the agent using the method described for your compute environment. AWS AppConfig Agent works with the following AWS services:
   + [AWS Lambda](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-lambda-extensions.html)
   + [Amazon EC2](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html)
   + [Amazon ECS and Amazon EKS](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html)

1. If the agent is running, stop it.

1. Add `LOCAL_DEVELOPMENT_DIRECTORY` to the list of environment variables. Specify a directory on the filesystem that provides the agent with read permissions. For example, `/tmp/local_configs`.

1. Create a file in the directory. The file name must use the following format:

   ```
   application_name:environment_name:configuration_profile_name
   ```

   Here is an example:

   ```
   Mobile:Development:EnableMobilePaymentsFeatureFlagConfiguration
   ```
**Note**  
To view feature flag samples you can add to a file in your `LOCAL_DEVELOPMENT_DIRECTORY` directory, see [Feature flag samples for AWS AppConfig Agent local development mode](appconfig-agent-how-to-use-local-development-samples.md).
(Optional) You can control the content type the agent returns for your configuration data based on the extension you give the file. For example, if you name the file with a .json extension, the agent returns a content type of `application/json` when your application requests it. If you omit the extension, the agent uses `application/octet-stream` for the content type. If you need precise control, you can provide an extension in the format `.type%subtype`. The agent will return a content type of `.type/subtype`.

1. Run the following command to restart the agent and request the configuration data.

   ```
   curl http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name
   ```

The agent checks for changes to the local file at the poll interval specified for the agent. If the poll interval isn't specified, the agent uses the default interval of 45 seconds. This check at the poll interval ensures that the agent behaves the same in a local development environment as it does when configured to interact with the AWS AppConfig service. 

**Note**  
To deploy a new version of a local development configuration file, update the file with new data.

# Feature flag samples for AWS AppConfig Agent local development mode
Samples for local development mode

This section includes feature flag samples you can use with AWS AppConfig Agent in local development mode. Local development mode expects feature flag data in the data's retrieval-time format. *Retrieval-time format* is the format returned when the flag is retrieved from the [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html) API, which only contains the flag's value. Retrieval-time format doesn't include a flag's complete definition (as passed to the [CreateHostedConfigurationVersion](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html) API). The complete definition for a flag also contains information such as attribute names and values, constraints, and the flag's enabled state. 

**Topics**
+ [

## Basic feature flag samples
](#appconfig-agent-how-to-use-local-development-samples-basic)
+ [

## Multi-variant feature flag samples
](#appconfig-agent-how-to-use-local-development-samples-multi-variant)

## Basic feature flag samples


Use the following basic feature flag samples with AWS AppConfig Agent in local development mode.

**Note**  
If you want the agent to report the content type of your local feature flag data as `application/json` (as it would when retrieving flag data from AWS AppConfig in an environment that isn't local development mode), your local feature flag files must use the .json extension. For example, `Local:MyFeatureFlags:SampleB1.json`.

**Sample 1**: A single flag representing a UI refresh.

```
{
    "ui_refresh": {
        "enabled": true,
        "new_styleguide_colors": true
    }
}
```

**Sample 2**: Multiple flags representing operational feature flags.

```
{
   "background_worker": {
        "enabled": true,
        "num_threads": 4,
        "queue_name": "MyWorkQueue"
   },
   "emergency_shutoff_switch": {
        "enabled": false
   },
   "logger_settings": {
        "enabled": true,
        "level": "INFO"
   }
}
```

## Multi-variant feature flag samples


The retrieval-time format of a feature flag configuration that contains at least one multi-variant feature flag is represented as [Amazon Ion](https://amazon-ion.github.io/ion-docs/) data instead of JSON data. In this format, multi-variant flags are represented as an annotated list, and basic flags are represented as an annotated string. The list elements of a multi-variant flag are either a tuple (a list with a length of two), which represents a single variant, or a string, which represents the default variant. Within a variant tuple, the first element is an s-expression that represents the variant's rule, and the second element is a string that represents the variant's content.

In order for the agent to properly interpret these files, your local feature flag files must use the following extension: .`application%ion%type=AWS.AppConfig.FeatureFlags`. For example, `Local:MyFeatureFlags:SampleMV1.application%ion%type=AWS.AppConfig.FeatureFlags`.

**Sample 1**: A multi-variant flag representing a tiered release of a new feature.

```
'tiered_release'::[
  [
    (or (and (eq $group "Tier1") (split by::$userId pct::1 seed::"2025.01.01")) (and (eq $group "Tier2") (split by::$userId pct::7 seed::"2025.01.01"))),
    '''{"_variant": "ShowFeature", "enabled": true}'''
  ],
  '''{"_variant": "HideFeature", "enabled": false}'''
]
```

**Sample 2**: Multiple flags representing different UX displays based on the user’s ID. The first two flags are multi-variant and the final flag is basic.

```
'colorway'::[
  [
    (contains $userId "beta"),
    '''{"_variant": "BetaTesters", "enabled": true, "background": "blue", "foreground": "red"}''',
  ],
  [
    (split by::$userId pct::10),
    '''{"_variant": "SplitRollOutRedAndBlue", "enabled": true, "background": "blue", "foreground": "red"}''',
  ],
  '''{"_variant": "default", "enabled": true, "background": "green", "foreground": "green"}''',
]

'simple_feature'::[
  [
    (contains $userId "beta"),
    '''{"_variant": "BetaTesters", "enabled": true}'''
  ],
  '''{"_variant": "default", "enabled": false}'''
]

'button_color'::'''{"enabled": true, "color": "orange"}'''
```

# AWS AppConfig browser and mobile use considerations
Browser and mobile use considerations

Feature flags enable you to update the experience of your web pages and mobile application on the fly, without the overhead, risk, or rigidity of an app store release. Using feature flags, you can gradually release a change to your user base at a time of your choosing. If you encounter an error, you can instantly roll back the change without requiring users to upgrade to a new software version. In short, feature flags provide greater control and flexibility when deploying changes to your application. 

The following sections describe important considerations for using AWS AppConfig feature flags with web pages and mobiles devices.

**Topics**
+ [

## Configuration data and flag retrieval
](#appconfig-retrieving-mobile-configuration-data)
+ [

## Authentication and Amazon Cognito
](#appconfig-retrieving-mobile-authentication)
+ [

## Caching
](#appconfig-retrieving-mobile-caching)
+ [

## Segmentation
](#appconfig-retrieving-mobile-segmentation)
+ [

## Bandwidth (mobile use cases)
](#appconfig-retrieving-mobile-experience-bandwidth)
+ [

## Additional flag use cases
](#appconfig-retrieving-mobile-use-cases)

## Configuration data and flag retrieval


For browser and mobile use cases, many customers choose to employ a proxy layer between the web or the mobile application and AWS AppConfig. Doing so decouples your AWS AppConfig call volume from the size of your user base, which reduces costs. It also enables you to leverage the [AWS AppConfig Agent](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-agent-how-to-use.html), which optimizes flag-retrieval performance and supports features like [multi-variant flags](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-multi-variant-feature-flags.html). AWS AppConfig recommends using AWS Lambda to create the proxy. Instead of retrieving flags directly from AWS AppConfig, configure the [AWS AppConfig Lambda extension](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-lambda-extensions.html) to retrieve your feature flags within a Lambda function. Write the function to accept AWS AppConfig retrieval parameters from the event request and to return the corresponding configuration data in the Lambda response. Expose your proxy to the internet using [Lambda function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-configuration.html). 

After you configure your proxy, consider the frequency in which you retrieve data. Mobile uses cases typically do not require high-frequency polling intervals. Configure AWS AppConfig Agent to refresh data from AWS AppConfig more frequently than your application refreshes from the proxy.

## Authentication and Amazon Cognito


Lambda function URLs support [two forms of access control](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html), `AWS_IAM` and `NONE`. Use `NONE` if you prefer to implement your own authentication and authorization in your Lambda function. `NONE` is also the recommended option if your use case allows exposing your endpoint to the public and your configuration data doesn't contain sensitive data. For all other use cases, use `AWS_IAM`. 

**Important**  
If you expose your endpoint to the internet without authentication, ensure that your configuration data does not leak sensitive data, including personally identifiable information (PII), user IDs, or unreleased feature names.

If you choose to use `AWS_IAM`, you’ll need to manage credentials with [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html). To get started with Amazon Cognito, you create an identity pool. An identity pool allows you to vend short-term credentials to your application for authenticated or guest users. You will need to add roles in the identity pool that permit users to use the `InvokeFunctionUrl` for your Lambda function. Doing so enables instances of your application to access the credentials necessary to retrieve your configuration data.

When working with Amazon Cognito in your application, consider using [AWS Amplify](https://docs.aws.amazon.com/amplify/). Amplify simplifies mobile/web application interactions with AWS and provides built-in support for Amazon Cognito. 

## Caching


When using AWS AppConfig, you should always cache your configuration data locally on the device or in the browser. Caching offers the following advantages:
+ Improves performance by reducing latency and battery drain
+ Offers stability by eliminating dependencies to network access
+ Lowers cost by reducing data retrieval frequency

For mobile use cases, we recommend you implement in-memory and persistent on-device caches. Configure your application to attempt to retrieve the desired configuration from the in-memory cache and fall back to fetching from your proxy, if necessary. Upon successful retrieval from your proxy, update the in-memory cache and then persist the configuration to the device. Use a background process to iterate through the cache and refresh each configuration. When fetching configuration for the first time after application startup, if a retrieval is unsuccessful, defer to the persistent configuration (and use it to seed the in-memory cache).

## Segmentation


When using feature flags, you may want to segment the feature flagging experience across your customer base. To do so, supply context to your flag retrieval calls, and configure rules to return different [variants of your feature flags](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-multi-variant-feature-flags.html) based on the provided context. For example, you may have a feature flag variant for iOS 18.X users, a variant for iOS 17.X users, and a default flag for all other versions of iOS. With variants, you can configure every iOS version of your application to target the same configuration in the same environment, but based on the context supplied in the retrieval call (for example, "version": "iOS18.1"), the devices will receive the appropriate variant of the configuration.

**Note**  
If you are using AWS AppConfig feature flag variants for a mobile use case, you must use the AWS AppConfig Agent and a proxy for retrieving feature flags.

If you choose not to use AWS AppConfig Agent to retrieve feature flags, you can leverage AWS AppConfig [environments](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-environment.html) for simple, low-cardinality segmentation. An environment is a logical deployment group for your targets. In addition to partitioning your configurations to development, testing, and production environments, you can subdivide your customer base by creating mobile-specific environments, such as device type (tablet vs phone) or OS major versions. With separate environments, you can deploy the same or different sets of configuration data to meet the particular requirements of your customer base.

## Bandwidth (mobile use cases)


In general, aim to keep the size of each flag set small. Mobile use cases tend to involve low-bandwidth constraints. Minimizing the size of your data will help you maintain a consistent experience across your user base. Also, consider that because mobile devices often operate between low- and no-bandwidth environments, on-device caching is critical. Application code that fails gracefully if no configuration data can be retrieved is also critical.

## Additional flag use cases


The power of feature flags extends beyond feature-release convenience. Long standing operational flags can be used to improve the operational posture of your application. For example, you can create a performance monitoring toggle that emits additional metrics and debug data during an event. Alternatively, you may want to maintain and adjust your application refresh rates for a segment of your customer base. 

# Retrieving configuration data without AWS AppConfig Agent


The recommended way to retrieve configuration data from AWS AppConfig is by using the Amazon-developed and managed AWS AppConfig Agent. With the agent, you can cache configuration data locally and asynchronously poll the AWS AppConfig data plane service for updates. This caching/polling process ensures that your configuration data is always available for your application while minimizing latency and cost. If you prefer not to use the agent, you can call public APIs directly from the AWS AppConfig data plane service.

The data plane service uses two API actions, [StartConfigurationSession](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html) and [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html). The data plane service also uses [separate endpoints](https://docs.aws.amazon.com/general/latest/gr/appconfig.html#appconfigdata_data_plane) from the AWS AppConfig control plane.

**Note**  
The data plane service replaces the previous process of retrieving configuration data by using the `GetConfiguration` API action. The `GetConfiguration` API is deprecated.

**How it works**  
Here's how the process of directly calling AWS AppConfig APIs using the data plane service works.

Your application retrieves configuration data by first establishing a configuration session using the [StartConfigurationSession](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html) API operation. Your session's client then makes periodic calls to [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html) to check for and retrieve the latest data available.

When calling `StartConfigurationSession`, your code sends the following information:
+ Identifiers (ID or name) of an AWS AppConfig application, environment, and configuration profile that the session tracks.
+ (Optional) The minimum amount of time the session's client must wait between calls to `GetLatestConfiguration`.

In response, AWS AppConfig provides an `InitialConfigurationToken` to be given to the session's client and used the first time it calls `GetLatestConfiguration` for that session.

**Important**  
This token should only be used once in your first call to `GetLatestConfiguration`. You *must* use the new token in the `GetLatestConfiguration` response (`NextPollConfigurationToken`) in each subsequent call to `GetLatestConfiguration`. To support long poll use cases, the tokens are valid for up to 24 hours. If a `GetLatestConfiguration` call uses an expired token, the system returns `BadRequestException`.

When calling `GetLatestConfiguration`, your client code sends the most recent `ConfigurationToken` value it has and receives in response:
+ `NextPollConfigurationToken`: the `ConfigurationToken` value to use on the next call to `GetLatestConfiguration`.
+ `NextPollIntervalInSeconds`: the duration the client should wait before making its next call to `GetLatestConfiguration`.
+ The configuration: the latest data intended for the session. This may be empty if the client already has the latest version of the configuration.

**Important**  
Note the following important information.  
The [StartConfigurationSession](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html) API should only be called once per application, environment, configuration profile, and client to establish a session with the service. This is typically done in the startup of your application or immediately prior to the first retrieval of a configuration.
If your configuration is deployed using a `KmsKeyIdentifier`, your request to receive the configuration must include permission to call `kms:Decrypt`. For more information, see [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) in the *AWS Key Management Service API Reference*.
The API operation previously used to retrieve configuration data, `GetConfiguration`, is deprecated. The `GetConfiguration` API operation does not support encrypted configurations.

## (Example) Retrieving a configuration by calling AWS AppConfig APIs


The following AWS CLI example demonstrates how to retrieve configuration data by using the AWS AppConfig Data `StartConfigurationSession` and `GetLatestConfiguration` API operations. The first command starts a configuration session. This call includes the IDs (or names) of the AWS AppConfig application, the environment, and the configuration profile. The API returns an `InitialConfigurationToken` used to fetch your configuration data.

```
aws appconfigdata start-configuration-session \
    --application-identifier application_name_or_ID \
    --environment-identifier environment_name_or_ID \
    --configuration-profile-identifier configuration_profile_name_or_ID
```

The system responds with information in the following format.

```
{
   "InitialConfigurationToken": initial configuration token
}
```

After starting a session, use [InitialConfigurationToken](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html#API_appconfigdata_StartConfigurationSession_ResponseSyntax) to call [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html) to fetch your configuration data. The configuration data is saved to the `mydata.json` file.

```
aws appconfigdata get-latest-configuration \
    --configuration-token initial configuration token mydata.json
```

The first call to `GetLatestConfiguration` uses the `ConfigurationToken` obtained from `StartConfigurationSession`. The following information is returned.

```
{
    "NextPollConfigurationToken" : next configuration token,
    "ContentType" : content type of configuration,
    "NextPollIntervalInSeconds" : 60
}
```

Subsequent calls to `GetLatestConfiguration` *must* provide `NextPollConfigurationToken` from the previous response.

```
aws appconfigdata get-latest-configuration \
    --configuration-token next configuration token mydata.json
```

**Important**  
Note the following important details about the `GetLatestConfiguration` API operation:  
The `GetLatestConfiguration` response includes a `Configuration` section that shows the configuration data. The `Configuration` section only appears if the system finds new or updated configuration data. If the system doesn't find new or updated configuration data, then the `Configuration` data is empty. 
You receive a new `ConfigurationToken` in every response from `GetLatestConfiguration`.
We recommend tuning the polling frequency of your `GetLatestConfiguration` API calls based on your budget, the expected frequency of your configuration deployments, and the number of targets for a configuration.