Come AWS Proton fornisce l'infrastruttura - 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à.

Come AWS Proton fornisce l'infrastruttura

AWS Protonpuò fornire l'infrastruttura in diversi modi:

  • AWS-managed provisioning: AWS Proton chiama il motore di provisioning per conto dell'utente. Questo metodo supporta solo pacchetti AWS CloudFormation di modelli. Per ulteriori informazioni, consulta AWS CloudFormation file IAc.

  • CodeBuildprovisioning: AWS Proton viene utilizzato AWS CodeBuild per eseguire i comandi shell forniti dall'utente. I tuoi comandi possono leggere gli input che AWS Proton forniscono 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 utilizzo del CodeBuild provisioning, è possibile includere un codice che utilizza il AWS Cloud Development Kit (AWS CDK) provisioning AWS delle risorse e un manifest che installa il 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.

  • Provisioning autogestito: AWS Proton invia una pull request (PR) a un repository fornito dall'utente, dove il sistema di implementazione dell'infrastruttura esegue il processo di provisioning. Questo metodo supporta solo pacchetti di modelli Terraform. Per ulteriori informazioni, consulta file Terraform iAC.

AWS Protondetermina e imposta separatamente il metodo di fornitura per ogni ambiente e servizio. Quando si crea o si aggiorna un ambiente o un servizio, AWS Proton esamina il pacchetto di modelli fornito e determina il metodo di provisioning indicato dal pacchetto di modelli. A livello di ambiente, fornisci i parametri di cui l'ambiente e i suoi potenziali servizi potrebbero aver bisogno per i loro metodi di provisioning: ruoli AWS Identity and Access Management (IAM), una connessione con un account di ambiente o un repository dell'infrastruttura.

Gli sviluppatori che lo utilizzano AWS Proton per fornire un servizio hanno la stessa esperienza indipendentemente dal metodo di fornitura. Gli sviluppatori non devono conoscere il metodo di provisioning e non devono modificare nulla nel processo di fornitura del servizio. Il modello di servizio imposta il metodo di provisioning e ogni ambiente in cui uno sviluppatore distribuisce il servizio fornisce i parametri necessari per la fornitura delle istanze di servizio.

Il diagramma seguente riassume alcune caratteristiche principali dei diversi metodi di approvvigionamento. Le sezioni che seguono la tabella forniscono dettagli su ciascun metodo.

Metodo di assegnamento Modelli di Fornito da Stato monitorato

AWS-gestito

manifesto, schema, file IAc () CloudFormation

AWS Proton(attraversoCloudFormation)

AWS Proton(attraversoCloudFormation)

CodeBuild

manifest (con comandi), schema, dipendenze dei comandi (ad esempio AWS CDK codice)

AWS Proton(attraversoCodeBuild)

AWS Proton(i comandi restituiscono lo stato tramiteCodeBuild)

autogestito

manifesto, schema, file IAc (Terraform)

Il tuo codice (tramite azioni Git)

Il tuo codice (passato AWS tramite chiamata API)

Come funziona il provisioning AWS gestito

Quando un ambiente o un servizio utilizza il provisioning AWS gestito, l'infrastruttura viene fornita come segue:

  1. Un AWS Proton cliente (amministratore o sviluppatore) crea la AWS Proton risorsa (un ambiente o un servizio). Il cliente seleziona un modello per la risorsa e fornisce i parametri richiesti. Per ulteriori informazioni, Considerazioni sul provisioning AWS gestito

  2. AWS Protonesegue il rendering di un AWS CloudFormation modello completo per la fornitura della risorsa.

  3. AWS Protonchiamate AWS CloudFormation per avviare il provisioning utilizzando il modello renderizzato.

  4. AWS Protonmonitora continuamente la AWS CloudFormation distribuzione.

  5. Una volta completato il provisioning, AWS Proton riporta gli errori in caso di errore e acquisisce i risultati del provisioning, come Amazon VPC ID, in caso di successo.

Il diagramma seguente mostra che AWS Proton si occupa direttamente della maggior parte di questi passaggi.

Diagramma che illustra AWS -managed provisioning in AWS Proton

Considerazioni sul provisioning AWS gestito

  • Ruolo di fornitura dell'infrastruttura: quando un ambiente o una qualsiasi delle istanze di servizio in esecuzione in esso utilizza AWS -managed provisioning, un amministratore deve configurare un ruolo IAM (direttamente o come parte di una connessione all'account dell'AWS Protonambiente). AWS Protonutilizza questo ruolo per fornire l'infrastruttura di queste risorse AWS di approvvigionamento gestite. Il ruolo deve disporre delle autorizzazioni da utilizzare AWS CloudFormation per creare tutte le risorse incluse nei modelli di queste risorse.

    Per ulteriori informazioni, consultare Ruoli IAM e AWS Proton IAMesempi di politiche relative al ruolo dei servizi.

  • Fornitura di servizi: quando uno sviluppatore implementa un'istanza di servizio che utilizza il provisioning AWS gestito nell'ambiente, AWS Proton utilizza il ruolo fornito a quell'ambiente per fornire l'infrastruttura per l'istanza di servizio. Gli sviluppatori non vedono questo ruolo e non possono cambiarlo.

  • Servizio con pipeline: un modello di servizio che utilizza AWS -managed provisioning può includere una definizione di pipeline scritta nello schema YAML. AWS CloudFormation AWS Protoncrea anche la pipeline AWS CloudFormation chiamando. Il ruolo AWS Proton utilizzato per creare una pipeline è separato dal ruolo per ogni singolo ambiente. Questo ruolo viene assegnato AWS Proton separatamente, una sola volta a livello di AWS account, e viene utilizzato per fornire e gestire tutte le pipeline AWS gestite. Questo ruolo deve disporre delle autorizzazioni per creare pipeline e altre risorse di cui le pipeline hanno bisogno.

    Le seguenti AWS Proton

    AWS Proton console
    Per fornire il ruolo della pipeline
    1. Nella AWS Protonconsole, nel riquadro di navigazione, scegli Impostazioni > Impostazioni account, quindi scegli Configura.

    2. Utilizza la sezione Pipeline AWS -managed role per configurare un ruolo pipeline nuovo o esistente per AWS -managed provisioning.

    AWS Proton API
    Per fornire il ruolo della pipeline
    1. Usa l'azione UpdateAccountSettingsAPI.

    2. Impostare l'Amazon Resource Name (ARN) del ruolo del pipelineServiceRoleArn servizio di pipeline

    AWS CLI

    Per fornire il ruolo della pipeline

    Esegui il comando seguente:

    $ aws proton update-account-settings \ --pipeline-service-role-arn \ "arn:aws:iam::123456789012:role/my-pipeline-role"

CodeBuildFunzionamento amento

Quando un ambiente o un servizio utilizza il CodeBuild provisioning, l'infrastruttura viene fornita come segue:

  1. Un AWS Proton cliente (amministratore o sviluppatore) crea la AWS Proton risorsa (un ambiente o un servizio). Il cliente seleziona un modello per la risorsa e fornisce i parametri richiesti. Per ulteriori informazioni, Considerazioni relative all'approvvigionamento CodeBuild

  2. AWS Protonesegue il rendering di un file di input con i valori dei parametri di input per la fornitura della risorsa.

  3. AWS Protonchiamate CodeBuild per iniziare un lavoro. Il CodeBuild job esegue i comandi shell del cliente specificati nel modello. Questi comandi forniscono l'infrastruttura desiderata, leggendo facoltativamente i valori di input.

  4. Al termine del provisioning, il comando finale del cliente restituisce lo stato di provisioning CodeBuild e richiama l'azione NotifyResourceDeploymentStatusChangeAWS ProtonAPI per fornire output, come Amazon VPC ID, se disponibile.

    Importante

    Assicurati che i tuoi comandi restituiscano correttamente lo stato di provisioning CodeBuild e forniscano gli output. In caso contrario, non AWS Proton possono monitorare correttamente lo stato di fornitura e non possono fornire gli output corretti alle istanze del servizio.

Il diagramma seguente illustra i passaggi eseguiti e i passaggi che AWS Proton i comandi eseguono all'interno di un CodeBuild processo.

Diagramma che illustra il provisioning CodeBuild basato in AWS Proton

Considerazioni relative all'approvvigionamento CodeBuild

  • Ruolo di fornitura dell'infrastruttura: quando un ambiente o una qualsiasi delle istanze di servizio in esecuzione in esso può utilizzare il provisioning CodeBuild basato, un amministratore deve configurare un ruolo IAM (direttamente o come parte di una connessione con un account di AWS Proton ambiente). AWS Protonutilizza questo ruolo per fornire l'infrastruttura di queste risorse di CodeBuild approvvigionamento. Il ruolo deve disporre delle autorizzazioni da CodeBuild utilizzare per creare tutte le risorse fornite dai comandi nei modelli di queste risorse.

    Per ulteriori informazioni, consultare Ruoli IAM e AWS Proton IAMesempi di politiche relative al ruolo dei servizi.

  • Fornitura di servizi: quando uno sviluppatore implementa un'istanza di servizio che utilizza il CodeBuild provisioning nell'ambiente, AWS Proton utilizza il ruolo fornito a quell'ambiente per fornire l'infrastruttura per l'istanza di servizio. Gli sviluppatori non vedono questo ruolo e non possono cambiarlo.

  • Servizio con pipeline: un modello di servizio che utilizza il CodeBuild provisioning può includere comandi per fornire una pipeline. AWS Protoncrea anche la pipeline CodeBuild chiamando. Il ruolo AWS Proton utilizzato per creare una pipeline è separato dal ruolo per ogni singolo ambiente. Questo ruolo viene assegnato AWS Proton separatamente, una sola volta a livello di AWS account, e viene utilizzato per fornire e gestire tutte le pipeline CodeBuild basate. Questo ruolo deve disporre delle autorizzazioni per creare pipeline e altre risorse di cui le pipeline hanno bisogno.

    Le seguenti AWS Proton

    AWS Proton console
    Per fornire il ruolo della pipeline
    1. Nella AWS Protonconsole, nel riquadro di navigazione, scegli Impostazioni > Impostazioni account, quindi scegli Configura.

    2. Utilizza la sezione del ruolo di provisioning della pipeline di Codebuild per configurare un ruolo della pipeline nuovo o esistente per il provisioning. CodeBuild

    AWS Proton API
    Per fornire il ruolo della pipeline
    1. Usa l'azione UpdateAccountSettingsAPI.

    2. Impostare l'Amazon Resource Name (ARN) del ruolo del pipelineCodebuildRoleArn servizio di pipeline

    AWS CLI

    Per fornire il ruolo della pipeline

    Esegui il comando seguente:

    $ aws proton update-account-settings \ --pipeline-codebuild-role-arn \ "arn:aws:iam::123456789012:role/my-pipeline-role"

Funzionamento del provisioning

Quando un ambiente è configurato per utilizzare il provisioning autogestito, l'infrastruttura viene fornita come segue:

  1. Un AWS Proton cliente (amministratore o sviluppatore) crea la AWS Proton risorsa (un ambiente o un servizio). Il cliente seleziona un modello per la risorsa e fornisce i parametri richiesti. Per un ambiente, il cliente fornisce anche un archivio di infrastruttura collegato. Per ulteriori informazioni, Considerazioni sull'assegnazione

  2. AWS Protonrende un modello Terraform completo. È costituito da uno o più file Terraform, potenzialmente in più cartelle, e da un file di .tfvars variabili. AWS Protonscrive i valori dei parametri forniti nella chiamata di creazione della risorsa in questo file di variabili.

  3. AWS Protoninvia un PR all'archivio dell'infrastruttura con il modello Terraform renderizzato.

  4. Quando il cliente (amministratore o sviluppatore) unisce il PR, l'automazione del cliente attiva il motore di provisioning per avviare il provisioning dell'infrastruttura utilizzando il modello unito.

    Nota

    Se il cliente (amministratore o sviluppatore) chiude il PR, AWS Proton riconosce il PR come chiuso e contrassegna la distribuzione come annullata.

  5. Una volta completato il provisioning, l'automazione del cliente richiama l'azione NotifyResourceDeploymentStatusChangeAWS ProtonAPI per indicare il completamento, fornire lo stato (esito positivo o negativo) e fornire output, come Amazon VPC ID, se presenti.

    Importante

    Assicurati che il codice di automazione richiami AWS Proton con lo stato e gli output del provisioning. In caso contrario, AWS Proton potrebbe considerare il provisioning in sospeso più a lungo del dovuto e continuare a mostrare lo stato In corso.

Il diagramma seguente illustra i passaggi eseguiti e AWS Proton i passaggi eseguiti dal proprio sistema di provisioning.

Diagramma che illustra il provisioning autogestito in AWS Proton

Considerazioni sull'assegnazione

  • Archivio dell'infrastruttura: quando un amministratore configura un ambiente per il provisioning autogestito, deve fornire un archivio di infrastruttura collegato. AWS Protoninvia i PR a questo archivio per fornire l'infrastruttura dell'ambiente e tutte le istanze di servizio che vi vengono distribuite. L'azione di automazione di proprietà del cliente nel repository deve assumere un ruolo IAM con le autorizzazioni per creare tutte le risorse incluse nell'ambiente e nei modelli di servizio e un'identità che rifletta l'account di destinazione. AWS Per un esempio di GitHub Azione che assume un ruolo, vedere Assuming a Role nella documentazione «Configura AWS credenziali» di Action For GitHub Actions.

  • Autorizzazioni: il codice di fornitura deve autenticarsi con un account se necessario (ad esempio, autenticarsi su un AWS account) e fornire l'autorizzazione alla fornitura di risorse (ad esempio, fornire un ruolo).

  • Fornitura di servizi: quando uno sviluppatore implementa un'istanza di servizio che utilizza il provisioning autogestito nell'ambiente, AWS Proton invia un PR al repository associato all'ambiente per fornire l'infrastruttura per l'istanza di servizio. Gli sviluppatori non vedono il repository e non possono modificarlo.

    Nota

    Gli sviluppatori che creano servizi utilizzano lo stesso processo indipendentemente dal metodo di fornitura e la differenza è astratta da essi. Tuttavia, con il provisioning autogestito, gli sviluppatori potrebbero riscontrare una risposta più lenta, poiché devono attendere che qualcuno (che non sia loro stessi) unisca il PR nell'archivio dell'infrastruttura prima di poter iniziare il provisioning.

  • Servizio con pipeline: un modello di servizio per un ambiente con provisioning autogestito può includere una definizione di pipeline (ad esempio una AWS CodePipeline pipeline), scritta in Terraform HCL. AWS ProtonPer abilitare il provisioning di queste pipeline, un amministratore fornisce un repository di pipeline collegato a. AWS Proton Quando si effettua il provisioning di una pipeline, l'azione di automazione di proprietà del cliente nel repository deve assumere un ruolo IAM con le autorizzazioni per il provisioning della pipeline e un'identità che rifletta l'account di destinazione. AWS L'archivio e il ruolo della pipeline sono separati da quelli utilizzati per ogni singolo ambiente. L'archivio collegato viene fornito AWS Proton separatamente, solo una volta a livello di AWS account, e viene utilizzato per il provisioning e la gestione di tutte le pipeline. Il ruolo deve disporre delle autorizzazioni per creare pipeline e altre risorse di cui le pipeline hanno bisogno.

    Le seguenti AWS Proton

    AWS Proton console
    Per fornire il ruolo della pipeline
    1. Nella AWS Protonconsole, nel riquadro di navigazione, scegli Impostazioni > Impostazioni account, quindi scegli Configura.

    2. Utilizza la sezione CI/CD pipeline repository per configurare un collegamento al repository nuovo o esistente.

    AWS Proton API
    Per fornire il ruolo della pipeline
    1. Usa l'azione UpdateAccountSettingsAPI.

    2. Fornisci il provider, il nome e il ramo del tuo archivio di pipeline nel parametro. pipelineProvisioningRepository

    AWS CLI

    Per fornire il ruolo della pipeline

    Esegui il comando seguente:

    $ aws proton update-account-settings \ --pipeline-provisioning-repository \ "provider=GITHUB,name=my-pipeline-repo-name,branch=my-branch"
  • Eliminazione delle risorse fornite autogestite: i moduli Terraform possono includere elementi di configurazione necessari per il funzionamento di Terraform, oltre alle definizioni delle risorse. Pertanto, non è AWS Proton possibile eliminare tutti i file Terraform per un ambiente o un'istanza di servizio. AWS ProtonContrassegna invece i file per l'eliminazione e aggiorna un contrassegno nei metadati PR. La tua automazione può leggere quella bandiera e utilizzarla per attivare un comando di distruzione della terraforma.