Comment configurer une connexion de base de données - AWS OpsWorks

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comment configurer une connexion de base de données

Important

Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

Vous configurez la connexion entre un serveur d'applications et de sa base de données principale à l'aide d'une recette personnalisée. La recette configure le serveur d'applications comme requis, généralement en créant un fichier de configuration. La recette obtient les données de connexion telles que le nom de l'hôte et de la base de données à partir d'un ensemble d'attributs de configuration de la pile et d'attributs de déploiement que AWS OpsWorks Stacks installe sur chaque instance.

Par exemple, l'étape 2 de Mise en route des piles Linux Chef 11 est basée sur une pile nommée MyStack avec deux couches, PHP App Server et MySQL, chacune avec une instance. Vous déployez une application nommée SimplePHPapp sur l'instance PHP App Server qui utilise la base de données de l'instance MySQL comme magasin de données principal. Lorsque vous déployez l'application, AWS OpsWorks Stacks installe les attributs de configuration et de déploiement de pile qui contiennent les informations de connexion de base de données. L'exemple suivant montre les attributs de connexion de base de données, représentés sous la forme JSON :

{ ... "deploy": { "simplephpapp": { ... "database": { "reconnect": true, "password": null, "username": "root", "host": null, "database": "simplephpapp" ... }, ... } } }

Les valeurs d'attribut sont fournies par AWS OpsWorks Stacks et sont générées ou basées sur les informations fournies par l'utilisateur.

Pour autoriser SimplePHPapp à accéder au magasin de données, vous devez configurer la connexion entre le serveur d'applications PHP et la base de données MySQL en attribuant une recette personnalisée nommée appsetup.rb à l'événement de cycle de vie Deploy de la couche PHP App Server. Lorsque vous déployez SimplePHPapp, AWS OpsWorks Stacks s'exécuteappsetup.rb, ce qui crée un fichier de configuration nommé db-connect.php qui établit la connexion, comme indiqué dans l'extrait suivant.

node[:deploy].each do |app_name, deploy| ... template "#{deploy[:deploy_to]}/current/db-connect.php" do source "db-connect.php.erb" mode 0660 group deploy[:group] if platform?("ubuntu") owner "www-data" elsif platform?("amazon") owner "apache" end variables( :host => (deploy[:database][:host] rescue nil), :user => (deploy[:database][:username] rescue nil), :password => (deploy[:database][:password] rescue nil), :db => (deploy[:database][:database] rescue nil), :table => (node[:phpapp][:dbtable] rescue nil) ) ... end end

Les variables qui caractérisent la connexion (, hostuser, etc.) sont définies avec les valeurs correspondantes à partir des attributs du JSON de [:deploy][:app_name][:database] déploiement. Pour des raisons de simplicité, l'exemple suppose que vous ayez déjà créé une table nommée urler et que, par conséquent, le nom de la table soit représenté par [:phpapp][:dbtable] dans le fichier d'attributs du livre de recettes.

Cette recette permet en fait de connecter le serveur d'applications PHP à n'importe quel serveur de base de données MySQL, et pas seulement aux membres d'une couche MySQL. Pour utiliser un autre serveur MySQL, il vous suffit de définir les [:database] attributs sur des valeurs adaptées à votre serveur, ce que vous pouvez faire en utilisant du JSON personnalisé. AWS OpsWorks Stacks intègre ensuite ces attributs et valeurs dans la configuration de la pile et les attributs de déploiement et les appsetup.rb utilise pour créer le modèle qui établit la connexion. Pour plus d'informations sur le remplacement du JSON de configuration et de déploiement de la pile, consultez Remplacement des attributs.