diff --git a/.github/workflows/deploy-enterprise-test.yml b/.github/workflows/deploy-enterprise-test.yml index a5b3895f4..dd6f32263 100644 --- a/.github/workflows/deploy-enterprise-test.yml +++ b/.github/workflows/deploy-enterprise-test.yml @@ -50,7 +50,7 @@ jobs: job_spec/ARIA_AUTORIFT.yml job_spec/ARIA_RAIDER.yml job_spec/INSAR_ISCE.yml - instance_types: m6id.xlarge,m6id.2xlarge,m6id.4xlarge,m6id.8xlarge,m6idn.xlarge,m6idn.2xlarge,m6idn.4xlarge,m6idn.8xlarge + instance_types: c6id.xlarge,c6id.2xlarge,c6id.4xlarge,c6id.8xlarge default_max_vcpus: 640 expanded_max_vcpus: 640 required_surplus: 0 diff --git a/.github/workflows/deploy-enterprise.yml b/.github/workflows/deploy-enterprise.yml index 74fd1d6fe..fee664ef1 100644 --- a/.github/workflows/deploy-enterprise.yml +++ b/.github/workflows/deploy-enterprise.yml @@ -45,7 +45,7 @@ jobs: job_spec/ARIA_AUTORIFT.yml job_spec/ARIA_RAIDER.yml job_spec/INSAR_ISCE.yml - instance_types: m6id.xlarge,m6id.2xlarge,m6id.4xlarge,m6id.8xlarge,m6idn.xlarge,m6idn.2xlarge,m6idn.4xlarge,m6idn.8xlarge + instance_types: c6id.xlarge,c6id.2xlarge,c6id.4xlarge,c6id.8xlarge default_max_vcpus: 4000 # Max: 13000 expanded_max_vcpus: 4000 # Max: 13000 required_surplus: 0 @@ -65,7 +65,7 @@ jobs: job_spec/ARIA_AUTORIFT.yml job_spec/ARIA_RAIDER.yml job_spec/INSAR_ISCE.yml - instance_types: m6id.xlarge,m6id.2xlarge,m6id.4xlarge,m6id.8xlarge,m6idn.xlarge,m6idn.2xlarge,m6idn.4xlarge,m6idn.8xlarge + instance_types: c6id.xlarge,c6id.2xlarge,c6id.4xlarge,c6id.8xlarge default_max_vcpus: 1000 # Max: 10316 expanded_max_vcpus: 1000 # Max: 10316 required_surplus: 0 @@ -85,7 +85,7 @@ jobs: job_spec/ARIA_AUTORIFT.yml job_spec/ARIA_RAIDER.yml job_spec/INSAR_ISCE.yml - instance_types: m6id.xlarge,m6id.2xlarge,m6id.4xlarge,m6id.8xlarge,m6idn.xlarge,m6idn.2xlarge,m6idn.4xlarge,m6idn.8xlarge + instance_types: c6id.xlarge,c6id.2xlarge,c6id.4xlarge,c6id.8xlarge default_max_vcpus: 1600 # Max 1652 expanded_max_vcpus: 1600 # Max 1652 required_surplus: 0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0555562ec..fde59df15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [7.8.0] + +### Added +- Allow overriding certain AWS Batch compute environment parameters (including instance types and AMI) within a job spec. +- Allow job spec tasks to require GPU resources. + +### Changed +- The `SRG_GSLC` job type now runs within a GPU environment. +- Revert ARIA hyp3 deployments back to C-instance family - including the job-spec CLI parameter `omp-num-threads` to ensure multiple jobs fit on single instance. +- Deployments with INSAR_ISCE.yml job specs will now use a dedicated compute environment with on-demand instances instead of spot instances for INSAR_ISCE jobs. + ## [7.7.2] ### Change diff --git a/apps/compute-cf.yml.j2 b/apps/compute-cf.yml.j2 index 0cb23e152..80e52b489 100644 --- a/apps/compute-cf.yml.j2 +++ b/apps/compute-cf.yml.j2 @@ -29,6 +29,15 @@ Outputs: JobQueueArn: Value: !Ref BatchJobQueue + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {% set name = job_spec['compute_environment']['name'] %} + {{ name }}ComputeEnvironmentArn: + Value: !Ref {{ name }}ComputeEnvironment + + {{ name }}JobQueueArn: + Value: !Ref {{ name }}JobQueue + {% endfor %} + TaskRoleArn: Value: !GetAtt TaskRole.Arn @@ -85,18 +94,58 @@ Resources: Tags: Name: !Ref AWS::StackName + BatchJobQueue: + Type: AWS::Batch::JobQueue + Properties: + Priority: 1 + ComputeEnvironmentOrder: + - ComputeEnvironment: !Ref ComputeEnvironment + Order: 1 + SchedulingPolicyArn: !Ref SchedulingPolicy + SchedulingPolicy: Type: AWS::Batch::SchedulingPolicy - BatchJobQueue: + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {% set env = job_spec['compute_environment'] %} + {% set name = env['name'] %} + {% set instance_types = env['instance_types'].split(',') if 'instance_types' in env else '!Ref InstanceTypes' %} + {% set ami_id = env['ami_id'] if 'ami_id' in env else '!Ref AmiId' %} + {% set type = env['allocation_type'] if 'allocation_type' in env else 'SPOT' %} + {% set strategy = env['allocation_strategy'] if 'allocation_strategy' in env else 'SPOT_PRICE_CAPACITY_OPTIMIZED' %} + {{ name }}ComputeEnvironment: + Type: AWS::Batch::ComputeEnvironment + Properties: + ServiceRole: !GetAtt BatchServiceRole.Arn + Type: MANAGED + ComputeResources: + Type: {{ type }} + AllocationStrategy: {{ strategy }} + MinvCpus: 0 + MaxvCpus: !Ref MaxvCpus + InstanceTypes: {{ instance_types }} + ImageId: {{ ami_id }} + Subnets: !Ref SubnetIds + InstanceRole: !Ref InstanceProfile + SecurityGroupIds: + - !Ref SecurityGroup + LaunchTemplate: + LaunchTemplateId: !Ref LaunchTemplate + Version: !GetAtt LaunchTemplate.LatestVersionNumber + Tags: + Name: !Ref AWS::StackName + + {{ name }}JobQueue: Type: AWS::Batch::JobQueue Properties: Priority: 1 ComputeEnvironmentOrder: - - ComputeEnvironment: !Ref ComputeEnvironment + - ComputeEnvironment: !Ref {{ name }}ComputeEnvironment Order: 1 SchedulingPolicyArn: !Ref SchedulingPolicy + {% endfor %} + TaskRole: Type: {{ 'Custom::JplRole' if security_environment in ('JPL', 'JPL-public') else 'AWS::IAM::Role' }} Properties: diff --git a/apps/handle-batch-event/handle-batch-event-cf.yml.j2 b/apps/handle-batch-event/handle-batch-event-cf.yml.j2 index c115a8f5a..386ae87c6 100644 --- a/apps/handle-batch-event/handle-batch-event-cf.yml.j2 +++ b/apps/handle-batch-event/handle-batch-event-cf.yml.j2 @@ -5,6 +5,11 @@ Parameters: JobQueueArn: Type: String + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {{ job_spec['compute_environment']['name'] }}JobQueueArn: + Type: String + {% endfor %} + JobsTable: Type: String @@ -95,6 +100,9 @@ Resources: detail: jobQueue: - !Ref JobQueueArn + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + - !Ref {{ job_spec['compute_environment']['name'] }}JobQueueArn + {% endfor %} status: - RUNNING Targets: diff --git a/apps/main-cf.yml.j2 b/apps/main-cf.yml.j2 index bc5ad6135..13b7405d5 100644 --- a/apps/main-cf.yml.j2 +++ b/apps/main-cf.yml.j2 @@ -154,6 +154,10 @@ Resources: Properties: Parameters: ComputeEnvironmentArn: !GetAtt Cluster.Outputs.ComputeEnvironmentArn + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {% set name = job_spec['compute_environment']['name'] %} + {{ name }}ComputeEnvironmentArn: !GetAtt Cluster.Outputs.{{ name }}ComputeEnvironmentArn + {% endfor %} DefaultMaxvCpus: !Ref DefaultMaxvCpus ExpandedMaxvCpus: !Ref ExpandedMaxvCpus MonthlyBudget: !Ref MonthlyBudget @@ -169,6 +173,10 @@ Resources: Properties: Parameters: JobQueueArn: !GetAtt Cluster.Outputs.JobQueueArn + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {% set name = job_spec['compute_environment']['name'] %} + {{ name }}JobQueueArn: !GetAtt Cluster.Outputs.{{ name }}JobQueueArn + {% endfor %} JobsTable: !Ref JobsTable {% if security_environment == 'EDC' %} SecurityGroupId: !GetAtt Cluster.Outputs.SecurityGroupId @@ -181,6 +189,10 @@ Resources: Properties: Parameters: JobQueueArn: !GetAtt Cluster.Outputs.JobQueueArn + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {% set name = job_spec['compute_environment']['name'] %} + {{ name }}JobQueueArn: !GetAtt Cluster.Outputs.{{ name }}JobQueueArn + {% endfor %} TaskRoleArn: !GetAtt Cluster.Outputs.TaskRoleArn JobsTable: !Ref JobsTable Bucket: !Ref ContentBucket diff --git a/apps/scale-cluster/scale-cluster-cf.yml.j2 b/apps/scale-cluster/scale-cluster-cf.yml.j2 index 340d8906c..358f095b3 100644 --- a/apps/scale-cluster/scale-cluster-cf.yml.j2 +++ b/apps/scale-cluster/scale-cluster-cf.yml.j2 @@ -5,6 +5,12 @@ Parameters: ComputeEnvironmentArn: Type: String + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {% set name = job_spec['compute_environment']['name'] %} + {{ name }}ComputeEnvironmentArn: + Type: String + {% endfor %} + DefaultMaxvCpus: Type: Number MinValue: 0 @@ -79,7 +85,11 @@ Resources: Resource: "*" - Effect: Allow Action: batch:UpdateComputeEnvironment - Resource: !Ref ComputeEnvironmentArn + Resource: + - !Ref ComputeEnvironmentArn + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + - !Ref {{ job_spec['compute_environment']['name'] }}ComputeEnvironmentArn + {% endfor %} Lambda: Type: AWS::Lambda::Function @@ -118,6 +128,11 @@ Resources: Targets: - Arn: !GetAtt Lambda.Arn Id: lambda + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {% set name = job_spec['compute_environment']['name'] %} + - Arn: !GetAtt {{ name }}Lambda.Arn + Id: {{ name }}lambda + {% endfor %} EventPermission: Type: AWS::Lambda::Permission @@ -126,3 +141,50 @@ Resources: Action: lambda:InvokeFunction Principal: events.amazonaws.com SourceArn: !GetAtt Schedule.Arn + + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {% set name = job_spec['compute_environment']['name'] %} + {{ name }}LogGroup: + Type: AWS::Logs::LogGroup + Properties: + LogGroupName: !Sub "{{ '/aws/lambda/${' + name + 'Lambda}' }}" + RetentionInDays: 90 + + {{ name }}Lambda: + Type: AWS::Lambda::Function + Properties: + Environment: + Variables: + COMPUTE_ENVIRONMENT_ARN: !Ref {{ name }}ComputeEnvironmentArn + MONTHLY_BUDGET: !Ref MonthlyBudget + DEFAULT_MAX_VCPUS: !Ref DefaultMaxvCpus + EXPANDED_MAX_VCPUS: !Ref ExpandedMaxvCpus + REQUIRED_SURPLUS: !Ref RequiredSurplus + Code: src/ + Handler: scale_cluster.lambda_handler + MemorySize: 128 + Role: !GetAtt Role.Arn + Runtime: python3.9 + Timeout: 30 + {% if security_environment == 'EDC' %} + VpcConfig: + SecurityGroupIds: + - !Ref SecurityGroupId + SubnetIds: !Ref SubnetIds + {% endif %} + + {{ name }}EventInvokeConfig: + Type: AWS::Lambda::EventInvokeConfig + Properties: + FunctionName: !Ref {{ name }}Lambda + Qualifier: $LATEST + MaximumRetryAttempts: 0 + + {{ name }}EventPermission: + Type: AWS::Lambda::Permission + Properties: + FunctionName: !GetAtt {{ name }}Lambda.Arn + Action: lambda:InvokeFunction + Principal: events.amazonaws.com + SourceArn: !GetAtt Schedule.Arn + {% endfor %} diff --git a/apps/step-function.json.j2 b/apps/step-function.json.j2 index 57d0c98aa..68506f211 100644 --- a/apps/step-function.json.j2 +++ b/apps/step-function.json.j2 @@ -207,7 +207,9 @@ "Parameters": { "JobDefinition": "{{ '${'+ snake_to_pascal_case(task['name']) + '}' }}", "JobName.$": "$.job_id", - "JobQueue": "${JobQueueArn}", + {% set name = job_spec['compute_environment']['name'] %} + {% set job_queue = name + 'JobQueueArn' if 'Default' != name else 'JobQueueArn' %} + "JobQueue": "{{ '${' + job_queue + '}' }}", "ShareIdentifier": "default", "SchedulingPriorityOverride.$": "$.priority", "Parameters.$": "$.job_parameters", diff --git a/apps/workflow-cf.yml.j2 b/apps/workflow-cf.yml.j2 index 642d6014d..ec740395b 100644 --- a/apps/workflow-cf.yml.j2 +++ b/apps/workflow-cf.yml.j2 @@ -5,6 +5,11 @@ Parameters: JobQueueArn: Type: String + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {{ job_spec['compute_environment']['name'] }}JobQueueArn: + Type: String + {% endfor %} + JobsTable: Type: String @@ -36,6 +41,7 @@ Outputs: StepFunctionArn: Value: !Ref StepFunction + Resources: {% for job_type, job_spec in job_types.items() %} {% for task in job_spec['tasks'] %} @@ -60,6 +66,10 @@ Resources: Value: "{{ task['vcpu'] }}" - Type: MEMORY Value: "{{ task['memory'] }}" + {% if 'gpu' in task %} + - Type: GPU + Value: "{{ task['gpu'] }}" + {% endif %} Command: {% for command in task['command'] %} - {{ command }} @@ -83,6 +93,10 @@ Resources: DefinitionS3Location: step-function.json DefinitionSubstitutions: JobQueueArn: !Ref JobQueueArn + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + {% set name = job_spec['compute_environment']['name'] %} + {{ name }}JobQueueArn: !Ref {{ name }}JobQueueArn + {% endfor %} {% for job_type, job_spec in job_types.items() %} {% for task in job_spec['tasks'] %} {{ snake_to_pascal_case(task['name']) }}: !Ref {{ snake_to_pascal_case(task['name']) }} @@ -124,6 +138,9 @@ Resources: Action: batch:SubmitJob Resource: - !Ref JobQueueArn + {% for job_type, job_spec in job_types.items() if 'Default' != job_spec['compute_environment']['name'] %} + - !Ref {{ job_spec['compute_environment']['name'] }}JobQueueArn + {% endfor %} {% for job_type, job_spec in job_types.items() %} {% for task in job_spec['tasks'] %} - !Ref {{ snake_to_pascal_case(task['name']) }} diff --git a/job_spec/ARIA_AUTORIFT.yml b/job_spec/ARIA_AUTORIFT.yml index 369584bb4..aaea5beb5 100644 --- a/job_spec/ARIA_AUTORIFT.yml +++ b/job_spec/ARIA_AUTORIFT.yml @@ -42,6 +42,8 @@ AUTORIFT: DEFAULT: cost: 1.0 validators: [] + compute_environment: + name: 'Default' tasks: - name: '' image: ghcr.io/asfhyp3/hyp3-autorift diff --git a/job_spec/ARIA_RAIDER.yml b/job_spec/ARIA_RAIDER.yml index a2586092e..840a67154 100644 --- a/job_spec/ARIA_RAIDER.yml +++ b/job_spec/ARIA_RAIDER.yml @@ -25,6 +25,8 @@ ARIA_RAIDER: DEFAULT: cost: 1.0 validators: [] + compute_environment: + name: 'Default' tasks: - name: '' image: ghcr.io/dbekaert/raider diff --git a/job_spec/AUTORIFT.yml b/job_spec/AUTORIFT.yml index 73240557e..4f12faf6f 100644 --- a/job_spec/AUTORIFT.yml +++ b/job_spec/AUTORIFT.yml @@ -39,6 +39,8 @@ AUTORIFT: DEFAULT: cost: 1.0 validators: [] + compute_environment: + name: 'Default' tasks: - name: '' image: ghcr.io/asfhyp3/hyp3-autorift diff --git a/job_spec/AUTORIFT_ITS_LIVE.yml b/job_spec/AUTORIFT_ITS_LIVE.yml index 79e9c6373..3b72af171 100644 --- a/job_spec/AUTORIFT_ITS_LIVE.yml +++ b/job_spec/AUTORIFT_ITS_LIVE.yml @@ -51,6 +51,8 @@ AUTORIFT: DEFAULT: cost: 1.0 validators: [] + compute_environment: + name: 'Default' tasks: - name: '' image: ghcr.io/asfhyp3/hyp3-autorift diff --git a/job_spec/INSAR_GAMMA.yml b/job_spec/INSAR_GAMMA.yml index a4605062d..2d376bf8d 100644 --- a/job_spec/INSAR_GAMMA.yml +++ b/job_spec/INSAR_GAMMA.yml @@ -82,6 +82,8 @@ INSAR_GAMMA: cost: 1.0 validators: - check_dem_coverage + compute_environment: + name: 'Default' tasks: - name: '' image: 845172464411.dkr.ecr.us-west-2.amazonaws.com/hyp3-gamma diff --git a/job_spec/INSAR_ISCE.yml b/job_spec/INSAR_ISCE.yml index 8715ca330..a213eaaab 100644 --- a/job_spec/INSAR_ISCE.yml +++ b/job_spec/INSAR_ISCE.yml @@ -92,12 +92,16 @@ INSAR_ISCE: DEFAULT: cost: 1.0 validators: [] + compute_environment: + name: 'InsarIsceAria' + allocation_type: EC2 + allocation_strategy: BEST_FIT_PROGRESSIVE tasks: - name: '' image: ghcr.io/access-cloud-based-insar/dockerizedtopsapp command: - ++omp-num-threads - - '2' # 2 for the m instance family; 4 for the c + - '4' # 2 for the m instance family; 4 for the c - --bucket - '!Ref Bucket' - --bucket-prefix diff --git a/job_spec/INSAR_ISCE_BURST.yml b/job_spec/INSAR_ISCE_BURST.yml index 512f7d276..d741b5aa4 100644 --- a/job_spec/INSAR_ISCE_BURST.yml +++ b/job_spec/INSAR_ISCE_BURST.yml @@ -44,6 +44,8 @@ INSAR_ISCE_BURST: - check_valid_polarizations - check_same_burst_ids - check_not_antimeridian + compute_environment: + name: 'Default' tasks: - name: '' image: ghcr.io/asfhyp3/hyp3-isce2 diff --git a/job_spec/RTC_GAMMA.yml b/job_spec/RTC_GAMMA.yml index e94002059..393814074 100644 --- a/job_spec/RTC_GAMMA.yml +++ b/job_spec/RTC_GAMMA.yml @@ -103,6 +103,8 @@ RTC_GAMMA: cost: 1.0 validators: - check_dem_coverage + compute_environment: + name: 'Default' tasks: - name: '' image: 845172464411.dkr.ecr.us-west-2.amazonaws.com/hyp3-gamma diff --git a/job_spec/S1_CORRECTION_ITS_LIVE.yml b/job_spec/S1_CORRECTION_ITS_LIVE.yml index 40995ff13..8de729ce6 100644 --- a/job_spec/S1_CORRECTION_ITS_LIVE.yml +++ b/job_spec/S1_CORRECTION_ITS_LIVE.yml @@ -29,6 +29,8 @@ S1_CORRECTION_TEST: DEFAULT: cost: 1.0 validators: [] + compute_environment: + name: 'Default' tasks: - name: '' image: ghcr.io/asfhyp3/hyp3-autorift diff --git a/job_spec/SRG_GSLC.yml b/job_spec/SRG_GSLC.yml index d3afa07c9..4f1f47428 100644 --- a/job_spec/SRG_GSLC.yml +++ b/job_spec/SRG_GSLC.yml @@ -24,12 +24,19 @@ SRG_GSLC: cost_profiles: DEFAULT: cost: 1.0 + compute_environment: + name: SrgGslc + instance_types: g6.2xlarge + # Image ID for: /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id + ami_id: ami-0729c079aae647cb3 tasks: - name: '' image: ghcr.io/asfhyp3/hyp3-srg + image_tag: 0.7.0.gpu command: - ++process - back_projection + - --gpu - --bucket - '!Ref Bucket' - --bucket-prefix @@ -37,7 +44,8 @@ SRG_GSLC: - Ref::granules timeout: 10800 vcpu: 1 - memory: 31500 + gpu: 1 + memory: 30500 secrets: - EARTHDATA_USERNAME - EARTHDATA_PASSWORD diff --git a/job_spec/WATER_MAP.yml b/job_spec/WATER_MAP.yml index 26ee311bf..89105c97a 100644 --- a/job_spec/WATER_MAP.yml +++ b/job_spec/WATER_MAP.yml @@ -116,6 +116,8 @@ WATER_MAP: cost: 1.0 validators: - check_dem_coverage + compute_environment: + name: 'Default' tasks: - name: RTC image: 845172464411.dkr.ecr.us-west-2.amazonaws.com/hyp3-gamma diff --git a/job_spec/WATER_MAP_EQ.yml b/job_spec/WATER_MAP_EQ.yml index 202608a88..d4a16d23f 100644 --- a/job_spec/WATER_MAP_EQ.yml +++ b/job_spec/WATER_MAP_EQ.yml @@ -58,6 +58,8 @@ WATER_MAP_EQ: cost: 1.0 validators: - check_dem_coverage + compute_environment: + name: 'Default' tasks: - name: RTC image: 845172464411.dkr.ecr.us-west-2.amazonaws.com/hyp3-gamma diff --git a/requirements-all.txt b/requirements-all.txt index b9ca49deb..dfbcdcf3a 100644 --- a/requirements-all.txt +++ b/requirements-all.txt @@ -5,16 +5,16 @@ -r requirements-apps-start-execution-worker.txt -r requirements-apps-disable-private-dns.txt -r requirements-apps-update-db.txt -boto3==1.34.155 +boto3==1.35.6 jinja2==3.1.4 moto[dynamodb]==5.0.12 pytest==8.3.2 -PyYAML==6.0.1 +PyYAML==6.0.2 responses==0.25.3 flake8==7.1.1 flake8-import-order==0.18.2 flake8-blind-except==0.2.1 flake8-builtins==2.5.0 -setuptools==72.1.0 +setuptools==73.0.1 openapi-spec-validator==0.7.1 -cfn-lint==1.9.5 +cfn-lint==1.10.3 diff --git a/requirements-apps-api.txt b/requirements-apps-api.txt index 3a4d5aec4..6d6e51711 100644 --- a/requirements-apps-api.txt +++ b/requirements-apps-api.txt @@ -1,11 +1,11 @@ flask==2.2.5 Flask-Cors==4.0.1 jsonschema==4.23.0 -openapi-core==0.19.2 +openapi-core==0.19.3 prance==23.6.21.0 PyJWT==2.9.0 requests==2.32.3 serverless_wsgi==3.0.4 -shapely==2.0.5 +shapely==2.0.6 strict-rfc3339==0.7 ./lib/dynamo/ diff --git a/requirements-apps-disable-private-dns.txt b/requirements-apps-disable-private-dns.txt index 48b50adb7..0abc8dfb1 100644 --- a/requirements-apps-disable-private-dns.txt +++ b/requirements-apps-disable-private-dns.txt @@ -1 +1 @@ -boto3==1.34.155 +boto3==1.35.6 diff --git a/requirements-apps-start-execution-manager.txt b/requirements-apps-start-execution-manager.txt index e4644e0ce..079b6cdeb 100644 --- a/requirements-apps-start-execution-manager.txt +++ b/requirements-apps-start-execution-manager.txt @@ -1,3 +1,3 @@ -boto3==1.34.155 +boto3==1.35.6 ./lib/dynamo/ ./lib/lambda_logging/ diff --git a/requirements-apps-start-execution-worker.txt b/requirements-apps-start-execution-worker.txt index bd5121fdc..9749fb163 100644 --- a/requirements-apps-start-execution-worker.txt +++ b/requirements-apps-start-execution-worker.txt @@ -1,2 +1,2 @@ -boto3==1.34.155 +boto3==1.35.6 ./lib/lambda_logging/