J'ai lu tous les commentaires et problèmes que je peux trouver ici, mais aucun d'entre eux ne semble s'appliquer à ma situation. J'ai un back-end Ruby on Rails, avec un front-end React qui se déployait correctement jusqu'à ce que j'ajoute la possibilité pour un administrateur de mettre à jour les bases de données via un fichier CSV en utilisant ActiveRecord.
Lorsque je pousse vers Heroku, je reçois maintenant deux avertissements:
###### AVERTISSEMENT: la détection de la configuration des rails a échoué
##### AVERTISSEMENT: Nous avons détecté que certaines dépendances binaires requises pour utiliser toutes les fonctionnalités de prévisualisation d'Active Storage ne sont pas présentes sur ce système.
J'ai parcouru les articles Heroku fournis sur le stockage actif sur Heroku, mais je ne parviens toujours pas à résoudre le problème.
En essayant de dépanner sur la console Rails, j'obtiens l'erreur suivante qui pourrait être le coupable:
/app/vendor/bundle/ruby/2.5.0/gems/aws-partitions-1.144.0/lib/aws-partitions/endpoint_provider.rb:82:in block in partition_matching_region: impossible de charger Rails.config.active_storage .service: (NoMethodError) correspondance de méthode non définie pour nil: NilClass
Quelqu'un a-t-il une idée de ce problème? Je rencontre les mêmes choses que d'autres découvrent: certains de ces messages d'erreur ne sont pas les plus perspicaces pour moi. Je vous remercie!
3 Réponses :
https://github.com/aws/aws-sdk-ruby / issues / 1240 ressemble à votre problème:
Cela signifie que vous n'avez pas configuré de région. Pour configurer une région, définissez la variable d'environnement AWS_REGION ou transmettez-la en tant que paramètre. Par exemple:
key = OpenSSL::PKey::RSA.new(1024) s3 = Aws::S3::Encryption::Client.new(encryption_key: key, region: "us-east-1") # or the region you are using
J'ai vu cette réponse et essayé de mettre à jour mon fichier config / intializers / aws.rb comme: Aws.config.update ({region: 'us-west-2', credentials: Aws :: Credentials.new (ENV [' AWS_ACCESS_KEY_ID '], ENV [' AWS_SECRET_ACCESS_KEY ']),})
Suis-je loin de la base ici?
Cela me semble logique, mais je n'ai aucun moyen de vérifier - j'essaierais les commandes du message ci-dessus et verrais si elles fonctionnent
Vous devez installer le Buildpack ActiveStorage Previews de Heroku:
heroku buildpacks:add -i 1 https://github.com/heroku/heroku-buildpack-activestorage-preview
Cela installera les outils binaires nécessaires pour générer les aperçus d'actifs. Plus d'informations sont disponibles ici:
Je suis un pas de plus! Cela a supprimé l'avertissement concernant les dépendances binaires, mais j'obtiens toujours l'échec de la configuration des rails, avec la même erreur dans la console des rails sur Heroku. Merci pour la perspicacité sur le buildpack! Un avertissement de moins est un petit succès.
Une autre façon de résoudre ce problème est d'obtenir d'abord un journal des erreurs détaillé avec cette commande:
heroku run rails console
S'il n'y a pas d'erreurs, vous entrerez dans le shell Ruby interactif sinon vous devriez voir le Impossible de charger l'erreur du service de stockage actif.
Si vous utilisez S3, vous devrez définir la clé d'accès, la clé d'accès secrète, le nom du compartiment et la région du compartiment:
SECRET_KEY_BASE: xxx-xxx-xxxxxx-xxx-xxxxxx-xxx-xxx
AWS_ACCESS_KEY_ID: xxx-xxx-xxx
AWS_SECRET_ACCESS_KEY: xxx-xxx-xxxxxx-xxx-xxx
S3_BUCKET_NAME: xxx-xxx-xxx
AWS_BUCKET_REGION: us-east-1
Ensuite, chargez vos variables d'environnement dans Heroku avec: figaro heroku: set -e production