Come impostare una connessione di database - AWS OpsWorks

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Come impostare una connessione di database

Importante

Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il AWS Support Team su AWS re:post o tramite Premium AWS Support.

Configurare la connessione tra un server di applicazione e il suo database di back-end utilizzando una ricetta personalizzata. La ricetta configura il server di applicazione come richiesto, in genere mediante la creazione di un file di configurazione. La ricetta ottiene i dati di connessione, come il nome dell'host e del database, da un set di attributi negli attributi di configurazione e distribuzione dello stack che AWS OpsWorks Stacks installa su ogni istanza.

Ad esempio, Step 2 of si Nozioni di base sugli stack Linux Chef 11 basa su uno stack denominato MyStack con due livelli, PHP App Server e MySQL, ciascuno con un'istanza. Si distribuisce un'app denominata SimplePHPApp nell'istanza PHP App Server che utilizza il database sull'istanza MySQL come archivio dati di back-end. Quando si distribuisce l'applicazione, AWS OpsWorks Stacks installa la configurazione stack e gli attributi di distribuzione che contengono le informazioni di connessione al database. L'esempio seguente mostra gli attributi di connessione al database, rappresentati come JSON:

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

I valori degli attributi sono forniti da AWS OpsWorks Stacks e sono generati o basati sulle informazioni fornite dall'utente.

Per consentire a SimplePHPApp di accedere al data store, è necessario configurare la connessione tra il server delle applicazioni PHP e il database MySQL assegnando una ricetta personalizzata appsetup.rb denominata all'evento Deploy del ciclo di vita Deploy del livello PHP App Server. Quando si distribuisce SimplePHPApp, viene eseguito AWS OpsWorks Stacks, che crea un file di configurazione denominato che configura la connessioneappsetup.rb, come illustrato nel seguente estratto. db-connect.php

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

Le variabili che caratterizzano la connessione, e così via hostuser, impostano i valori corrispondenti dagli attributi JSON di deploy. [:deploy][:app_name][:database] Per semplicità, l'esempio presuppone sia già stata creata una tabella denominata urler, quindi il nome della tabella è rappresentato da [:phpapp][:dbtable] nel file attributi del libro di cucina.

Questa ricetta può effettivamente connettere il server delle applicazioni PHP a qualsiasi server di database MySQL, non solo ai membri di un livello MySQL. Per utilizzare un server MySQL diverso, devi solo impostare gli attributi su valori appropriati per [:database] il tuo server, cosa che puoi fare utilizzando JSON personalizzato. AWS OpsWorks Stacks incorpora quindi tali attributi e valori negli attributi di configurazione e distribuzione dello stack e li appsetup.rb utilizza per creare il modello che configura la connessione. Per ulteriori informazioni sulla sostituzione della configurazione stack e implementazione JSON, consulta Sostituzione degli attributi.