4
votes

La configuration des rails a échoué lors du déploiement d'Heroku

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!


0 commentaires

3 Réponses :


0
votes

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


2 commentaires

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



3
votes

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:


1 commentaires

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.



0
votes

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


0 commentaires