Cómo configurar una conexión de base de datos - AWS OpsWorks

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo configurar una conexión de base de datos

importante

El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en AWS Re:post o a través de Premium AWS Support.

Puede configurar la conexión entre un servidor de aplicaciones y sus bases de datos de backend mediante una receta personalizada. La receta configura el servidor de aplicaciones según sea necesario, por lo general, mediante la creación de un archivo de configuración. La receta obtiene los datos de conexión, como el nombre del host y la base de datos, de un conjunto de atributos de la configuración de la pila y los atributos de despliegue que AWS OpsWorks Stacks instala en cada instancia.

Por ejemplo, el paso 2 de Introducción a las pilas de Linux en Chef 11 se basa en una pila denominada MyStack con dos capas, PHP App Server y MySQL, cada una con una instancia. Debe implementar una aplicación denominada SimplePHPApp en la instancia del servidor de aplicaciones PHP que utiliza la base de datos en la instancia MySQL como almacén de datos de backend. Al implementar la aplicación, AWS OpsWorks Stacks instala los atributos de configuración e implementación de la pila que contienen la información de conexión de la base de datos. El siguiente ejemplo muestra los atributos de conexión de la base de datos, representados como JSON:

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

Los valores de los atributos los proporciona AWS OpsWorks Stacks y se generan o se basan en la información proporcionada por el usuario.

Para permitir que SimplePHPApp obtenga acceso al almacén de datos, debe configurar la conexión entre el servidor de aplicaciones PHP y la base de datos MySQL asignando una receta personalizada denominada appsetup.rb al evento del ciclo de vida Deploy de la capa del servidor de aplicaciones PHP. Al implementar SimplePHPapp, se ejecuta AWS OpsWorks Stacksappsetup.rb, que crea un archivo de configuración con el nombre db-connect.php que configura la conexión, como se muestra en el siguiente extracto.

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

Las variables que caracterizan la conexión (host, user, etc.) se definen como valores correspondientes a partir de los atributos del formato JSON deploy [:deploy][:app_name][:database]. Para simplificar, el ejemplo presupone que ya ha creado una tabla denominada urler, por lo que el nombre de la tabla está representado por [:phpapp][:dbtable] en el archivo de atributos del libro de recetas.

Esta receta puede conectar el servidor de aplicaciones PHP con cualquier servidor de base de datos MySQL, no solo los miembros de una capa MySQL. Para usar un servidor MySQL diferente, solo tiene que establecer los [:database] atributos en valores que sean apropiados para su servidor, lo que puede hacer mediante el uso de JSON personalizado. AWS OpsWorks A continuación, Stacks incorpora esos atributos y valores a los atributos de configuración y despliegue de la pila y los appsetup.rb utiliza para crear la plantilla que configura la conexión. Para obtener más información sobre la anulación del JSON de configuración e implementación de la pila, consulte Anulación de atributos.