Our great sponsors
-
update-aws-ip-ranges
Lambda function that automatically create or update AWS resource with AWS service's IP ranges from the ip-ranges.json file. You can configure which service and region to get range. You can also configure to which resources you want to create or update with those ranges. It supports WAF IPSet and VPC Prefix List.
-
serverless-application-model
Discontinued AWS Serverless Application Model (SAM) is an open-source framework for building serverless applications [Moved to: https://github.com/aws/serverless-application-model] (by awslabs)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
update-aws-ip-ranges
Lambda function that creates or updates AWS resource with AWS service's IP ranges from the ip-ranges.json file. Configure which service and region. Configure to which resources you want to create or update with those ranges. It supports WAF IPSet and VPC Prefix List and sharing via Resource Access Manager. (by sjramblings)
-
powertools-lambda-python
A developer toolkit to implement Serverless best practices and increase developer velocity.
But why don't AWS do this for us? I can't answer that today; however, a good example of such automation exists in the AWS samples GitHub here.
Parameters: AppConfigAppName: Type: String Description: AppConfig Application Name Default: aws-ip-ranges AppConfigAppEnvironmentName: Type: String Description: AppConfig Application Environment Name Default: dev AppConfigName: Type: String Description: AppConfig Name Default: services AppConfigLayerArn: Type: String Description: Retrieve AWS AppConfig Lambda extension arn from `https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-lambda-extensions-versions.html#appconfig-integration-lambda-extensions-enabling-x86-64` Default: arn:aws:lambda:ap-southeast-2:080788657173:layer:AWS-AppConfig-Extension:91 AwsOrgArn: Type: String Description: The ARN of the AWS Organization used to share Prefix Lists Default: notset Resources: SAMConfigApplication: Type: AWS::AppConfig::Application Properties: Name: !Ref AppConfigAppName Environment: Type: AWS::AppConfig::Environment Properties: Name: !Ref AppConfigAppEnvironmentName ApplicationId: !Ref SAMConfigApplication SAMConfigConfigurationProfile: Type: AWS::AppConfig::ConfigurationProfile Properties: ApplicationId: !Ref SAMConfigApplication Name: !Ref AppConfigName Type: 'AWS.Freeform' LocationUri: 'hosted' SAMConfigDeploymentStrategy: Type: AWS::AppConfig::DeploymentStrategy Properties: Name: "SAMConfigDeploymentStrategy" Description: "A deployment strategy to deploy the config immediately" DeploymentDurationInMinutes: 0 FinalBakeTimeInMinutes: 0 GrowthFactor: 100 GrowthType: LINEAR ReplicateTo: NONE BasicHostedConfigurationVersion: Type: AWS::AppConfig::HostedConfigurationVersion Properties: ApplicationId: !Ref SAMConfigApplication ConfigurationProfileId: !Ref SAMConfigConfigurationProfile Description: 'AWS Service configuration for update-aws-ip-ranges' ContentType: 'application/json' Content: | { "Services": [ { "Name": "CODEBUILD", "Regions": [ "ap-southeast-2" ], "PrefixList": { "Enable": true, "Summarize": true }, "WafIPSet": { "Enable": true, "Summarize": true, "Scopes": [ "REGIONAL" ] } } ] } AppConfigDeployment: Type: AWS::AppConfig::Deployment Properties: ApplicationId: !Ref SAMConfigApplication ConfigurationProfileId: !Ref SAMConfigConfigurationProfile ConfigurationVersion: !Ref BasicHostedConfigurationVersion DeploymentStrategyId: !Ref SAMConfigDeploymentStrategy EnvironmentId: !Ref Environment LambdaUpdateIPRanges: Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: src/ Handler: app.lambda_handler Runtime: python3.9 Architectures: - x86_64 Environment: Variables: APP_CONFIG_APP_NAME: !Ref AppConfigAppName APP_CONFIG_APP_ENV_NAME: !Ref AppConfigAppEnvironmentName APP_CONFIG_NAME: !Ref AppConfigName AWS_ORG_ARN: !Ref AwsOrgArn LOG_LEVEL: INFO Layers: - !Ref AppConfigLayerArn
As noted above, all code is available at https://github.com/sjramblings/update-aws-ip-ranges. I will also raise Pull Requests to backport some of this into the AWS Samples repo.
As the homepage displays, Lambda PowerTools is a suite of utilities for AWS Lambda functions to ease adopting best practices such as tracing, structured logging, custom metrics, idempotency, batching, and more.