From aws-appconfig
Manage application configuration and feature flags with AWS AppConfig — deployment strategies, Lambda/ECS/EKS/EC2/Batch/on-premises integration, and Powertools utilities
npx claudepluginhub gunnargrosch/gunnargrosch-plugins --plugin aws-appconfigThis skill is limited to using the following tools:
AppConfig is a **regional service**. Resources created in one region do not exist in another. Before running any `aws appconfig` CLI command:
Guides FeatBit deployment on AWS via ECS Fargate with Terraform, EKS Kubernetes, and high availability configurations for multiple services.
Deploys and operates containerized workloads on AWS ECS, Fargate, and ECR. Covers task definitions, services, debugging with ECS Exec, scaling, load balancers, and image management for AWS container optimization.
Builds, manages, operates Amazon API Gateway REST, HTTP, WebSocket APIs. Troubleshoots errors, configures authorizers/domains/throttling/CORS, provides SAM/CloudFormation IaC templates.
Share bugs, ideas, or general feedback.
AppConfig is a regional service. Resources created in one region do not exist in another. Before running any aws appconfig CLI command:
AWS_REGION, AWS_DEFAULT_REGION, or ask which region their AppConfig resources are in--region to every aws appconfig and aws appconfigdata command, or verify the environment variable is set correctlyaws appconfig list-applications --region <region> first to confirm the region is correct before proceeding with other commandssamconfig.toml). Subsequent CLI commands must target the same region — a mismatch is the most common cause of ResourceNotFoundExceptionManage application configuration and feature flags with AWS AppConfig — a capability of AWS Systems Manager. This skill provides comprehensive guidance for dynamic configuration management, feature flag workflows, safe deployment strategies with automatic rollback, and integration with AWS Lambda, ECS, EKS, EC2, AWS Batch, and on-premises environments.
AWS AppConfig enables you to create, manage, and deploy application configurations and feature flags independently from code deployments. Configuration changes are deployed using strategies that validate changes and roll back automatically if a CloudWatch alarm fires.
Key capabilities:
localhost:2772public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x)Refer to these supporting files for detailed guidance on specific workflows:
| File | When to Use |
|---|---|
| getting-started.md | Decision tree, circuit breaker pattern, IaC options (SAM/CDK/Terraform/CloudFormation) |
| configuration-profiles.md | Application setup, environments, freeform configuration profiles, validators, configuration sources, CI/CD deployment patterns |
| feature-flags.md | Feature flag creation, native AppConfig feature flags, multi-variant flags, targeting rules, Powertools integration, testing patterns |
| deployment-strategies.md | Built-in and custom strategies, growth types, bake time, automatic rollback, revert, scheduled deployments |
| integration.md | Lambda extension, ECS/EKS agent, EC2 agent, AWS Batch, on-premises/hybrid, VPC endpoints, Lambda@Edge, Step Functions, Powertools Parameters, SDK polling, caching, multi-region, multi-account governance, browser/mobile proxy, local development |
| monitoring.md | CloudWatch metrics, deployment alarms, rollback notification pattern, extensions for EventBridge/SNS/SQS, CloudTrail auditing |
| troubleshooting.md | Symptom-based diagnosis and resolution for common AppConfig issues |
create-hosted-configuration-version — invalid content is silently accepted. Always call aws appconfig validate-configuration explicitly before start-deploymentGetConfiguration API — it was deprecated January 28, 2022; use StartConfigurationSession + GetLatestConfigurationAppConfig.Linear20PercentEvery6Minutes or AppConfig.Canary10Percent20Minutes for production deploymentsappconfig:GetLatestConfiguration to specific application/environment/profile ARNsKmsKeyIdentifier)com.amazonaws.region.appconfig and com.amazonaws.region.appconfigdata) for private accessappconfig-fips.region.amazonaws.com and appconfigdata-fips.region.amazonaws.com) — available in US and GovCloud regionsappconfig.region.api.aws and appconfigdata.region.api.aws) — available in all regions including GovCloudappconfig:* — scope to specific actions and resource ARNs| Resource | Default | Adjustable To | Notes |
|---|---|---|---|
| Applications per account per Region | 100 | 300 | Rarely hit |
| Configuration profiles per application | 100 | 500 | Rarely hit |
| Environments per application | 20 | 100 | Commonly hit in multi-stage pipelines — request increase early |
| Deployment strategies per account per Region | 20 | 100 | Rarely hit |
| Configuration size (hosted store) | 2,048 KB (≈2 MB) | 4,000 KB (≈4 MB) | Commonly hit with large flag sets — see configuration-profiles.md for split strategies |
| Deployment size | 2,048 KB (≈2 MB) | 4,000 KB (≈4 MB) | Same as above |
| Monitors (alarms) per environment | 5 (hard limit) | — | Use composite alarms to combine signals within the 5-monitor limit |
| Validators per configuration profile | 2 (hard limit) | — | One JSON Schema + one Lambda is the typical max |
| Feature flag attributes per flag | 25 (hard limit) | — | |
| Feature flag key length | 64 characters (hard limit) | — | |
| Feature flag variants per flag | 32 (hard limit) | — | |
| Active deployments per environment | 1 (hard limit) | — | Common blocker — ConflictException if a deployment is in progress |
| Deployment strategy duration (max) | 1,440 min (24 hours) | — | |
| GetLatestConfiguration TPS | 1,000 | Contact support | Rarely hit with agent caching |
| StartConfigurationSession TPS | 500 | Contact support | Can be hit during mass cold starts |
| Configuration token validity | 24 hours | — | |
| Minimum poll interval (SDK) | 15 seconds | — | |
| Lambda validator timeout | 15 seconds (hard limit) | — | Includes cold start time |
| Revert window after deployment | 72 hours | — |
Check Service Quotas for your account limits: aws service-quotas list-service-quotas --service-code appconfig. Note: Some limits (monitors per environment, validators per profile, feature flag attributes) are hard limits documented in the user guide and do not appear in the Service Quotas API.
AppConfig uses pay-as-you-go pricing:
Use the AppConfig Agent (Lambda extension, container sidecar, or EC2 daemon) to optimize costs — it caches configurations locally and only polls for updates at the configured interval.
Cost estimation example: A Lambda function invoked 1M times/day with a 45-second poll interval:
configuration received charges depend on deployment frequency, not invocation countPricing is subject to change. Check the AWS AppConfig pricing page for current rates.
| Error | Cause | Solution |
|---|---|---|
BadRequestException on deploy | Configuration fails validation | Fix configuration against the validator schema (JSON Schema draft-04) |
ConflictException on deploy | Another deployment is in progress | Wait for the current deployment or use aws appconfig stop-deployment |
ResourceNotFoundException | Wrong application, environment, or profile ID, or wrong region | Verify IDs with aws appconfig list-applications and ensure --region matches the deployment region |
Invalid base64 on create-hosted-configuration-version | Raw JSON passed to --content | Use fileb:// prefix: --content fileb://config.json or --content fileb://<(echo -n '...') |
| Lambda extension returns stale config | Cache not refreshed | Check AWS_APPCONFIG_EXTENSION_POLL_INTERVAL_SECONDS (default 45s) |
| Deployment rolled back | CloudWatch alarm triggered during deployment or bake time | Check the alarm metric to identify the root cause |
| Deployment stuck in BAKING | Alarm in INSUFFICIENT_DATA — no metric data during bake | Set TreatMissingData: notBreaching on the alarm |
| Feature flag evaluates to default | Flag not found, enabled: false, or context mismatch | Verify flag key (case-sensitive), enabled status, and targeting rule context |
Connection refused on localhost:2772 | Lambda extension layer not added | Add the AppConfig extension layer ARN for your region and architecture |
AccessDeniedException | Missing IAM permissions | Add appconfig:StartConfigurationSession and appconfig:GetLatestConfiguration |
For detailed troubleshooting, see troubleshooting.md.
This skill requires AWS credentials configured on the host machine:
aws configure or set up named profiles in ~/.aws/credentialsAWS_PROFILE - Named profile to useAWS_REGION - Target AWS region (critical — AppConfig resources are regional)aws sts get-caller-identity to confirm credentials are validImportant: Always ensure AWS_REGION is set or pass --region to every AWS CLI command. AppConfig resources are regional — CLI commands will fail with ResourceNotFoundException if the region doesn't match where the resources were created. When deploying with SAM, the region is set in samconfig.toml, but subsequent aws appconfig CLI commands (e.g., creating new configuration versions) must target the same region explicitly.
For Lambda functions reading configuration at runtime (least-privilege):
{
"Effect": "Allow",
"Action": [
"appconfig:StartConfigurationSession",
"appconfig:GetLatestConfiguration"
],
"Resource": "arn:aws:appconfig:REGION:ACCOUNT:application/APP_ID/environment/ENV_ID/configuration/PROFILE_ID"
}
sam --version