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 creareAWS Protonambienti.

Puoi creare unAWS Protonambiente in due modi:
  • Crea, gestisci ed esegui il provisioning di un ambiente standard utilizzando unmodello di ambiente standard.AWS Protonfornisce l'infrastruttura per il tuo ambiente.

  • ConnettiAWS Protonall'infrastruttura gestita dal cliente utilizzando unmodello di ambiente gestito dal cliente. Fornisci le tue risorse condivise al di fuori diAWS Proton, e quindi fornisci output di provisioning cheAWS Protonpuò usare.

È possibile scegliere uno dei diversi approcci di provisioning quando si crea un ambiente.
  • AWSprovisioning gestito— Crea, gestisci e fornisci un ambiente in un unico account.AWS Protonprovvede al tuo ambiente.

    Questo metodo supporta soloCloudFormationmodelli di codice di infrastruttura (IaC).

  • AWSfornitura gestita su un altro account— In un unico account di gestione, crea e gestisci un ambiente fornito in un altro account con connessioni agli account di ambiente.AWS Protoneffettua il provisioning del tuo ambiente nell'altro account. Per ulteriori informazioni, consultare Crea un ambiente in un account ed esegui il provisioning in un altro account e Connessioni con account di ambiente.

    Questo metodo supporta soloCloudFormationModelli IaC.

  • Fornitura autogestita—AWS Protoninvia le richieste pull di provisioning a un repository collegato con la propria infrastruttura di provisioning.

    Questo metodo supporta solo i modelli Terraform iAc.

  • CodeBuildapprovvigionamento—AWS ProtonutilizzaAWS CodeBuildper eseguire i comandi shell forniti dall'utente. I tuoi comandi possono leggere input cheAWS Protonfornisce e sono responsabili della fornitura 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 di cui questi comandi potrebbero aver bisogno.

    Come esempio di utilizzoCodeBuildprovisioning, puoi includere codice che utilizza ilAWS Cloud Development Kit (AWS CDK)alla fornituraAWSrisorse e un manifest che installa il CDK ed esegue il codice CDK.

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

    Nota

    Puoi usareCodeBuildfornitura di ambienti e servizi. Al momento non è possibile effettuare il provisioning dei componenti in questo modo.

ConAWSfornitura gestita (sia nello stesso account che su un altro account),AWS Protoneffettua chiamate dirette per mettere a disposizione le tue risorse.

Con il provisioning autogestito,AWS Protoneffettua richieste pull per fornire file IaC compilati che il tuo motore IAc utilizza per fornire 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 e fornisci un ambiente standard nello stesso account

Usa la console oAWS CLIper creare e fornire un ambiente in un unico account. Il provisioning è gestito daAWS.

AWS Management Console
Usa la console per creare e fornire un ambiente in un unico account
  1. NelAWS Protonplancia, scegliAmbienti.

  2. Seleziona Create environment (Crea ambiente).

  3. NelScegli un modello di ambientepagina, seleziona un modello e scegliConfigurare.

  4. NelConfigurazione dell'ambientepagina, nelApprovvigionamentosezione, scegliAWSprovisioning gestito.

  5. NelAccount di distribuzionesezione, scegliQuestoAccount AWS.

  6. NelConfigurazione dell'ambientepagina, nelImpostazioni dell'ambientesezione, inserisci unNome dell'ambiente.

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

  8. NelRuoli ambientalisezione, selezionaAWS Protonruolo di servizio che hai creato come parte diConfigurazione dei ruoli AWS Proton di servizio.

  9. (Facoltativo) NelRuolo del componentesezione, seleziona un ruolo di servizio che consenta l'esecuzione di componenti definiti direttamente nell'ambiente e definisca l'ambito delle risorse che possono fornire. Per ulteriori informazioni, consulta AWS Proton componenti .

  10. (Facoltativo) NelEtichettesezione, scegliAggiungi un nuovo tage inserisci una chiave e un valore per creare un tag gestito dal cliente.

  11. Seleziona Successivo.

  12. NelConfigurazione delle impostazioni personalizzate dell'ambientepagina, è necessario inserire i valori perrequiredparametri. È possibile immettere valori peroptionalparametri o usa i valori predefiniti quando forniti.

  13. ScegliProssimoe rivedi i tuoi input.

  14. Seleziona Create (Crea).

    Visualizza i dettagli e lo stato dell'ambiente, nonché ilAWStag gestiti e tag gestiti dai clienti per il tuo ambiente.

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

    Una nuova pagina mostra un elenco dei tuoi ambienti con lo stato e altri dettagli dell'ambiente.

AWS CLI

Usa ilAWS CLIper creare e fornire un ambiente in un unico account.

Per creare un ambiente, è necessario specificareAWS Protonruolo di servizioARN, percorso del file delle specifiche, nome dell'ambiente, modello di ambiente ARN, versioni principali e secondarie e descrizione (opzionale).

I prossimi esempi mostrano unYAMLfile di specifiche formattato che specifica i valori per due input definiti nel file di schema del modello di ambiente. Puoi usare ilget-environment-template-minor-versioncomando per visualizzare lo schema del modello di ambiente.

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

Crea 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/AWSProtonServiceRole" \ --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, puoi visualizzare un elenco diAWSe tag gestiti dal cliente, come mostrato nel seguente comando di esempio.AWS Protongenera automaticamenteAWStag gestiti per te. Puoi anche modificare e creare tag gestiti dai clienti utilizzandoAWS 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

Usa la console oAWS CLIper creare un ambiente standard in un account di gestione che fornisce l'infrastruttura ambientale in un altro account. Il provisioning è gestito daAWS.

Prima di utilizzare la console o la CLI, completa i seguenti passaggi.
  1. Identifica ilAccount AWSID per l'account di gestione e ambiente e copiali per un uso successivo.

  2. Nell'account ambientale, crea unAWS Protonruolo 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, crea un ambiente in un account e esegui 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. NelAWS Protonplancia, scegliConnessioni con account di ambientenel riquadro di navigazione.

    2. NelConnessioni con account di ambientepagina, scegliRichiesta di connessione.

      Nota

      Verifica che l'ID dell'account elencato nelConnessione all'account di ambientel'intestazione della pagina corrisponde all'ID dell'account dell'ambiente preidentificato.

    3. NelRichiesta di connessionepagina, nelRuolo ambientalesezione, selezionaRuolo di servizio esistentee il nome del ruolo di servizio creato per l'ambiente.

    4. NelConnettiti all'account di gestionesezione, inserisciID dell'account di gestionee unNome dell'ambienteper il tuoAWS Protonambiente. Copia il nome per un uso successivo.

    5. ScegliRichiesta di connessionenell'angolo inferiore destro della pagina.

    6. La tua richiesta appare come in sospeso nelConnessioni all'ambiente inviate a un account di gestioneuna tabella e un modulo mostrano 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 scegliConnessioni con account di ambientenelAWS Protonconsolle.

    2. NelConnessioni con account di ambientepagina, nelRichieste di connessione all'account di ambientetabella, seleziona la connessione dell'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 nelConnessione all'account di ambientel'intestazione della pagina corrisponde 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, scegliModelli di ambiente.

    2. NelModelli di ambientepagina, scegliCrea modello di ambiente.

    3. NelScegli un modello di ambientepagina, scegli un modello di ambiente.

    4. NelConfigurazione dell'ambientepagina, nelApprovvigionamentosezione, scegliAWSprovisioning gestito.

    5. NelAccount di distribuzionesezione, scegliUn altroAWSconto;.

    6. NelDettagli sull'ambientesezione, seleziona la tuaConnessione all'account di ambienteeNome dell'ambiente.

    7. Seleziona Successivo.

    8. Compila i moduli e scegliProssimofino a raggiungere ilRivedi e creapagina.

    9. Rivedi e scegliCrea ambiente.

AWS CLI

Usa ilAWS CLIper creare un ambiente in un account e fornire servizi in un altro.

Nell'account di ambiente, crea una connessione con l'account di ambiente e richiedi la connessione eseguendo il seguente comando.

$ 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 seguente comando.

$ 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 del tuo 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 Protoninvia le richieste pull di provisioning a un repository collegato con la propria infrastruttura di provisioning. Le pull request avviano il tuo flusso di lavoro, che chiamaAWSservizi; per fornire infrastrutture.

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

  • Dopo aver creato l'ambiente,AWS Protonattende di ricevere notifiche asincrone relative allo stato della fornitura dell'infrastruttura. Il codice di provisioning deve utilizzare ilAWS Proton NotifyResourceStateChangeAPI per inviare queste notifiche asincrone aAWS Proton.

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

AWS Management Console
Usa la console per creare un ambiente Terraform utilizzando il provisioning autogestito.
  1. NelAWS Protonplancia, scegliAmbienti.

  2. Seleziona Create environment (Crea ambiente).

  3. NelScegli un modello di ambientepagina, seleziona un modello Terraform e scegliConfigurare.

  4. NelConfigurazione dell'ambientepagina, nelApprovvigionamentosezione, scegliFornitura autogestita.

  5. NelFornitura dei dettagli del repositorysezione:

    1. Se non l'hai ancora fattoha collegato il tuo repository di provisioning aAWS Proton, scegliNuovo repository, scegli uno dei provider di repository e quindi, perCodeStarconnessione, scegli una delle tue connessioni.

      Nota

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

      Se hai già collegato il tuo repository aAWS Proton, scegliRepository esistente.

    2. PerNome del repository, scegli un repository. Il menu a discesa mostra i repository collegati perRepository esistenteo l'elenco dei repository nell'account del provider perNuovo repository.

    3. PerNome della filiale, scegli uno dei rami del repository.

  6. NelImpostazioni dell'ambientesezione, inserisci unNome dell'ambiente.

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

  8. (Facoltativo) NelEtichettesezione, scegliAggiungi un nuovo tage inserisci una chiave e un valore per creare un tag gestito dal cliente.

  9. Seleziona Successivo.

  10. NelConfigurazione delle impostazioni personalizzate dell'ambientepagina, è necessario inserire i valori perrequiredparametri. È possibile immettere valori peroptionalparametri o usa i valori predefiniti quando forniti.

  11. ScegliProssimoe rivedi i tuoi input.

  12. ScegliCreaper inviare una richiesta di pull.

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

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

    • In caso di timeout della pull request, creazione dell'ambientenon ècompleto.

  13. Visualizza i dettagli e lo stato dell'ambiente, nonché ilAWStag gestiti e tag gestiti dai clienti per il tuo ambiente.

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

    Una nuova pagina mostra un elenco dei tuoi ambienti con lo stato e altri dettagli dell'ambiente.

AWS CLI

Quando si crea un ambiente utilizzando il provisioning autogestito,inserisciloprovisioningRepositoryparametro e ometteProtonServiceRoleArneenvironmentAccountConnectionIdparametri.

Usa ilAWS CLIper creare un ambiente Terraform con provisioning autogestito.
  1. Crea un ambiente e invia una richiesta pull al repository per la revisione e l'approvazione.

    I prossimi esempi mostrano unYAMLfile di specifiche formattato che definisce i valori per due input in base al file di schema del modello di ambiente. Puoi usare ilget-environment-template-minor-versioncomando 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. Rivedi la richiesta.

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

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

    • In caso di timeout della pull request, creazione dell'ambientenon ècompleto.

  3. Fornisci in modo asincrono lo stato di provisioning aAWS Proton. L'esempio seguente notificaAWS Protondi un approvvigionamento riuscito.

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