

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

# Crea il tuo primo servizio Express Mode utilizzando il AWS CLI
<a name="express-service-getting-started"></a>

Questo tutorial mostra come creare un'applicazione di servizio Express Mode utilizzando. AWS AWS CLI Implementerai una semplice applicazione web che dimostra le funzionalità principali del servizio Express Mode.

## Prerequisiti
<a name="express-service-prerequisites"></a>

Prima di iniziare, assicurati di disporre dei seguenti elementi:
+ Un AWS account con le autorizzazioni appropriate
+ L' AWS AWS CLI installato e configurato
+ Un'immagine del contenitore archiviata in Amazon ECR o in un registro privato

## Fase 1: Creare ruoli IAM
<a name="express-service-create-execution-role"></a>

Un servizio Express Mode richiede due ruoli IAM. Il Task Execution Role consente ad Amazon ECS di estrarre immagini di container e scrivere log per tuo conto. Crea un ruolo di esecuzione delle attività e un ruolo di infrastruttura con le seguenti politiche:

```
#Create the roles with ECS trust policies
aws iam create-role --role-name ecsTaskExecutionRole \
    --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "ecs-tasks.amazonaws.com"
                },
                "Action": "sts:AssumeRole",
            }
        ]
    }'

aws iam create-role --role-name ecsInfrastructureRoleForExpressServices \ 
    --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "AllowAccessInfrastructureForECSExpressServices",
                "Effect": "Allow",
                "Principal": {
                    "Service": "ecs.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }'
```

```
#Attach the AWS managed policies
aws iam attach-role-policy --role-name ecsTaskExecutionRole \
    --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
aws iam attach-role-policy --role-name ecsInfrastructureRoleForExpressServices \
    --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRoleforExpressGatewayServices
```

Per ulteriori informazioni, consulta [Ruolo IAM di esecuzione di attività Amazon ECS](task_execution_IAM_role.md).

## Fase 2: Creare la prima applicazione di servizio Express Mode
<a name="express-service-create-basic"></a>

Creare un'applicazione di servizio Express Mode con i parametri minimi richiesti:

```
aws ecs create-express-gateway-service \
    --primary-container "image"="public.ecr.aws/nginx/nginx:latest" \
    --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \
    --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \
    --monitor-resources
```

Questo comando crea un'applicazione di servizio Express Mode con:
+ Un nome di servizio univoco generato dal nome dell'immagine
+ 1 vCPU e 2 GB di memoria
+ Porta 80 per il traffico HTTPS
+ Scalabilità automatica basata sull'utilizzo della CPU
+ Un Application Load Balancer connesso a Internet nel VPC predefinito e nelle sottoreti pubbliche
+ Un URL univoco per questo servizio nel formato `servicename.ecs.region.on.aws`

Il comando monitora continuamente le risorse man mano che vengono fornite e ne restituisce lo stato. Una volta completata la distribuzione del servizio, l'URL dell'applicazione è pronto per ricevere traffico. Quando si interrompe il monitoraggio, vengono restituite le informazioni sul servizio creato, inclusi l'ARN e l'URL del servizio:

```
{
    "service": {
        "cluster": "arn:aws:ecs:region:123456789012:cluster/default",
        "serviceName": "nginx-1234",
        "serviceArn": "arn:aws:ecs:region:123456789012:service/default/nginx-1234",
        "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices",
        "status": {
            "statusCode": "ACTIVE"
        },
        "createdAt": "UNIXTIMESTAMP"
    }
}
```

## Fase 3: Creare un'applicazione di servizio Express Mode con impostazioni personalizzate
<a name="express-service-create-custom"></a>

È possibile personalizzare l'applicazione di servizio Express Mode specificando parametri aggiuntivi:

```
aws ecs create-express-gateway-service \
    --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \
    --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \
    --primary-container '{"image":"123456789012.dkr.ecr.region.amazonaws.com/my-app:latest","containerPort":8080,"environment":[{"name":"ENV","value":"production"},{"name":"DEBUG","value":"false"}]}' \
    --service-name "my-web-app" \
    --cpu 2 \
    --memory 4 \
    --health-check-path "/health" \
    --scaling-target '{"minTaskCount":3,"maxTaskCount":100}' \
    --monitor-resources
```

Questo crea un'applicazione con:
+ Un nome personalizzato "my-web-app»
+ 2 vCPU e 4 GB di memoria
+ Porta 8080 per il traffico delle applicazioni
+ Endpoint personalizzato per il controllo dello stato
+ Variabili di ambiente
+ Minimo 3 attività, massimo 100 attività per la scalabilità automatica

## Fase 4: Monitora la distribuzione
<a name="express-service-monitor-deployment"></a>

Il `--monitor-resources` flag funziona su qualsiasi chiamata di creazione, aggiornamento o eliminazione ai servizi in modalità Express. Inoltre, è possibile monitorare le risorse di un servizio in qualsiasi momento, indipendentemente da un'azione di mutazione. I tempi di implementazione possono variare a seconda delle risorse da fornire. Una volta modificato lo stato`ACTIVE`, l'applicazione è pronta a ricevere traffico.

```
aws ecs monitor-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88
```

È inoltre possibile trovare la configurazione e lo stato correnti dell'applicazione di servizio Express Mode:

```
aws ecs describe-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88
```

## Fase 5: Accedere all'applicazione
<a name="express-service-access-application"></a>

Accedi all'applicazione del servizio Express Mode utilizzando l'URL fornito quando diventa attiva. Il formato dell'URL è:

```
https://<service-name>.ecs.<region>.on.aws/
```

Esempio:

```
https://app-23d97h88.ecs.us-west-2.on.aws/
```

L'applicazione è ora in esecuzione con:
+  SSL/TLS Terminazione automatica
+ Bilanciamento del carico su più zone di disponibilità
+ Scalabilità automatica basata sull'utilizzo della CPU
+ CloudWatch registrazione e monitoraggio
+ 5XX Rollback Alarms e Canary Deployments per aggiornamenti futuri 