Skip to content

S3 as a storage for the Registry (feast-server) #3492

@unencoded

Description

@unencoded

Expected Behavior

Feast-server (java) works with AWS S3 Registry

Current Behavior

Feast-server (java) doesn't respect env variables, and can't see AWS region.

Exception in thread "main" com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/ErrorInCustomProvider]: SdkClientException: Could not find region information for 'null' in SDK metadata.
  at RegistryConfigModule.awsStorage(RegistryConfigModule.java:41)
  while locating AmazonS3
  at RegistryConfigModule.registryFile(RegistryConfigModule.java:52)
  at RegistryConfigModule.registryRepository(RegistryConfigModule.java:72)
      \_ for 1st parameter
  at RegistryConfigModule.registryRepository(RegistryConfigModule.java:72)
  at ServingServiceV2Module.registryBasedServingServiceV2(ServingServiceV2Module.java:40)
      \_ for 2nd parameter
  at ServingServiceV2Module.registryBasedServingServiceV2(ServingServiceV2Module.java:40)
  at OnlineServingGrpcServiceV2.<init>(OnlineServingGrpcServiceV2.java:33)
      \_ for 1st parameter
  at ServerModule.provideGrpcServer(ServerModule.java:43)
      \_ for 2nd parameter
  at ServerModule.provideGrpcServer(ServerModule.java:43)
  while locating Server

Learn more:
  https://github.com/google/guice/wiki/ERROR_IN_CUSTOM_PROVIDER

1 error

Steps to reproduce

Try to deploy Feast via Helm from the feast-charts/feast with the next values

global:
  registry:
    path: s3://my-feast-registry/registry.pb
  project: feast_demo
feature-server:
  application-override.yaml:
      enabled: true
      feast:
          active_store: online
          stores:
          - name: online
            type: REDIS
            config:
              host: feast-elasticache.***.cache.amazonaws.com
              port: 6379
          - name: offline
            type: postgres
            config:
              host: feast-aurora.cluster-**.rds.amazonaws.com
              port: 5432
              database: postgres
              db_schema: public
              user: postgresql
              password: password
          entityKeySerializationVersion: 2

Specifications

Possible Solution

The problem somewhere here: https://github.com/feast-dev/feast/blob/master/java/serving/src/main/java/feast/serving/registry/S3RegistryFile.java#L32-L38

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions