

Amazon non CodeCatalyst è più aperta a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Come migrare da CodeCatalyst](migration.md).

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

# Aggiungere componenti di ambiente a un blueprint
<a name="comp-env-bp"></a>

La procedura guidata per i progetti personalizzati viene generata dinamicamente dall'`Options`interfaccia esposta tramite la procedura guidata. I blueprint supportano la generazione di componenti dell'interfaccia utente (UI) a partire dai tipi esposti.

**Per importare i componenti dell'ambiente Amazon CodeCatalyst Blueprint**

Nel tuo `blueprint.ts` file, aggiungi quanto segue:

```
import {...} from '@amazon-codecatalyst/codecatalyst-environments'
```

**Topics**
+ [Creazione di ambienti di sviluppo](#create-dev-env-bp)
+ [Elenco degli ambienti](#list-env-bp)
+ [Esempi di interfacce fittizie](#examples-comp-env-bp)

## Creazione di ambienti di sviluppo
<a name="create-dev-env-bp"></a>

L'esempio seguente mostra come distribuire l'applicazione nel cloud:

```
export interface Options extends ParentOptions {
        ...
        myNewEnvironment:  EnvironmentDefinition{
            thisIsMyFirstAccountConnection: AccountConnection{
                thisIsARole: Role['lambda', 's3', 'dynamo'];
             };
        };
    }
```

L'interfaccia genera un componente dell'interfaccia utente che richiede un nuovo ambiente (`myNewEnvironment`) con una singola connessione a un account (`thisIsMyFirstAccountConnection`. Viene inoltre generato un ruolo sulla connessione dell'account (`thisIsARole`) con `['lambda', 's3', 'dynamo']` le funzionalità minime richieste per il ruolo. Non tutti gli utenti dispongono di connessioni all'account, quindi dovresti verificare se un utente non connette un account o non collega un account a un ruolo. I ruoli possono anche essere annotati con`@inlinePolicies`. Per ulteriori informazioni, consulta [@inlinePolicy. /path/to/policy/file.json](wizard-bp.md#inline-policy-tag).

Il componente ambientale richiede un comando `name` e`environmentType`. Il codice seguente è la forma predefinita minima richiesta:

```
{
  ...
  "myNewEnvironment": {
    "name": "myProductionEnvironment",
    "environmentType": "PRODUCTION"
  },
}
```

Il componente dell'interfaccia utente richiede quindi l'immissione di vari campi. Man mano che compili i campi, il progetto assume una forma completamente espansa. Può esserti utile includere il mock completo nel `defaults.json` file per scopi di test e sviluppo.

## Elenco degli ambienti
<a name="list-env-bp"></a>

La specificazione di un tipo di matrice `EnvironmentDefinition` genererà un elenco di ambienti nell'interfaccia utente della procedura guidata.

```
export interface Options extends ParentOptions {
    ...
   /**
     @showName readOnly
   */
    myEnvironments:  EnvironmentDefinition<{
        thisIsMyFirstAccountConnection: AccountConnection<{
            thisIsARole: Role<['lambda', 's3', 'dynamo']>;
        }>;
    }>[];

}
```

L'esempio seguente mostra le impostazioni predefinite per un elenco di ambienti:

```
{
  ...
  "myEnvironments": [
  {
    "name": "myProductionEnvironment",
    "environmentType": "PRODUCTION"
  },
  {
    "name": "myDevelopmentEnvironment",
    "environmentType": "DEVELOPMENT"
  },
  ]
}
```

## Esempi di interfacce fittizie
<a name="examples-comp-env-bp"></a>

### Interfaccia fittizia semplice
<a name="simple-comp-env-bp"></a>

```
{
    ...
    "thisIsMyEnvironment": {
        "name": "myProductionEnvironment",
        "environmentType": "PRODUCTION",
        "thisIsMySecondAccountConnection": {
            "id": "12345678910",
            "name": "my-account-connection-name",
            "secondAdminRole": {
                "arn": "arn:aws:iam::12345678910:role/ConnectedQuokkaRole",
                "name": "ConnectedQuokkaRole",
                "capabilities": [
                    "lambda",
                    "s3",
                    "dynamo"
                ]
            }
        }
    }
}
```

### Interfaccia fittizia complessa
<a name="complex-comp-env-bp"></a>

```
export interface Options extends ParentOptions {
  /**
   * The name of an environment
   * @displayName This is a Environment Name
   * @collapsed
   */
  thisIsMyEnvironment: EnvironmentDefinition{
    /**
     * comments about the account that is being deployed into
     * @displayName This account connection has an overriden name
     * @collapsed
     */
    thisIsMyFirstAccountConnection: AccountConnection{
      /**
       * Blah blah some information about the role that I expect
       * e.g. here's a copy-pastable policy: [to a link]
       * @displayName This role has an overriden name
       */
      adminRole: Role['admin', 'lambda', 's3', 'cloudfront'];
      /**
       * Blah blah some information about the second role that I expect
       * e.g. here's a copy-pastable policy: [to a link]
       */
      lambdaRole: Role['lambda', 's3'];
    };
    /**
     * comments about the account that is being deployed into
     */
    thisIsMySecondAccountConnection: AccountConnection{
      /**
         * Blah blah some information about the role that I expect
         * e.g. here's a copy-pastable policy: [to a link]
         */
      secondAdminRole: Role['admin', 'lambda', 's3', 'cloudfront'];
      /**
         * Blah blah some information about the second role that I expect
         * e.g. here's a copy-pastable policy: [to a link]
         */
      secondLambdaRole: Role['lambda', 's3'];
    };
  };
}
```

### Interfaccia fittizia completa
<a name="complete-comp-env-bp"></a>

```
{
  ...
  "thisIsMyEnvironment": {
    "name": "my-production-environment",
    "environmentType": "PRODUCTION",
    "thisIsMySecondAccountConnection": {
      "id": "12345678910",
      "name": "my-connected-account",
      "secondAdminRole": {
        "name": "LambdaQuokkaRole",
        "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole",
        "capabilities": [
          "admin",
          "lambda",
          "s3",
          "cloudfront"
        ]
      },
      "secondLambdaRole": {
        "name": "LambdaQuokkaRole",
        "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole",
        "capabilities": [
          "lambda",
          "s3"
        ]
      }
    },
    "thisIsMyFirstAccountConnection": {
      "id": "12345678910",
      "name": "my-connected-account",
      "adminRole": {
        "name": "LambdaQuokkaRole",
        "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole",
        "capabilities": [
          "admin",
          "lambda",
          "s3",
          "cloudfront"
        ]
      },
      "lambdaRole": {
        "name": "LambdaQuokkaRole",
        "arn": "arn:aws:iam::12345678910:role/LambdaQuokkaRole",
        "capabilities": [
          "lambda",
          "s3"
        ]
      }
    }
  },
}
```