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à.
Utilizzo di EC2 Image Builder per creare modelli personalizzati ottimizzati per Amazon ECS AMIs
AWS consiglia di utilizzare Amazon ECS ottimizzato AMIs perché è preconfigurato con i requisiti e i consigli per eseguire i carichi di lavoro dei container. In alcuni casi potrebbe essere necessario personalizzare l'AMI per aggiungere software aggiuntivo. È possibile utilizzare EC2 Image Builder per la creazione, la gestione e la distribuzione delle immagini del server. Mantieni la proprietà delle immagini personalizzate create nel tuo account. È possibile utilizzare le pipeline di EC2 Image Builder per automatizzare gli aggiornamenti e l'applicazione di patch di sistema per le immagini oppure utilizzare un comando autonomo per creare un'immagine con le risorse di configurazione definite.
Crei una ricetta per la tua immagine. La ricetta include un'immagine principale ed eventuali componenti aggiuntivi. Puoi anche creare una pipeline che distribuisce la tua AMI personalizzata.
Crei una ricetta per la tua immagine. Una ricetta di immagini di Image Builder è un documento che definisce l'immagine di base e i componenti che vengono applicati all'immagine di base per produrre la configurazione desiderata per l'immagine AMI di output. Puoi anche creare una pipeline che distribuisce la tua AMI personalizzata. Per ulteriori informazioni, vedere Come funziona EC2 Image Builder nella Guida per l'utente di Image EC2 Builder.
Ti consigliamo di utilizzare una delle seguenti immagini ottimizzate per Amazon ECS AMIs come «immagine principale» in Image EC2 Builder:
Linux
-
023 x86 ottimizzato per Amazon ECS AL2
-
AMI Amazon Linux 2023 (arm64) ottimizzata per Amazon ECS
-
AMI Amazon Linux 2 kernel 5 ottimizzata per Amazon ECS
-
AMI Amazon Linux 2 x86 ottimizzata per Amazon ECS
-
Windows
-
Windows 2022 Full x86 ottimizzato per Amazon ECS
-
Windows 2022 Core x86 ottimizzato per Amazon ECS
-
Windows 2019 Full x86 ottimizzato per Amazon ECS
-
Windows 2019 Core x86 ottimizzato per Amazon ECS
-
Windows 2016 completo x86 ottimizzato per Amazon ECS
-
Ti consigliamo inoltre di selezionare «Usa l'ultima versione del sistema operativo disponibile». La pipeline utilizzerà il controllo delle versioni semantiche per l'immagine principale, che aiuta a rilevare gli aggiornamenti delle dipendenze nei lavori pianificati automaticamente. Per ulteriori informazioni, vedere Controllo delle versioni semantiche nella Guida per l'utente di Image EC2 Builder.
AWS aggiorna regolarmente le immagini AMI ottimizzate per Amazon ECS con patch di sicurezza e la nuova versione di Container Agent. Quando utilizzi un ID AMI come immagine principale nella ricetta dell'immagine, devi controllare regolarmente gli aggiornamenti dell'immagine principale. Se sono disponibili aggiornamenti, è necessario creare una nuova versione della ricetta con l'AMI aggiornata. Ciò garantisce che le immagini personalizzate incorporino la versione più recente dell'immagine principale. Per informazioni su come creare un flusso di lavoro per aggiornare automaticamente le EC2 istanze nel cluster Amazon ECS con quelle appena create AMIs, vedi Come creare una pipeline di rafforzamento dell'AMI e automatizzare gli aggiornamenti alla
Puoi anche specificare l'Amazon Resource Name (ARN) di un'immagine principale pubblicata tramite una pipeline di Image EC2 Builder gestita. Amazon pubblica regolarmente immagini AMI ottimizzate per Amazon ECS tramite pipeline gestite. Queste immagini sono accessibili al pubblico. È necessario disporre delle autorizzazioni corrette per accedere all'immagine. Quando utilizzi un'immagine ARN anziché un'AMI nella tua ricetta Image Builder, la pipeline utilizza automaticamente la versione più recente dell'immagine principale ogni volta che viene eseguita. Questo approccio elimina la necessità di creare manualmente nuove versioni di ricette per ogni aggiornamento.
Utilizzo dell'immagine ARN con infrastruttura come codice (IaC)
È possibile configurare la ricetta utilizzando la console EC2 Image Builder o l'infrastruttura come codice (ad esempio AWS CloudFormation) o l' AWS SDK. Quando specificate un'immagine principale nella ricetta, potete specificare un ID EC2 AMI, un ARN dell'immagine Image Builder, un ID Marketplace AWS prodotto o un'immagine del contenitore. AWS pubblica pubblicamente sia l'immagine AMI che IDs l'immagine Image Builder ARNs di Amazon AMIs ECS ottimizzata. Di seguito è riportato il formato ARN per l'immagine:
arn:${Partition}:imagebuilder:${Region}:${Account}:image/${ImageName}/${ImageVersion}
Il formato ImageVersion
è il seguente. Sostituisci major
minor
e patch
con i valori più recenti.
<
major
>.<minor
>.<patch
>
È possibile sostituire major
minor
e patch
utilizzare valori specifici oppure utilizzare l'ARN senza versione di un'immagine, in modo che la pipeline rimanga up-to-date con la versione più recente dell'immagine principale. Un ARN senza versione utilizza il formato wildcard 'x.x.x' per rappresentare la versione dell'immagine. Questo approccio consente al servizio Image Builder di passare automaticamente alla versione più recente dell'immagine. L'utilizzo di un ARN senza versione garantisce che il riferimento punti sempre all'ultima immagine disponibile, semplificando il processo di mantenimento delle immagini aggiornate durante l'implementazione. Quando crei una ricetta con la console, EC2 Image Builder identifica automaticamente l'ARN per l'immagine principale. Quando si utilizza iAc per creare la ricetta, è necessario identificare l'ARN e selezionare la versione dell'immagine desiderata o utilizzare l'arn senza versione per indicare l'ultima immagine disponibile. Ti consigliamo di creare uno script automatico per filtrare e visualizzare solo le immagini in linea con i tuoi criteri. Il seguente script Python mostra come recuperare un elenco di contenuti ottimizzati per Amazon ECS. AMIs
Lo script accetta due argomenti opzionali: owner
eplatform
, con i valori predefiniti di «Amazon» e «Windows» rispettivamente. I valori validi per l'argomento proprietario sono: Self
Shared
,Amazon
, eThirdParty
. I valori validi per l'argomento platform sono Windows
eLinux
. Ad esempio, se esegui lo script con l'owner
argomento impostato su Amazon
e impostato suLinux
, lo script genera un elenco di immagini pubblicate da Amazon, incluse immagini ottimizzate per Amazon ECS. platform
import boto3 import argparse def list_images(owner, platform): # Create a Boto3 session session = boto3.Session() # Create an EC2 Image Builder client client = session.client('imagebuilder') # Define the initial request parameters request_params = { 'owner': owner, 'filters': [ { 'name': 'platform', 'values': [platform] } ] } # Initialize the results list all_images = [] # Get the initial response with the first page of results response = client.list_images(**request_params) # Extract images from the response all_images.extend(response['imageVersionList']) # While 'nextToken' is present, continue paginating while 'nextToken' in response and response['nextToken']: # Update the token for the next request request_params['nextToken'] = response['nextToken'] # Get the next page of results response = client.list_images(**request_params) # Extract images from the response all_images.extend(response['imageVersionList']) return all_images def main(): # Initialize the parser parser = argparse.ArgumentParser(description="List AWS images based on owner and platform") # Add the parameters/arguments parser.add_argument("--owner", default="Amazon", help="The owner of the images. Default is 'Amazon'.") parser.add_argument("--platform", default="Windows", help="The platform type of the images. Default is 'Windows'.") # Parse the arguments args = parser.parse_args() # Retrieve all images based on the provided owner and platform images = list_images(args.owner, args.platform) # Print the details of the images for image in images: print(f"Name: {image['name']}, Version: {image['version']}, ARN: {image['arn']}") if __name__ == "__main__": main()
Utilizzo dell'immagine ARN con AWS CloudFormation
Una ricetta di immagini Image Builder è un progetto che specifica l'immagine principale e i componenti necessari per ottenere la configurazione prevista dell'immagine di output. La risorsa viene utilizzata. AWS::ImageBuilder::ImageRecipe
Imposta il ParentImage
valore sull'ARN dell'immagine. Usa l'ARN senza versione dell'immagine desiderata per assicurarti che la pipeline utilizzi sempre la versione più recente dell'immagine. Ad esempio arn:aws:imagebuilder:us-east-1:aws:image/amazon-linux-2023-ecs-optimized-x86/x.x.x
. La seguente definizione di AWS::ImageBuilder::ImageRecipe
risorsa utilizza un ARN di immagine gestita da Amazon:
ECSRecipe: Type: AWS::ImageBuilder::ImageRecipe Properties: Name: MyRecipe Version: '1.0.0' Components: - ComponentArn: [<The component arns of the image recipe>] ParentImage: "arn:aws:imagebuilder:us-east-1:aws:image/amazon-linux-2023-ecs-optimized-x86/x.x.x"
Per ulteriori informazioni sulla AWS::ImageBuilder::ImageRecipe
risorsa, consulta la Guida per l'AWS CloudFormation utente.
Puoi automatizzare la creazione di nuove immagini nella tua pipeline impostando la Schedule
proprietà della AWS::ImageBuilder::ImagePipeline
risorsa. La pianificazione include una condizione di avvio e un'espressione cron. Per ulteriori informazioni, consulta AWS::ImageBuilder::ImagePipeline
nella Guida per l'utente di AWS CloudFormation .
L'AWS::ImageBuilder::ImagePipeline
esempio seguente fa in modo che la pipeline esegua una build ogni giorno alle 10:00 UTC (Coordinated Universal Time). Imposta i seguenti valori: Schedule
Imposta
PipelineExecutionStartCondition
suEXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE
. La build inizia solo se vengono aggiornate risorse dipendenti come l'immagine principale o i componenti, che utilizzano il carattere jolly 'x' nelle loro versioni semantiche. Ciò garantisce che la build incorpori gli ultimi aggiornamenti di tali risorse.-
Imposta ScheduleExpression sull'espressione cron.
(0 10 * * ? *)
ECSPipeline: Type: AWS::ImageBuilder::ImagePipeline Properties: Name: my-pipeline ImageRecipeArn: <arn of the recipe you created in previous step> InfrastructureConfigurationArn: <ARN of the infrastructure configuration associated with this image pipeline> Schedule: PipelineExecutionStartCondition: EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE ScheduleExpression: 'cron(0 10 * * ? *)'
Utilizzo dell'immagine ARN con Terraform
L'approccio per specificare l'immagine e la pianificazione principali della pipeline in Terraform è in linea con quello in. AWS CloudFormation Usi la risorsa. aws_imagebuilder_image_recipe
Imposta il parent_image
valore sull'ARN dell'immagine. Usa l'ARN senza versione dell'immagine desiderata per assicurarti che la pipeline utilizzi sempre la versione più recente dell'immagine. Per ulteriori informazioni, consulta la documentazione di aws_imagebuilder_image_recipe
Nel blocco di configurazione della schedulazione diaws_imagebuilder_image_pipeline
resource
, imposta il valore dell'schedule_expression
argomento su un'espressione cron a tua scelta per specificare la frequenza di esecuzione della pipeline e imposta su. pipeline_execution_start_condition
EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE
Per ulteriori informazioni, consulta la documentazione aws_imagebuilder_image_pipeline