Creazione di un ambiente - AWS Proton

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

Creazione di un ambiente

Impara a creare AWS Proton ambienti.

Puoi creare un AWS Proton ambiente in due modi:
  • Crea, gestisci e fornisci un ambiente standard utilizzando un modello di ambiente standard. AWS Proton fornisce l'infrastruttura per il tuo ambiente.

  • Connect AWS Proton all'infrastruttura gestita dal cliente utilizzando un modello di ambiente gestito dal cliente. Effettua il provisioning delle tue risorse condivise all'esterno di AWS Proton e quindi fornisci output di provisioning utilizzabili. AWS Proton

È possibile scegliere uno dei diversi approcci di provisioning quando si crea un ambiente.
  • AWS provisioning gestito: creazione, gestione e provisioning di un ambiente in un unico account. AWS Proton effettua il provisioning del tuo ambiente.

    Questo metodo supporta solo modelli di codice di CloudFormation infrastruttura (IaC).

  • AWS provisioning gestito su un altro account: in un unico account di gestione, crea e gestisci un ambiente fornito in un altro account con connessioni di account di ambiente. AWS Proton effettua il provisioning dell'ambiente nell'altro account. Per ulteriori informazioni, consulta Crea un ambiente in un account ed esegui il provisioning in un altro account e Connessioni agli account di ambiente.

    Questo metodo supporta solo i modelli CloudFormation IaC.

  • Provisioning autogestito: AWS Proton invia le richieste pull di provisioning a un repository collegato con la propria infrastruttura di provisioning.

    Questo metodo supporta solo i modelli Terraform IAc.

  • CodeBuild provisioning: AWS Proton viene utilizzato AWS CodeBuild per eseguire i comandi di shell forniti dall'utente. I comandi sono in grado di leggere gli input che AWS Proton forniscono e sono responsabili del provisioning o del deprovisioning dell'infrastruttura e della generazione di valori di output. Un pacchetto di modelli per questo metodo include i comandi in un file manifest e tutti i programmi, script o altri file necessari per questi comandi.

    Come esempio di utilizzo del CodeBuild provisioning, è possibile includere codice che utilizza AWS Cloud Development Kit (AWS CDK) per fornire AWS risorse e un manifesto che installa CDK ed esegue il codice. CDK

    Per ulteriori informazioni, consulta CodeBuild pacchetto di modelli di provisioning.

    Nota

    È possibile utilizzare il CodeBuild provisioning con ambienti e servizi. Al momento non è possibile effettuare il provisioning dei componenti in questo modo.

Con il provisioning AWS gestito (sia nello stesso account che su un altro account), AWS Proton effettua chiamate dirette per il rifornimento delle risorse.

Con il provisioning autogestito, AWS Proton effettua richieste pull per fornire file IaC compilati utilizzati dal motore IAc per l'approvvigionamento delle risorse.

Per ulteriori informazioni, consulta Come AWS Proton fornisce l'infrastruttura, Pacchetti di modelli e Requisiti dello schema per i pacchetti di modelli di ambiente.

Crea ed esegui il provisioning di un ambiente standard nello stesso account

Utilizza la console o AWS CLI per creare ed eseguire il provisioning di un ambiente in un unico account. Il provisioning è gestito da AWS.

AWS Management Console
Utilizza la console per creare ed effettuare il provisioning di un ambiente in un unico account
  1. Nella AWS Proton console, scegli Ambienti.

  2. Seleziona Create environment (Crea ambiente).

  3. Nella pagina Scegli un modello di ambiente, seleziona un modello e scegli Configura.

  4. Nella pagina Configura ambiente, nella sezione Provisioning, scegli Provisioning AWS gestito.

  5. Nella sezione Account di distribuzione, scegli Questo. Account AWS

  6. Nella pagina Configura ambiente, nella sezione Impostazioni dell'ambiente, inserisci un nome per l'ambiente.

  7. (Facoltativo) Inserisci una descrizione per l'ambiente.

  8. Nella sezione Ruoli ambientali, seleziona il ruolo di AWS Proton servizio di cui hai creatoConfigurazione dei ruoli di servizio AWS Proton.

  9. (Facoltativo) Nella sezione Ruolo del componente, selezionate un ruolo di servizio che consenta ai componenti definiti direttamente di funzionare nell'ambiente e definisca le risorse a cui possono fornire. Per ulteriori informazioni, consulta AWS Proton componenti .

  10. (Facoltativo) Nella sezione Tag, scegli Aggiungi nuovo tag e inserisci una chiave e un valore per creare un tag gestito dal cliente.

  11. Seleziona Successivo.

  12. Nella pagina Configurazione delle impostazioni personalizzate dell'ambiente, devi inserire i valori per i required parametri. È possibile inserire valori per i optional parametri o utilizzare i valori predefiniti, se disponibili.

  13. Scegliete Avanti e controllate i dati inseriti.

  14. Scegli Crea.

    Visualizza i dettagli e lo stato dell'ambiente, nonché i tag AWS gestiti e i tag gestiti dal cliente per il tuo ambiente.

  15. Nel riquadro di navigazione, selezionare Compute environments (Ambienti di calcolo).

    Una nuova pagina mostra un elenco degli ambienti insieme allo stato e ad altri dettagli dell'ambiente.

AWS CLI

Utilizza il AWS CLI per creare ed eseguire il provisioning di un ambiente in un unico account.

Per creare un ambiente, è necessario specificare il ruolo del AWS Proton servizioARN, il percorso del file delle specifiche, il nome dell'ambiente, il modello di ambienteARN, le versioni principali e secondarie e la descrizione (opzionale).

Gli esempi successivi mostrano un file di specifiche YAML formattato che specifica i valori per due input definiti nel file di schema del modello di ambiente. È possibile utilizzare il get-environment-template-minor-version comando per visualizzare lo schema del modello di ambiente.

proton: EnvironmentSpec spec: my_sample_input: "the first" my_other_sample_input: "the second"

Creare un ambiente eseguendo il comando seguente.

$ aws proton create-environment \ --name "MySimpleEnv" \ --template-name simple-env \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::123456789012:role/AWS ProtonServiceRole" \ --spec "file://env-spec.yaml"

Risposta:

{ "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv", "createdAt": "2020-11-11T23:03:05.405000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2020-11-11T23:03:05.405000+00:00", "name": "MySimpleEnv", "protonServiceRoleArn": "arn:aws:iam::123456789012:role/ProtonServiceRole", "templateName": "simple-env" } }

Dopo aver creato un nuovo ambiente, è possibile visualizzare un elenco di AWS tag gestiti dal cliente, come illustrato nel seguente comando di esempio. AWS Proton genera automaticamente tag AWS gestiti per te. Puoi anche modificare e creare tag gestiti dai clienti utilizzando AWS CLI. Per ulteriori informazioni, consulta AWS Protonrisorse e Tagging.

Comando:

$ aws proton list-tags-for-resource \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv"

Crea un ambiente in un account ed esegui il provisioning in un altro account

Utilizza la console o AWS CLI per creare un ambiente standard in un account di gestione che esegue il provisioning dell'infrastruttura ambientale in un altro account. Il provisioning è gestito da AWS.

Prima di utilizzare la console oppureCLI, completa i seguenti passaggi.
  1. Identifica Account AWS IDs l'account di gestione e ambiente e copiali per un uso successivo.

  2. Nell'account di ambiente, crea un ruolo AWS Proton di servizio con autorizzazioni minime per la creazione dell'ambiente. Per ulteriori informazioni, consulta AWS Proton ruolo di servizio per il provisioning utilizzando AWS CloudFormation.

AWS Management Console
Usa la console per creare un ambiente in un account ed effettuare il provisioning in un altro.
  1. Nell'account di ambiente, crea una connessione all'account di ambiente e usala per inviare una richiesta di connessione all'account di gestione.
    1. Nella AWS Proton console, scegli Environment account connections nel pannello di navigazione.

    2. Nella pagina Connessioni agli account Environment, scegli Richiedi di connessione.

      Nota

      Verifica che l'ID dell'account elencato nell'intestazione della pagina di connessione all'account Environment corrisponda all'ID dell'account di ambiente preidentificato.

    3. Nella pagina Richiesta di connessione, nella sezione Ruolo ambientale, seleziona Ruolo di servizio esistente e il nome del ruolo di servizio che hai creato per l'ambiente.

    4. Nella sezione Connect to management account, inserisci l'ID dell'account di gestione e un nome di ambiente per il tuo AWS Proton ambiente. Copia il nome per un uso successivo.

    5. Scegli Richiedi di connessione nell'angolo in basso a destra della pagina.

    6. La richiesta viene visualizzata come in sospeso nella tabella delle connessioni di ambiente inviate a un account di gestione e una finestra di dialogo mostra come accettare la richiesta dall'account di gestione.

  2. Nell'account di gestione, accetta una richiesta di connessione dall'account di ambiente.
    1. Accedi al tuo account di gestione e scegli Environment account connections nella AWS Proton console.

    2. Nella pagina Connessioni all'account Environment, nella tabella Richieste di connessione all'account Environment, seleziona la connessione all'account di ambiente con l'ID dell'account di ambiente che corrisponde all'ID dell'account di ambiente preidentificato.

      Nota

      Verifica che l'ID dell'account elencato nell'intestazione della pagina di connessione all'account Environment corrisponda all'ID dell'account di gestione preidentificato.

    3. Scegliere Accept (Accetta). Lo stato cambia da PENDING a. CONNECTED

  3. Nell'account di gestione, crea un ambiente.
    1. Nel riquadro di navigazione, scegli Modelli di ambiente.

    2. Nella pagina Modelli di ambiente, scegli Crea modello di ambiente.

    3. Nella pagina Scegli un modello di ambiente, scegli un modello di ambiente.

    4. Nella pagina Configura ambiente, nella sezione Provisioning, scegli Provisioning AWS gestito.

    5. Nella sezione Account di distribuzione, scegli Altro AWS account;.

    6. Nella sezione Dettagli dell'ambiente, seleziona la connessione all'account Environment e il nome dell'ambiente.

    7. Seleziona Successivo.

    8. Compila i moduli e scegli Avanti fino a raggiungere la pagina Rivedi e crea.

    9. Rivedi e scegli Crea ambiente.

AWS CLI

Utilizza il AWS CLI per creare un ambiente in un account e il provisioning in un altro.

Nell'account di ambiente, create una connessione all'account di ambiente e richiedete la connessione eseguendo il comando seguente.

$ aws proton create-environment-account-connection \ --environment-name "simple-env-connected" \ --role-arn "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role" \ --management-account-id "111111111111"

Risposta:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:13:50.847000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "PENDING" } }

Nell'account di gestione, accetta la richiesta di connessione all'account di ambiente eseguendo il comando seguente.

$ aws proton accept-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Risposta:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

Visualizza la connessione all'account di ambiente eseguendo il comando seguente.

$ aws proton get-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Risposta:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

Nell'account di gestione, crea un ambiente eseguendo il comando seguente.

$ aws proton create-environment \ --name "simple-env-connected" \ --template-name simple-env-template \ --template-major-version "1" \ --template-minor-version "1" \ --spec "file://simple-env-template/specs/original.yaml" \ --environment-account-connection-id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Risposta:

{ "environment": { "arn": "arn:aws:proton:region-id:111111111111:environment/simple-env-connected", "createdAt": "2021-04-28T23:02:57.944000+00:00", "deploymentStatus": "IN_PROGRESS", "environmentAccountConnectionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "lastDeploymentAttemptedAt": "2021-04-28T23:02:57.944000+00:00", "name": "simple-env-connected", "templateName": "simple-env-template" } }

Crea ed esegui il provisioning di un ambiente utilizzando il provisioning autogestito

Quando si utilizza il provisioning autogestito, AWS Proton invia le richieste pull di provisioning a un repository collegato con la propria infrastruttura di provisioning. Le pull request avviano un flusso di lavoro personalizzato, che richiama AWS i servizi al provisioning dell'infrastruttura.

Considerazioni sul provisioning autogestito:
  • Prima di creare un ambiente, configurate una directory di risorse del repository per il provisioning autogestito. Per ulteriori informazioni, consulta AWS Proton infrastruttura come file di codice.

  • Dopo aver creato l'ambiente, AWS Proton attende di ricevere notifiche asincrone sullo stato del provisioning dell'infrastruttura. Il codice di provisioning deve utilizzare il per inviare queste notifiche asincrone AWS Proton NotifyResourceStateChange API a. AWS Proton

È possibile utilizzare il provisioning autogestito nella console o con. AWS CLI Gli esempi seguenti mostrano come utilizzare il provisioning autogestito con Terraform.

AWS Management Console
Usa la console per creare un ambiente Terraform utilizzando il provisioning autogestito.
  1. Nella AWS Proton console, scegli Ambienti.

  2. Seleziona Create environment (Crea ambiente).

  3. Nella pagina Scegli un modello di ambiente, seleziona un modello Terraform e scegli Configura.

  4. Nella pagina Configura ambiente, nella sezione Provisioning, scegli Provisioning autogestito.

  5. Nella sezione dei dettagli del repository di Provisioning:

    1. Se non hai ancora collegato il tuo repository di provisioning a AWS Proton, scegli Nuovo repository, scegli uno dei provider di repository e quindi, per la CodeStarconnessione, scegli una delle tue connessioni.

      Nota

      Se non disponi ancora di una connessione all'account del provider di repository pertinente, scegli Aggiungi una nuova connessione. CodeStar Quindi, crea una connessione, quindi scegli il pulsante di aggiornamento accanto al menu di CodeStar connessione. Ora dovresti essere in grado di scegliere la tua nuova connessione nel menu.

      Se hai già collegato il tuo repository a AWS Proton, scegli Deposito esistente.

    2. Per Nome del repository, scegli un repository. Il menu a discesa mostra i repository collegati per il repository esistente o l'elenco dei repository nell'account del provider per Nuovo repository.

    3. Per Nome del ramo, scegli uno dei rami del repository.

  6. Nella sezione Impostazioni dell'ambiente, inserisci un nome per l'ambiente.

  7. (Facoltativo) Inserisci una descrizione per l'ambiente.

  8. (Facoltativo) Nella sezione Tag, scegli Aggiungi nuovo tag e inserisci una chiave e un valore per creare un tag gestito dal cliente.

  9. Seleziona Successivo.

  10. Nella pagina Configurazione delle impostazioni personalizzate dell'ambiente, devi inserire i valori per i required parametri. È possibile inserire valori per i optional parametri o utilizzare i valori predefiniti, se disponibili.

  11. Scegliete Avanti e controllate i dati inseriti.

  12. Scegli Crea per inviare una pull request.

    • Se approvi la pull request, la distribuzione è in corso.

    • Se si rifiuta la pull request, la creazione dell'ambiente viene annullata.

    • Se la pull request scade, la creazione dell'ambiente non è completa.

  13. Visualizza i dettagli e lo stato dell'ambiente, nonché i tag AWS gestiti e i tag gestiti dal cliente per il tuo ambiente.

  14. Nel riquadro di navigazione, selezionare Compute environments (Ambienti di calcolo).

    Una nuova pagina mostra un elenco degli ambienti insieme allo stato e ad altri dettagli dell'ambiente.

AWS CLI

Quando si crea un ambiente utilizzando il provisioning autogestito, si aggiunge il provisioningRepository parametro e si omettono i ProtonServiceRoleArn parametri and. environmentAccountConnectionId

Utilizzate il AWS CLI per creare un ambiente Terraform con provisioning autogestito.
  1. Crea un ambiente e invia una pull request al repository per la revisione e l'approvazione.

    Gli esempi successivi mostrano un file di specifiche YAML formattato che definisce i valori per due input in base al file di schema del modello di ambiente. È possibile utilizzare il get-environment-template-minor-version comando per visualizzare lo schema del modello di ambiente.

    Specifiche:

    proton: EnvironmentSpec spec: ssm_parameter_value: "test"

    Crea un ambiente eseguendo il comando seguente.

    $ aws proton create-environment \ --name "pr-environment" \ --template-name "pr-env-template" \ --template-major-version "1" \ --provisioning-repository="branch=main,name=myrepos/env-repo,provider=GITHUB" \ --spec "file://env-spec.yaml"

    Risposta: >

    { "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment", "createdAt": "2021-11-18T17:06:58.679000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-11-18T17:06:58.679000+00:00", "name": "pr-environment", "provisioningRepository": { "arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo", "branch": "main", "name": "myrepos/env-repo", "provider": "GITHUB" }, "templateName": "pr-env-template" }
  2. Esamina la richiesta.

    • Se approvi la richiesta, il rifornimento è in corso.

    • Se si rifiuta la richiesta, la creazione dell'ambiente viene annullata.

    • Se la richiesta pull scade, la creazione dell'ambiente non è completa.

  3. Fornisci in modo asincrono lo stato di provisioning a. AWS Proton L'esempio seguente notifica AWS Proton l'esito positivo del provisioning.

    $ aws proton notify-resource-deployment-status-change \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/pr-environment" \ --status "SUCCEEDED"