

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à.

# Implementazione delle ricette per gli stack Chef 11.4
<a name="workingcookbook-chef11-4"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato 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 Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

**Importante**  
Non riutilizzare i nomi di libri di ricette predefiniti per i libri di ricette personalizzati e per quelli della community. I libri di ricette personalizzati con lo stesso nome dei libri di ricette predefiniti potrebbero avere esito negativo. [Per un elenco completo dei libri di cucina integrati disponibili con gli stack Chef 11.10, 11.4 e 0.9, consulta il repository opsworks-cookbooks su. GitHub](https://github.com/aws/opsworks-cookbooks)

Il limite principale degli stack Chef 11.4 è data dal fatto che le ricette non possono utilizzare i contenitori di dati e la ricerca di Chef. Tuttavia, OpsWorks Stacks installa gli [attributi di configurazione e distribuzione dello stack](workingcookbook-json.md) su ogni istanza che contengono molte delle informazioni che si ottengono con la ricerca, tra cui:
+ Dati definiti dall'utente dalla console, ad esempio nomi dell'host o delle app.
+ Dati di configurazione dello stack generati dal servizio OpsWorks Stacks, come i layer, le app e le istanze dello stack, e dettagli su ciascuna istanza come l'indirizzo IP.
+ Attributi JSON personalizzati che contengono i dati forniti dall'utente e che possono avere lo stesso scopo dei contenitori di dati.

OpsWorks Stacks installa una versione corrente degli attributi di configurazione e distribuzione dello stack su ogni istanza per ogni evento del ciclo di vita, prima di iniziare l'esecuzione Chef dell'evento. I dati sono disponibili per le ricette tramite la sintassi `node[:attribute][:child_attribute][...]` standard. Ad esempio, gli attributi di configurazione e distribuzione dello stack includono il nome dello stack `node[:opsworks][:stack][:name]`.

Il seguente segmento di uno dei libri di ricette predefiniti recupera il nome dello stack e lo utilizza per creare un file di configurazione.

```
template '/etc/ganglia/gmetad.conf' do
  source 'gmetad.conf.erb'
  mode '0644'
  variables :stack_name => node[:opsworks][:stack][:name]
  notifies :restart, "service[gmetad]"
end
```

Molti dei valori degli attributi di configurazione e distribuzione dello stack contengono più attributi. Devi eseguire iterazioni su questi attributi per recuperare le informazioni necessarie. L'esempio seguente mostra un segmento di attributi di configurazione e distribuzione dello stack, rappresentati sotto forma di oggetto JSON per comodità. Contiene un attributo di livello superiore, `deploy`, che contiene un attributo per ogni app dello stack, denominato con il nome breve dell'app.

```
{
  ...
  "deploy": {
    "app1_shortname": {
      "document_root": "app1_root",
      "deploy_to": "deploy_directory",
      "application_type": "php",
      ...
    },
    "app2_shortname": {
      "document_root": "app2_root",
      ...
    }
  },
  ...
}
```

Ogni attributo dell'app contiene un set di attributi che caratterizzano l'app. Ad esempio, l'attributo `deploy_to` rappresenta la directory di distribuzione dell'app. Il seguente segmento imposta l'utente, il gruppo e il percorso della directory di distribuzione di ogni app.

```
node[:deploy].each do |application, deploy|
  opsworks_deploy_dir do
    user deploy[:user]
    group deploy[:group]
    path deploy[:deploy_to]
  end
  ...
end
```

Per ulteriori informazioni sugli attributi di configurazione e distribuzione dello stack, consulta [Personalizzazione degli stack OpsWorks](customizing.md). Per ulteriori informazioni sulle directory di distribuzione, consulta [Ricette di ditribuzione](create-custom-deploy.md).

Gli stack Chef 11.4 non supportano i contenitori di dati, ma puoi aggiungere dati arbitrari agli attributi di configurazione e distribuzione dello stack specificando [dati JSON personalizzati](workingstacks-json.md). Le ricette potranno quindi accedere ai dati utilizzando la sintassi di nodo standard di Chef. Per ulteriori informazioni, consulta [Utilizzo di un JSON personalizzato](workingcookbook-json-override.md).

Se hai bisogno della funzionalità di un data bag crittografato, un'opzione è archiviare gli attributi sensibili in un luogo sicuro, ad esempio un bucket Amazon S3 privato. Le tue ricette possono quindi utilizzare l'[SDK AWS Ruby](https://aws.amazon.com/documentation/sdkforruby/), installato su tutte le istanze OpsWorks Stacks, per scaricare i dati dal bucket. 

**Nota**  
Ogni istanza Stacks ha un profilo di istanza. OpsWorks Il [ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) associato specifica a quali risorse AWS possono accedere le applicazioni in esecuzione sull'istanza. Affinché le tue ricette possano accedere a un bucket Amazon S3, la policy del ruolo deve includere un'istruzione simile alla seguente, che concede l'autorizzazione a recuperare i file da un bucket specificato.   

```
"Action": ["s3:GetObject"],
"Effect": "Allow",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
```
Per ulteriori informazioni sui profili delle istanze, consulta [Specificazione delle autorizzazioni per le app in esecuzione su istanze EC2](opsworks-security-appsrole.md).