Avviso di fine del supporto: il 7 ottobre 2026, AWS terminerà il supporto per AWS Proton. Dopo il 7 ottobre 2026, non potrai più accedere alla AWS Proton console o AWS Proton alle risorse. L'infrastruttura implementata rimarrà intatta. Per ulteriori informazioni, consulta la AWS Proton Service Deprecation and Migration Guide.
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à.
Componente CloudFormation example
Ecco un esempio completo di un componente definito AWS Proton direttamente e di come utilizzarlo in un AWS Proton servizio. Il componente fornisce un bucket Amazon Simple Storage Service (Amazon S3) e la relativa politica di accesso. L'istanza del servizio può fare riferimento a questo bucket e utilizzarlo. Il nome del bucket si basa sui nomi dell'ambiente, del servizio, dell'istanza del servizio e del componente, il che significa che il bucket è associato a un'istanza specifica del modello di componente che estende una specifica istanza del servizio. Gli sviluppatori possono creare più componenti in base a questo modello di componente, per fornire bucket Amazon S3 per diverse istanze di servizio ed esigenze funzionali.
L'esempio riguarda la creazione dei vari file IaC ( CloudFormation Infrastructure as code) richiesti e la creazione di un ruolo obbligatorio AWS Identity and Access Management (IAM). L'esempio raggruppa i passaggi in base ai ruoli delle persone proprietarie.
Passaggi dell'amministratore
Per consentire agli sviluppatori di utilizzare i componenti con un servizio
-
Crea un ruolo AWS Identity and Access Management (IAM) che descriva le risorse che possono essere fornite dai componenti definiti direttamente in esecuzione nel tuo ambiente. AWS Proton assume questo ruolo in seguito per eseguire il provisioning dei componenti definiti direttamente nell'ambiente.
Per questo esempio, utilizza la seguente politica:
Esempio ruolo del componente definito direttamente
-
Fornisci il ruolo che hai creato nel passaggio precedente quando crei o aggiorni l'ambiente. Nella AWS Proton console, specifica un ruolo del componente nella pagina Configura ambiente. Se stai utilizzando l' AWS Proton API o AWS CLI, specifica
componentRoleArnle azioni CreateEnvironment o UpdateEnvironment API. -
Crea un modello di servizio che faccia riferimento a un componente definito direttamente collegato all'istanza del servizio.
L'esempio mostra come scrivere un modello di servizio robusto che non si interrompa se un componente non è collegato all'istanza del servizio.
Esempio file CloudFormation IAc di servizio utilizzando un componente
# service/instance_infrastructure/cloudformation.yaml Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: TaskRoleArn: !Ref TaskRole ContainerDefinitions: - Name: '{{service_instance.name}}' # ... {% if service_instance.components.default.outputs | length > 0 %} Environment: {{ service_instance.components.default.outputs | proton_cfn_ecs_task_definition_formatted_env_vars }} {% endif %} # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy {{ service_instance.components.default.outputs | proton_cfn_iam_policy_arns }} # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ... -
Crea una nuova versione secondaria del modello di servizio che dichiari supportati i componenti definiti direttamente.
-
Pacchetto di modelli in Amazon S3: nella AWS Proton console, quando crei una versione del modello di servizio, per le sorgenti dei componenti supportate, scegli Definita direttamente. Se stai utilizzando l' AWS Proton API o AWS CLI, specifica
DIRECTLY_DEFINEDnelsupportedComponentSourcesparametro delle azioni CreateServiceTemplateVersion o UpdateServiceTemplateVersion API. -
Sincronizzazione dei modelli: invia una modifica al repository del pacchetto di modelli di servizio, dove lo specifichi
DIRECTLY_DEFINEDcome elementosupported_component_sources:nel.template-registration.yamlfile nella directory della versione principale. Per ulteriori informazioni su questo file, consulta Modelli di servizio di sincronizzazione.
-
-
Pubblica la nuova versione secondaria del modello di servizio. Per ulteriori informazioni, consulta Registra e pubblica i modelli.
-
Assicurati di consentire il
proton:CreateComponentruolo IAM degli sviluppatori che utilizzano questo modello di servizio.
Passaggi per gli sviluppatori
Per utilizzare un componente definito direttamente con un'istanza del servizio
-
Crea un servizio che utilizzi la versione del modello di servizio creata dall'amministratore con il supporto dei componenti. In alternativa, aggiorna una delle istanze di servizio esistenti per utilizzare la versione più recente del modello.
-
Scrivi un file modello IaC del componente che fornisca un bucket Amazon S3 e una relativa policy di accesso ed esponga queste risorse come output.
Esempio file IaC del componente CloudFormation
# cloudformation.yaml # A component that defines an S3 bucket and a policy for accessing the bucket. Resources: S3Bucket: Type: AWS::S3::Bucket Properties: BucketName: '{{environment.name}}-{{service.name}}-{{service_instance.name}}-{{component.name}}' S3BucketAccessPolicy: Type: AWS::IAM::ManagedPolicy Properties: PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Action: - 's3:Get*' - 's3:List*' - 's3:PutObject' Resource: !GetAtt S3Bucket.Arn Outputs: BucketName: Description: "Bucket to access" Value: !GetAtt S3Bucket.Arn BucketAccessPolicyArn: Value: !Ref S3BucketAccessPolicy -
Se stai usando l' AWS Proton API o AWS CLI, scrivi un file manifest per il componente.
Esempio manifesto del componente definito direttamente
infrastructure: templates: - file: "cloudformation.yaml" rendering_engine: jinja template_language: cloudformation -
Crea un componente definito direttamente. AWS Proton assume il ruolo del componente definito dall'amministratore per il provisioning del componente.
Nella AWS Proton console, nella pagina
Componenti, scegli Crea componente. Per le impostazioni dei componenti, inserite il nome del componente e una descrizione opzionale del componente. Per Collegamento del componente, scegliete Collega il componente a un'istanza del servizio. Seleziona l'ambiente, il servizio e l'istanza del servizio. Per Sorgente del componente, scegli CloudFormation, quindi scegli il file IaC del componente. Nota
Non è necessario fornire un manifesto: la console ne crea uno per te.
Se stai usando l' AWS Proton API o AWS CLI, usa l'azione CreateComponent API. Imposta un componente
namee facoltativodescription. ImpostaenvironmentNameserviceName, eserviceInstanceName. ImpostatemplateSourceemanifestai percorsi dei file che hai creato.Nota
La specificazione di un nome di ambiente è facoltativa quando si specificano i nomi dei servizi e delle istanze del servizio. La combinazione di questi due elementi è unica nel tuo AWS account e AWS Proton può determinare l'ambiente dall'istanza del servizio.
-
Aggiorna l'istanza del servizio per ridistribuirla. AWS Proton utilizza gli output del componente nel modello di istanza del servizio renderizzato, per consentire all'applicazione di utilizzare il bucket Amazon S3 fornito dal componente.