Parametri di definizione del servizio Amazon ECS - Amazon Elastic Container Service

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

Parametri di definizione del servizio Amazon ECS

Una definizione di servizio definisce come eseguire il servizio Amazon ECS. I seguenti parametri possono essere specificati in una definizione di servizio.

Tipo di avvio

launchType

▬Tipo: stringa

Valori validi: EC2 | FARGATE | EXTERNAL

Campo obbligatorio: no

Il tipo di avvio con cui eseguire il servizio. Se non viene specificato un tipo di avvio, per impostazione predefinita viene utilizzato il capacityProviderStrategy di default. Per ulteriori informazioni, consulta Tipi di avvio di Amazon ECS.

Se viene specificato un launchType, il parametro capacityProviderStrategy deve essere omesso.

Strategia del provider di capacità

capacityProviderStrategy

Tipo: matrice di oggetti

Campo obbligatorio: no

La strategia del fornitore di capacità da utilizzare per il servizio.

Una strategia del fornitore di capacità consiste di uno o più fornitori di capacità e dei valori base e weight da assegnare a essi. Un provider di capacità deve essere associato al cluster da utilizzare in una strategia del provider di capacità. L' PutClusterCapacityProviders API viene utilizzata per associare un provider di capacità a un cluster. È possibile utilizzare solo i provider di capacità con uno stato ACTIVE o uno stato UPDATING.

Se viene specificato un capacityProviderStrategy, il parametro launchType deve essere omesso. Se non viene specificato capacityProviderStrategy o launchType, viene utilizzato defaultCapacityProviderStrategy per il cluster.

Se desideri specificare un provider di capacità che utilizzi un gruppo con scalabilità automatica, il provider di capacità deve essere già stato creato. È possibile creare nuovi fornitori di capacità con l'operazione CreateCapacityProvider API.

Per utilizzare un provider di capacità AWS Fargate, specificare FARGATE o i provider di FARGATE_SPOT capacità. I provider di capacità AWS Fargate sono disponibili per tutti gli account e devono essere associati solo a un cluster per essere utilizzati.

L'operazione PutClusterCapacityProviders API viene utilizzata per aggiornare l'elenco dei fornitori di capacità disponibili per un cluster dopo la creazione del cluster.

capacityProvider

Tipo: stringa

Campo obbligatorio: sì

Il nome breve o il nome della risorsa Amazon (ARN) del provider di capacità.

weight

Tipo: integer

Intervallo valido: numeri interi compresi tra 0 e 1.000.

Campo obbligatorio: no

Il valore del peso indica la percentuale relativa del numero totale di attività avviate che devono utilizzare il provider di capacità specificato.

Ad esempio, supponiamo di avere una strategia che contiene due provider di capacità, ognuno con un peso pari a uno. Una volta soddisfatta la base, le attività si dividono equamente tra i due provider di capacità. Usando la stessa logica, assumiamo di specificare un peso di 1 per capacityProviderA e un peso di 4 per capacityProviderB. Quindi, per ogni attività che viene eseguita utilizzando capacityProviderA, quattro attività utilizzano capacityProviderB.

base

Tipo: integer

Intervallo valido: numeri interi compresi tra 0 e 100.000.

Campo obbligatorio: no

Il valore di base indica il numero minimo di attività da eseguire nel provider di capacità specificato. Solo un provider di capacità in una strategia di provider di capacità può avere una base definita.

Definizione di attività

taskDefinition

▬Tipo: stringa

Campo obbligatorio: no

I valori family e revision (family:revision) o il nome della risorsa Amazon (ARN) completo della definizione di attività da eseguire nel servizio. Se non viene specificato un revision, viene utilizzata l'ultima revisione ACTIVE della famiglia specificata.

Una definizione di attività deve essere specificata quando si utilizza il controller di distribuzione di aggiornamento in sequenza (ECS).

Sistema operativo della piattaforma

platformFamily

Tipo: stringa

Obbligatorio: condizionale

Di default: Linux

Questo parametro è richiesto per i servizi Amazon ECS ospitati su Fargate.

Questo parametro viene ignorato per i servizi Amazon ECS ospitati su Amazon EC2.

Il sistema operativo sui container che esegue il servizio. I valori validi sono LINUX, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2022_FULL e WINDOWS_SERVER_2022_CORE.

Il valore platformFamily per ogni processo specificato per il servizio deve corrispondere al valore platformFamily del servizio. Ad esempio, se hai impostato platformFamily su WINDOWS_SERVER_2019_FULL, il valore platformFamily per tutte le attività deve essere WINDOWS_SERVER_2019_FULL.

Versione della piattaforma

platformVersion

▬Tipo: stringa

Campo obbligatorio: no

La versione della piattaforma su cui sono in esecuzione le attività nel servizio. Viene specificata una versione della piattaforma solo per le attività con tipo di avvio Fargate. Se non è specificata, la versione più recente (LATEST) viene utilizzata di default.

AWS Le versioni della piattaforma Fargate vengono utilizzate per fare riferimento a un ambiente di runtime specifico per l'infrastruttura di attività Fargate. Quando specifichi la versione della piattaforma LATEST durante l'esecuzione di un'attività o la creazione di un servizio, ottieni la versione di piattaforma più aggiornata disponibile per le tue attività. Quando incrementi il servizio, tali attività riceveranno la versione della piattaforma specificata nell'implementazione corrente del servizio. Per ulteriori informazioni, consulta Versioni della piattaforma Fargate Linux per Amazon ECS.

Nota

Le versioni della piattaforma non sono specificate per i processi che utilizzano il tipo di avvio EC2.

Cluster

cluster

▬Tipo: stringa

Campo obbligatorio: no

Il nome breve o il nome della risorsa Amazon (ARN) completo del cluster in cui eseguire il servizio. Se non specifichi un cluster, viene utilizzato il cluster di default.

Nome servizio

serviceName

Tipo: stringa

Campo obbligatorio: sì

Il nome del servizio. Il nome può contenere un massimo di 255 lettere (maiuscole e minuscole), numeri, trattini e caratteri di sottolineatura. I nomi dei servizi devono essere univoci all'interno di un cluster, ma puoi avere servizi dai nomi simili in più cluster all'interno di una Regione o in più Regioni.

Strategia di pianificazione

schedulingStrategy

▬Tipo: stringa

Valori validi: REPLICA | DAEMON

Campo obbligatorio: no

La strategia di pianificazione da utilizzare. Se non viene specificata alcuna strategia di pianificazione, viene utilizzata la strategia REPLICA. Per ulteriori informazioni, consulta Servizi Amazon ECS.

Sono disponibili due strategie del pianificatore del servizio:

  • REPLICA: la strategia di pianificazione delle repliche colloca e gestisce il numero desiderato di attività nel cluster. Di default, il pianificatore del servizio distribuisce le attività tra le zone di disponibilità. Puoi utilizzare vincoli e strategie di posizionamento delle attività per personalizzare le decisione riguardo al posizionamento delle attività. Per ulteriori informazioni, consulta Strategia di replica.

  • DAEMON: la strategia di pianificazione del daemon distribuisce esattamente un'attività in ciascuna istanza di container attiva, che soddisfa tutti i vincoli di posizionamento delle attività specificati nel cluster. Quando si utilizza questa strategia, non è necessario specificare un numero di attività desiderato o una strategia di posizionamento delle attività, né utilizzare le policy di Auto Scaling del servizio. Per ulteriori informazioni, consulta Strategia daemon.

    Nota

    I processi Fargate non supportano la strategia di pianificazione DAEMON

Conteggio desiderato

desiredCount

Tipo: integer

Campo obbligatorio: no

Il numero di istanze della definizione di attività specificata da posizionare e mantenere in esecuzione nel servizio.

Questo parametro è obbligatorio se si utilizza la strategia di pianificazione REPLICA. Se il servizio utilizza la strategia di pianificazione DAEMON, questo parametro è facoltativo.

Configurazione dell'implementazione

deploymentConfiguration

Tipo: oggetto

Campo obbligatorio: no

I parametri di distribuzione opzionali che determinano quante attività vengono eseguite durante l'implementazione e l'ordine di arresto e di avvio delle attività.

maximumPercent

Tipo: integer

Campo obbligatorio: no

Se il servizio utilizza il tipo di implementazione con aggiornamento in sequenza (ECS), il parametro maximumPercent rappresenta un limite superiore sul numero di attività del servizio che sono consentite nello stato RUNNING, STOPPING o PENDING durante un'implementazione. Viene espresso come percentuale del desiredCountarrotondato per difetto al valore intero più vicino. Questo parametro può essere utilizzato per definire le dimensioni del batch di implementazione. Ad esempio, se il servizio utilizza il pianificatore di servizi REPLICA e ha un desiredCount di quattro attività e un valore maximumPercent pari al 200%, il pianificatore può avviare quattro nuove attività prima di arrestare le quattro attività più vecchie. a condizione che le risorse del cluster necessarie per questa operazione siano disponibili. Il valore predefinito maximumPercent per un servizio che utilizza il pianificatore di servizi REPLICA è del 200%.

Se il servizio sta utilizzando il tipo di pianificatore di servizi DAEMON, il parametro maximumPercent deve rimanere al 100%. Si tratta del valore di default.

Il numero massimo di attività durante un'implementazione è uguale a desiredCount moltiplicato per maximumPercent/100, arrotondato per difetto al numero intero più vicino.

Se un servizio sta utilizzando i tipi di distribuzione blu/verde (CODE_DEPLOY) o EXTERNAL con attività che utilizzano il tipo di avvio EC2, il valore della percentuale massima viene impostato sul valore predefinito e utilizzato per definire il limite superiore per il numero di attività nel servizio che rimangono nello stato RUNNING mentre le istanze di container sono in stato DRAINING. Se le attività del servizio utilizzano il tipo di avvio Fargate, il valore della percentuale massima non viene utilizzato anche se viene restituito nella descrizione del servizio.

minimumHealthyPercent

Tipo: integer

Campo obbligatorio: no

Se il servizio utilizza il tipo di implementazione aggiornamento in sequenza (ECS), il parametro minimumHealthyPercent rappresenta un limite inferiore sul numero di attività del servizio che devono restare nello stato RUNNING durante un'implementazione. Viene espresso come percentuale del desiredCountarrotondato per eccesso al valore intero più vicino. Questo parametro può essere utilizzato per eseguire l'implementazione senza utilizzare capacità aggiuntiva del cluster. Ad esempio, se il servizio ha un desiredCount di quattro attività e un minimumHealthyPercent del 50%, il pianificatore di servizi può arrestare due attività esistenti per liberare capacità del cluster prima di avviare due nuove attività.

Per i servizi che non utilizzano un load balancer, considera quanto riportato di seguito:

  • Un servizio è considerato integro se tutti i container essenziali all'interno delle attività del servizio superano i controlli dello stato.

  • Se un'attività non dispone di container essenziali con un controllo dell'integrità definito, il pianificatore del servizio attenderà 40 secondi dopo che un'attività raggiunge uno stato RUNNING prima di contarla per la percentuale minima di integrità totale.

  • Se un'attività ha uno o più container essenziali con un controllo dell'integrità definito, il pianificatore del servizio attenderà che l'attività raggiunga uno stato integro prima di contarla per la percentuale minima di integrità totale. Un'attività è considerata sana quando tutti i container essenziali al suo interno hanno superato i controlli dello stato. La quantità di tempo che il pianificatore del servizio può attendere è determinata dalle impostazioni di controllo dello stato del container. Per ulteriori informazioni, consulta Controllo dello stato.

Per i servizi che utilizzano un load balancer, considera quanto riportato di seguito:

  • Se un'attività non dispone di container essenziali con un controllo dell'integrità definito, il pianificatore del servizio attenderà che il controllo dell'integrità del gruppo di destinazione del load balancer restituisca uno stato integro prima di contarla nella percentuale minima di integrità totale.

  • Se un'attività dispone di un container essenziale con un controllo dell'integrità definito, il pianificatore del servizio attenderà che l'attività raggiunga uno stato integro e il controllo dell'integrità del gruppo di destinazione del load balancer restituisca uno stato integro prima di contare l'attività nella percentuale minima di integrità totale.

Il valore predefinito di un servizio di replica per minimumHealthyPercent è 100%. Il minimumHealthyPercent valore predefinito per un servizio che utilizza la pianificazione del DAEMON servizio è 0% per AWS CLI gli AWS SDK e le API e il 50% per. AWS Management Console

Il numero minimo di attività integre durante un'implementazione è uguale a desiredCount moltiplicato per minimumHealthyPercent/100, arrotondato per eccesso al numero intero più vicino.

Se un servizio sta utilizzando i tipi di implementazione blu/verde (CODE_DEPLOY) o EXTERNAL con processi in esecuzione che utilizzano il tipo di avvio EC2, il valore della percentuale minima di integrità viene impostato sul valore di default e utilizzato per definire il limite inferiore per il numero di processi nel servizio che rimangono nello stato RUNNING mentre le istanze di container sono in stato DRAINING. Se un servizio utilizza i tipi di implementazione blu/verde (CODE_DEPLOY) o EXTERNAL ed esegue processi che utilizzano il tipo di avvio Fargate, il valore della percentuale minima di integrità non viene utilizzato, anche se viene restituito nella descrizione del servizio.

Controller di implementazione

deploymentController

Tipo: oggetto

Campo obbligatorio: no

Il tipo di controller di distribuzione da utilizzare per il servizio. Se non viene specificato alcun controller di implementazione, viene utilizzato il controller ECS. Per ulteriori informazioni, consulta Servizi Amazon ECS.

type

▬Tipo: stringa

Valori validi: ECS | CODE_DEPLOY | EXTERNAL

Obbligatorio: sì

Il tipo di controller di distribuzione da utilizzare. Esistono tre tipi di controller di distribuzione:

ECS

Il tipo di distribuzione aggiornamento in sequenza (ECS) prevede la sostituzione della versione attualmente in esecuzione del container con quella più recente. Il numero di container che Amazon ECS aggiunge o rimuove dal servizio durante un aggiornamento in sequenza è controllato regolando il numero minimo e massimo di integrità consentite durante l'implementazione di un servizio, come specificato in deploymentConfiguration.

CODE_DEPLOY

Il tipo di distribuzione blue/green (CODE_DEPLOY) utilizza il modello di distribuzione blue/green powered by CodeDeploy, che consente di verificare una nuova implementazione di un servizio prima di inviargli il traffico di produzione.

EXTERNAL

Utilizza il tipo di implementazione esterna quando desideri usare qualsiasi controller di implementazione di terze parti per il controllo completo sul processo di implementazione per un servizio Amazon ECS.

Posizionamento dei processi

placementConstraints

Tipo: matrice di oggetti

Campo obbligatorio: no

Serie di oggetti vincolo di posizionamento da utilizzare per le attività del servizio. Puoi specificare un massimo di 10 vincoli per attività. Questo limite include i vincoli nella definizione dell'attività e quelli specificati in fase di runtime. Se utilizzi il tipo di avvio Fargate, i vincoli di posizionamento delle attività non sono supportati.

type

▬Tipo: stringa

Campo obbligatorio: no

Il tipo di vincolo. Utilizza distinctInstance per accertarti che ogni attività in un determinato gruppo sia in esecuzione su un'istanza di container diversa. Utilizza memberOf per limitare la selezione a un gruppo di candidati validi. Il valore distinctInstance non è supportato nelle definizioni di attività.

expression

▬Tipo: stringa

Campo obbligatorio: no

Un'espressione del linguaggio di query del cluster da applicare al vincolo. Non puoi specificare un'espressione se il tipo di vincolo è distinctInstance. Per ulteriori informazioni, consulta Crea espressioni per definire istanze di container per le attività di Amazon ECS.

placementStrategy

Tipo: matrice di oggetti

Campo obbligatorio: no

Gli oggetti strategia di posizionamento da utilizzare per le attività del servizio. Puoi specificare un massimo di quattro regole di strategia per ogni servizio.

type

▬Tipo: stringa

Valori validi: random | spread | binpack

Campo obbligatorio: no

Il tipo di strategia di posizionamento. La strategia di posizionamento random posiziona in modo casuale le attività sui candidati disponibili. La strategia di posizionamento spread distribuisce le attività in modo uniforme tra i candidati disponibili in base al parametro field. La strategia binpack posiziona le attività sui candidati disponibili che dispongono della quantità minima di risorsa specificata con il parametro field. Ad esempio, se adotti il binpacking della memoria, un'attività verrà posizionata sull'istanza con la quantità minima di memoria residua (ma ancora sufficiente a eseguire l'attività).

field

▬Tipo: stringa

Campo obbligatorio: no

Il campo a cui applicare la strategia di posizionamento. Per la strategia di posizionamento spread, i valori validi sono instanceId (o host, che ha lo stesso effetto) oppure qualsiasi attributo personalizzato o di piattaforma applicato a un'istanza di container, come attribute:ecs.availability-zone. Per la strategia di posizionamento binpack, i valori validi sono cpu e memory. Per la strategia di posizionamento random questo campo non viene utilizzato.

Tag

tags

Tipo: matrice di oggetti

Campo obbligatorio: no

I metadati applicati al servizio per aiutarti a catalogarli e organizzarli. Ogni tag è composto da una chiave e da un valore opzionale, entrambi personalizzabili. Quando un servizio viene eliminato, vengono eliminati anche i tag. Al servizio è possibile applicare un massimo di 50 tag. Per ulteriori informazioni, consulta Taggare le risorse Amazon ECS.

key

▬Tipo: stringa

Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 128 caratteri.

Campo obbligatorio: no

Una parte di una coppia chiave-valore che costituisce un tag. Una chiave è un'etichetta generale che funge da categoria per più valori di tag specifici.

value

▬Tipo: stringa

Limitazioni di lunghezza: lunghezza minima di 0. La lunghezza massima è 256 caratteri.

Campo obbligatorio: no

La parte facoltativa di una coppia chiave-valore che costituisce un tag. Un valore agisce come descrittore all'interno di una categoria di tag (chiave).

enableECSManagedTags

Tipo: Booleano

Valori validi: true | false

Campo obbligatorio: no

Specifica se usare i tag gestiti di Amazon ECS per i processi nel servizio. Se non viene specificato alcun valore, il valore predefinito è false. Per ulteriori informazioni, consulta Utilizza i tag per la fatturazione.

propagateTags

▬Tipo: stringa

Valori validi: TASK_DEFINITION | SERVICE

Campo obbligatorio: no

Specifica se copiare i tag dalla definizione di attività o dal servizio nelle attività del servizio. Se non viene specificato alcun valore, i tag non vengono copiati. I tag possono essere copiati solo nelle attività all'interno del servizio durante la creazione del servizio. Per aggiungere tag a un processo dopo la creazione di un servizio o di un processo, utilizza l'operazione API TagResource.

Configurazione della rete

networkConfiguration

Tipo: oggetto

Campo obbligatorio: no

La configurazione di rete per il servizio. Questo parametro è obbligatorio per le definizioni di attività che utilizzano la modalità di rete awsvpc per ricevere la propria interfaccia di rete elastica e non è supportato per altre modalità. Con il tipo di avvio Fargate, la modalità di rete awsvpc è obbligatoria. Per ulteriori informazioni sul networking per il tipo di lancio di Amazon EC2, consulta. Opzioni di task networking di Amazon ECS per il tipo di lancio EC2 Per ulteriori informazioni sulla rete per il tipo di lancio Fargate, vedere Fargate Task Networking.

awsvpcConfiguration

Tipo: oggetto

Campo obbligatorio: no

Un oggetto che rappresenta le sottoreti e i gruppi di sicurezza per un'attività o un servizio.

subnets

Tipo: matrice di stringhe

Campo obbligatorio: sì

Le sottoreti associate all'attività o al servizio. Esiste un limite di 16 sottoreti che possono essere specificate in base a awsvpcConfiguration.

securityGroups

Tipo: matrice di stringhe

Campo obbligatorio: no

I gruppi di sicurezza associati all'attività o al servizio. Se non specifichi un gruppo di sicurezza, viene utilizzato il gruppo di sicurezza predefinito dell'ambiente VPC. Esiste un limite di cinque gruppi di sicurezza che possono essere specificati in base a awsvpcConfiguration.

assignPublicIP

▬Tipo: stringa

Valori validi: ENABLED | DISABLED

Campo obbligatorio: no

Se l'interfaccia di rete elastica dell'attività riceve un indirizzo IP pubblico. Se non viene specificato alcun valore, viene utilizzato il valore predefinito DISABLED.

healthCheckGracePeriodSeconds

Tipo: integer

Campo obbligatorio: no

Il periodo di tempo, in secondi, durante il quale il pianificatore di servizi di Amazon ECS deve ignorare i controlli dell'integrità delle destinazioni Elastic Load Balancing non integre, i controlli dell'integrità del container e i controlli dell'integrità di Route 53 dopo che un processo entra nella stato RUNNING. Ciò è valido solo se il tuo servizio è configurato per utilizzare un load balancer. Se il servizio ha definito un load balancer e non si specifica un valore del periodo di tolleranza del controllo integrità, viene utilizzato il valore predefinito di 0.

Se le attività del servizio non si avviano subito e rispondono ai controlli dello stato, puoi specificare un periodo di grazia per il controllo dello stato di un massimo di 2,147,483,647 secondi, durante i quali il pianificatore del servizio ECS ignora lo stato di questi controlli. Questo periodo di grazia può evitare che il pianificatore del servizio ECS contrassegni le attività come non integre e le interrompa prima che abbiano il tempo di iniziare.

Se non utilizzi un Elastic Load Balancing, ti consigliamo di utilizzare startPeriod nei parametri di controllo dell'integrità di definizione del processo. Per ulteriori informazioni, consulta Determinare lo stato delle attività di Amazon ECS utilizzando i controlli dello stato dei container.

loadBalancers

Tipo: matrice di oggetti

Campo obbligatorio: no

Un oggetto che rappresenta il load balancer da utilizzare con il tuo servizio. Per i servizi che utilizzano un Application Load Balancer o un Network Load Balancer, esiste un limite di cinque gruppi di destinazione che puoi collegare a un servizio.

Dopo aver creato un servizio, la configurazione del load balancer non può essere modificata dalla AWS Management Console. Puoi utilizzare AWS Copilot AWS CLI o SDK per modificare la configurazione del bilanciamento del carico solo per il controller di distribuzione ECS mobile, non blu/verde o esterno. AWS CloudFormation AWS CodeDeploy Quando aggiungi, aggiorni o rimuovi una configurazione del load balancer, Amazon ECS avvia una nuova implementazione con la configurazione aggiornata di Elastic Load Balancing. Questo causa la registrazione e l'annullamento della registrazione dai load balancer. Si consiglia di verificarlo in un ambiente di test prima di aggiornare la configurazione di Elastic Load Balancing. Per informazioni su come modificare la configurazione, consulta il riferimento UpdateServiceall'API di Amazon Elastic Container Service.

Per gli Application Load Balancer e i Network Load Balancer, questo oggetto deve contenere l'ARN del gruppo di destinazione del load balancer, il nome del container (così come appare nella definizione di quest'ultimo) e la porta del container per accedere dal load balancer. Quando un'attività di questo servizio è posizionata su un'istanza di container, l'unione dell'istanza e della porta del container viene registrata come destinazione nel gruppo di destinazione specificato qui.

targetGroupArn

▬Tipo: stringa

Campo obbligatorio: no

Il nome della risorsa Amazon (ARN) completo del gruppo o dei gruppi di destinazione dell'Elastic Load Balancer associati a un servizio.

L'ARN del gruppo target viene specificato solo quando di utilizza un Application Load Balancer o un Network Load Balancer.

loadBalancerName

▬Tipo: stringa

Campo obbligatorio: no

Il nome del load balancer da associare al servizio.

Se utilizzi un Application Load Balancer o un Network Load Balancer, il parametro relativo al nome del load balancer deve essere omesso.

containerName

▬Tipo: stringa

Campo obbligatorio: no

Il nome del container (così come appare nella definizione di quest'ultimo) da associare al load balancer.

containerPort

Tipo: integer

Campo obbligatorio: no

La porta del container da associare al load balancer. Questa porta deve corrispondere a un containerPort nella definizione di attività utilizzata dalle attività nel servizio. Per le attività che utilizzano il tipo di avvio EC2, l'istanza di container deve consentire il traffico in ingresso sulla hostPort della mappatura delle porte.

role

▬Tipo: stringa

Campo obbligatorio: no

Il nome breve o l'ARN completo del ruolo IAM che consente ad Amazon ECS di effettuare chiamate al load balancer per tuo conto. Questo parametro è consentito solo se utilizzi un load balancer con un singolo gruppo di destinazione e se la definizione di attività non utilizza la modalità di rete awsvpc. Se specifichi il parametro role, devi anche specificare un oggetto load balancer con il parametro loadBalancers.

Se il ruolo specificato ha un percorso diverso da /, devi specificare l'ARN del ruolo completo (scelta consigliata) o anteporre il percorso al nome del ruolo come prefisso. Ad esempio, se un ruolo con il nome bar ha il percorso /foo/, devi specificare /foo/bar come nome del ruolo. Per ulteriori informazioni, consulta Nomi descrittivi e percorsi nella Guida per l'utente IAM.

Importante

Se il tuo account ha già creato il ruolo collegato al servizio Amazon ECS, tale ruolo viene utilizzato di default per il tuo servizio, a meno che tu non specifichi un ruolo qui. Il ruolo collegato al servizio è obbligatorio se la definizione di attività utilizza la modalità di rete awsvpc; in tal caso, non è necessario specificare un ruolo qui. Per ulteriori informazioni, consulta Uso di ruoli collegati ai servizi per Amazon ECS.

serviceConnectConfiguration

Tipo: oggetto

Campo obbligatorio: no

La configurazione di questo servizio per rilevare e connettersi ai servizi, ed essere rilevati e connessi da altri servizi all'interno di uno spazio nomi.

Per ulteriori informazioni, consulta Usa Service Connect per connettere i servizi Amazon ECS con nomi brevi.

enabled

Tipo: Booleano

Campo obbligatorio: sì

Specifica se utilizzare Service Connect con questo servizio.

namespace

▬Tipo: stringa

Campo obbligatorio: no

Il nome breve o il nome completo Amazon Resource Name (ARN) dello spazio dei AWS Cloud Map nomi da utilizzare con Service Connect. Lo spazio dei nomi deve trovarsi nella stessa Regione AWS del cluster e del servizio Amazon ECS. Il tipo di spazio dei nomi non influisce su Service Connect. Per ulteriori informazioni AWS Cloud Map, consulta Working with Services nella Developer Guide.AWS Cloud Map

services

Tipo: matrice di oggetti

Campo obbligatorio: no

Un array degli oggetti del servizio Service Connect. Questi sono nomi e alias (detti anche endpoint) utilizzati da altri servizi Amazon ECS per connettersi a questo servizio.

Questo campo non è obbligatorio per un servizio Amazon ECS "client" che un membro di uno spazio dei nomi utilizza solo per connettersi ad altri servizi nello spazio dei nomi. Un esempio può essere un'applicazione front-end che accetta richieste in arrivo da un sistema di bilanciamento del carico collegato al servizio o con altri mezzi.

Un oggetto seleziona una porta dalla definizione dell'attività, assegna un nome al AWS Cloud Map servizio e una serie di alias (noti anche come endpoint) e porte alle applicazioni client per fare riferimento a questo servizio.

portName

Tipo: stringa

Campo obbligatorio: sì

portName deve corrispondere al name di una delle portMappings da tutti i container nella definizione di attività di questo servizio Amazon ECS.

discoveryName

▬Tipo: stringa

Campo obbligatorio: no

discoveryNameÈ il nome del nuovo AWS Cloud Map servizio creato da Amazon ECS per questo servizio Amazon ECS. Deve essere univoco nello spazio dei nomi AWS Cloud Map .

Se questo campo non è specificato, viene utilizzato portName.

clientAliases

Tipo: matrice di oggetti

Campo obbligatorio: no

L'elenco degli alias client per questo servizio Service Connect. Si usano per assegnare nomi che possono essere utilizzati da applicazioni client. Il numero massimo di alias client che si può avere in questo elenco è 1.

Ogni alias ("endpoint") è un nome DNS completo e un numero di porta che altre attività Amazon ECS ("client") possono utilizzare per connettersi a questo servizio.

Ogni combinazione di nome e porta deve essere univoca nello spazio dei nomi.

Questi nomi sono configurati all'interno di ogni attività del servizio client, non in AWS Cloud Map. Le richieste DNS per risolvere questi nomi non lasciano l'attività e non vengono conteggiate ai fini della quota di richieste DNS al secondo per interfaccia di rete elastica.

port

Tipo: integer

Campo obbligatorio: sì

Il numero della porta di ascolto per il proxy Service Connect. Questa porta è disponibile all'interno di tutte le attività nello stesso spazio dei nomi.

Per evitare di modificare le applicazioni nei servizi client Amazon ECS, imposta la stessa porta utilizzata dall'applicazione client per impostazione predefinita.

dnsName

▬Tipo: stringa

Campo obbligatorio: no

Il dnsName è il nome utilizzato nelle applicazioni di attività client per connettersi a questo servizio. Il nome deve essere un'etichetta DNS valida.

Se questo campo non viene specificato, il valore predefinito sarà discoveryName.namespace. Se il valore discoveryName non viene specificato, viene utilizzato il valore portName della definizione dell'attività.

Per evitare di modificare le applicazioni nei servizi client Amazon ECS, imposta lo stesso nome utilizzato dall'applicazione client per impostazione predefinita. Ad esempio, alcuni nomi comuni sono database, db o il nome minuscolo di un database, ad esempio mysql o redis.

ingressPortOverride

Tipo: integer

Campo obbligatorio: no

(Facoltativo) Il numero della porta di ascolto per il proxy Service Connect.

Utilizza il valore di questo campo per ignorare il proxy per il traffico sul numero di porta specificato nella portMapping denominata nella definizione di attività di questa applicazione, quindi utilizzalo nei tuoi gruppi di sicurezza Amazon VPC per consentire il traffico nel proxy per questo servizio Amazon ECS.

In modalità awsvpc, il valore predefinito è il numero di porta del container specificato nella portMapping nella definizione di attività di questa applicazione. In modalità bridge, il valore predefinito è la porta temporanea dinamica del proxy Service Connect.

logConfiguration

Tipo: oggetto LogConfiguration

Campo obbligatorio: no

Questo definisce dove vengono pubblicati i log del proxy di Service Connect. Usa i log per il debug durante eventi imprevisti. Questa configurazione imposta il parametro logConfiguration nel container del proxy Service Connect in ogni attività di questo servizio Amazon ECS. Il container del proxy non è specificato nella definizione di attività.

Ti consigliamo di utilizzare la stessa configurazione di log dei container delle applicazioni della definizione di attività per questo servizio Amazon ECS. Infatti FireLens, questa è la configurazione del registro del contenitore dell'applicazione. Non è il contenitore del FireLens log router che utilizza l'immagine del fluentd contenitore fluent-bit or.

serviceRegistries

Tipo: matrice di oggetti

Campo obbligatorio: no

I dettagli della configurazione dell'individuazione per il tuo servizio. Per ulteriori informazioni, consulta Usa Service Discovery per connettere i servizi Amazon ECS con i nomi DNS.

registryArn

▬Tipo: stringa

Campo obbligatorio: no

Il nome della risorsa Amazon (ARN) del registro del servizio. Il registro dei servizi attualmente supportato è AWS Cloud Map. Per ulteriori informazioni, consulta Utilizzo dei servizi nella Guida per gli sviluppatori di AWS Cloud Map .

port

Tipo: integer

Campo obbligatorio: no

Il valore della porta utilizzato se l'individuazione dei servizi ha specificato un record SRV. Questo campo è obbligatorio se vengono utilizzati entrambi la modalità di rete awsvpc e i record SRV.

containerName

▬Tipo: stringa

Campo obbligatorio: no

Il valore che indica il nome del container da utilizzare per l'individuazione del servizio. Questo valore è specificato nella definizione dell'attività. Se la definizione di attività specificata dall'attività del servizio utilizza le modalità di rete bridge o host, devi specificare una combinazione di containerName e containerPort nella definizione di attività. Se la definizione di attività specificata dall'attività del servizio utilizza la modalità di rete awsvpc e utilizzi un record tipo DNS SRV, devi specificare una combinazione di containerName e containerPort o un valore port, ma non entrambi.

containerPort

Tipo: integer

Campo obbligatorio: no

Il valore della porta da utilizzare per l'individuazione del servizio. Questo valore è specificato nella definizione dell'attività. Se la definizione di attività specificata dall'attività del servizio utilizza le modalità di rete bridge o host, devi specificare una combinazione di containerName e containerPort nella definizione di attività. Se la definizione di attività specificata dall'attività del servizio utilizza la modalità di rete awsvpc e utilizzi un record tipo DNS SRV, devi specificare una combinazione di containerName e containerPort o un valore port, ma non entrambi.

Token client

clientToken

▬Tipo: stringa

Campo obbligatorio: no

L'identificatore univoco (con distinzione tra maiuscole e minuscole) che fornisci per assicurare l'idempotenza della richiesta. Può contenere fino a 32 caratteri ASCII.

Configurazioni dei volumi

volumeConfigurations

Tipo: oggetto

Campo obbligatorio: no

La configurazione che verrà utilizzata per creare volumi per le attività gestite dal servizio. Viene creato un volume per ogni attività del servizio. Solo i volumi contrassegnati come configuredAtLaunch nella definizione dell'attività possono essere configurati utilizzando questo oggetto. Questo oggetto è necessario per collegare i volumi di dati di Amazon EBS alle attività gestite da un servizio. Per ulteriori informazioni, consulta Volumi Amazon EBS.

name

Tipo: stringa

Campo obbligatorio: sì

Il nome di un volume configurato durante la creazione o l'aggiornamento di un servizio. Sono consentite fino a 255 lettere (maiuscole e minuscole), numeri, caratteri di sottolineatura (_) e trattini (). - Questo valore deve corrispondere al nome del volume specificato nella definizione dell'attività.

managedEBSVolume

Tipo: oggetto

Campo obbligatorio: no

La configurazione del volume per i volumi Amazon EBS collegati alle attività gestite da un servizio quando un servizio viene creato o aggiornato.

encrypted

Tipo: Booleano

Campo obbligatorio: no

Valori validi: true|false

Speciifica se il volume Amazon EBS collegato alle attività gestite da un servizio verrà crittografato. Se hai attivato la crittografia Amazon EBS per impostazione predefinita per il tuo account, questa impostazione verrà sovrascritta e il volume verrà crittografato. Per ulteriori informazioni sulla crittografia EBS per impostazione predefinita, consulta Encryption by default nella Amazon EC2 User Guide.

kmsKeyId

▬Tipo: stringa

Campo obbligatorio: no

L'identificatore della chiave AWS Key Management Service (AWS KMS) da utilizzare per la crittografia Amazon EBS. Se questo parametro non è specificato, viene utilizzato il tuo AWS KMS key per Amazon EBS. Se KmsKeyId viene specificata, lo stato crittografato deve essere true.

Puoi specificare la chiave KMS utilizzando uno dei seguenti metodi:

  • ID chiave: ad esempio,1234abcd-12ab-34cd-56ef-1234567890ab.

  • Alias chiave: ad esempio,alias/ExampleAlias.

  • ARN chiave: ad esempio,. arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab

  • Alias ARN: ad esempio,. arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias

Importante

AWS autentica la chiave KMS in modo asincrono. Pertanto, se si specifica un ID, un alias o un ARN non valido, l'azione può sembrare riuscita, ma alla fine non riesce. Per ulteriori informazioni, consulta Risoluzione dei problemi relativi ai volumi allegati di Amazon EBS.

volumeType

▬Tipo: stringa

Campo obbligatorio: no

Valori validi: gp2 | gp3 | io1 | | io2 | sc1 | st1 standard

Il tipo di volume EBS. Per ulteriori informazioni sui tipi di volume, consulta i tipi di volume di Amazon EBS nella Guida per l'utente di Amazon EC2. Il tipo di volume di default è gp3.

Nota

Il tipo di standard volume non è supportato per i volumi Amazon EBS configurati per il collegamento alle attività di Fargate.

sizeInGiB

Tipo: integer

Campo obbligatorio: no

Intervallo valido: numeri interi compresi tra 1 e 16.384

La dimensione del volume EBS in gibibyte (GiB). Se non fornisci un ID snapshot per configurare un volume per gli allegati, devi fornire un valore di dimensione. Se si configura un volume per l'allegato utilizzando un'istantanea, il valore predefinito è la dimensione dell'istantanea. È quindi possibile specificare una dimensione maggiore o uguale alla dimensione dell'istantanea.

Per gp2 i tipi di gp3 volume, l'intervallo valido è 1-16.384.

Per i tipi io1 di io2 volume, l'intervallo valido è 4-16.384.

Per i tipi st1 di sc1 volume, l'intervallo valido è 125-16.384.

Per il tipo di standard volume, l'intervallo valido è 1-1.024.

snapshotId

▬Tipo: stringa

Campo obbligatorio: no

L'ID dell'istantanea di un volume EBS esistente utilizzato per creare un nuovo volume collegato all'attività ECS.

iops

Tipo: integer

Campo obbligatorio: no

Il numero di operazioni I/O al secondo (IOPS). Per volumi gp3, io1 e io2, questo rappresenta il numero di IOPS che sono assegnate al volume. Per gp2 i volumi, questo valore rappresenta le prestazioni di base del volume e la velocità con cui il volume accumula crediti di I/O per il bursting. Questo parametro è obbligatorio per i volumi io1 e io2. Questo parametro non è supportato pergp2,st1, sc1 o volumi. standard

Per gp3 i volumi, l'intervallo di valori valido è compreso tra 3.000 e 16.000.

Per io1 i volumi, l'intervallo di valori valido è compreso tra 100 e 64.000.

Per io2 i volumi, l'intervallo di valori valido è compreso tra 100 e 64.000.

throughput

Tipo: integer

Campo obbligatorio: no

La velocità effettiva necessaria per il provisioning dei volumi collegati alle attività gestite da un servizio.

Importante

Questo parametro è supportato solo per i gp3 volumi.

roleArn

Tipo: stringa

Campo obbligatorio: sì

Il ruolo Amazon Resource ARN (ARN) dell'infrastruttura AWS Identity and Access Management (IAM) che fornisce le autorizzazioni Amazon ECS per gestire le risorse Amazon EBS per le tue attività. Per ulteriori informazioni, consulta Ruolo IAM dell'infrastruttura Amazon ECS.

tagSpecifications

Tipo: oggetto

Campo obbligatorio: no

La specifica per i tag da applicare ai volumi Amazon EBS gestiti dal servizio.

resourceType

Tipo: stringa

Campo obbligatorio: sì

Valori validi: volume

Il tipo di risorsa cui applicare tag al momento della creazione.

tags

Tipo: matrice di oggetti

Campo obbligatorio: no

I metadati che applichi ai volumi per aiutarti a classificarli e organizzarli. Ogni tag è composto da una chiave e da un valore opzionale, entrambi definiti dall'utente. AmazonECSCreatede AmazonECSManaged sono tag riservati aggiunti da Amazon ECS per tuo conto, quindi puoi specificare un massimo di 48 tag personalizzati. Quando un volume viene eliminato, vengono eliminati anche i tag. Per ulteriori informazioni, consulta Taggare le risorse Amazon ECS.

key

▬Tipo: stringa

Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 128 caratteri.

Campo obbligatorio: no

Una parte di una coppia chiave-valore che costituisce un tag. Una chiave è un'etichetta generale che funge da categoria per più valori di tag specifici.

value

▬Tipo: stringa

Limitazioni di lunghezza: lunghezza minima di 0. La lunghezza massima è 256 caratteri.

Campo obbligatorio: no

La parte opzionale di una coppia chiave-valore che costituisce un tag. Un valore agisce come descrittore all'interno di una categoria di tag (chiave).

propagateTags

▬Tipo: stringa

Valori validi: TASK_DEFINITION | SERVICE | NONE

Campo obbligatorio: no

Speciifica se copiare i tag dalla definizione dell'attività o dal servizio in un volume. Se NONE è specificato o non viene specificato alcun valore, i tag non vengono copiati.

fileSystemType

▬Tipo: stringa

Campo obbligatorio: no

Valori validi: xfs|ext3|ext4

Il tipo di file system su un volume. Il tipo di file system del volume determina il modo in cui i dati vengono archiviati e recuperati nel volume. Per i volumi creati da un'istantanea, è necessario specificare lo stesso tipo di file system utilizzato dal volume al momento della creazione dell'istantanea. Se il tipo di file system non corrisponde, l'operazione non verrà avviata. L'impostazione predefinita per i volumi collegati alle attività di Linux è. XFS

Modello di definizione del servizio

Di seguito viene illustrata la rappresentazione JSON di una definizione di servizio Amazon ECS.

Tipo di lancio di Amazon EC2

{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "EC2", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "role": "", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 0, "minimumHealthyPercent": 0, "alarms": { "alarmNames": [ "" ], "enable": true, "rollback": true } }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION", "enableExecuteCommand": true, "serviceConnectConfiguration": { "enabled": true, "namespace": "", "services": [ { "portName": "", "discoveryName": "", "clientAliases": [ { "port": 0, "dnsName": "" } ], "ingressPortOverride": 0 } ], "logConfiguration": { "logDriver": "journald", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] } }, "volumeConfigurations": [ { "name": "", "managedEBSVolume": { "encrypted": true, "kmsKeyId": "", "volumeType": "", "sizeInGiB": 0, "snapshotId": "", "iops": 0, "throughput": 0, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "", "value": "" } ], "propagateTags": "NONE" } ], "roleArn": "", "filesystemType": "" } } ] }

Tipo di avvio di Fargate

{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "FARGATE", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "platformFamily": "", "role": "", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 0, "minimumHealthyPercent": 0, "alarms": { "alarmNames": [ "" ], "enable": true, "rollback": true } }, "placementStrategy": [ { "type": "binpack", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION", "enableExecuteCommand": true, "serviceConnectConfiguration": { "enabled": true, "namespace": "", "services": [ { "portName": "", "discoveryName": "", "clientAliases": [ { "port": 0, "dnsName": "" } ], "ingressPortOverride": 0 } ], "logConfiguration": { "logDriver": "journald", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] } }, "volumeConfigurations": [ { "name": "", "managedEBSVolume": { "encrypted": true, "kmsKeyId": "", "volumeType": "", "sizeInGiB": 0, "snapshotId": "", "iops": 0, "throughput": 0, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "", "value": "" } ], "propagateTags": "NONE" } ], "roleArn": "", "filesystemType": "" } } ] }

È possibile creare questo modello di definizione del servizio utilizzando il comando AWS CLI seguente.

aws ecs create-service --generate-cli-skeleton