

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

# Implementazione di REST API in Gateway API
<a name="how-to-deploy-api"></a>

 Dopo aver creato l'API, è necessario distribuirla per renderla chiamabile dagli utenti. 

Per distribuire un'API, crea una distribuzione API e associala a una fase. Una fase è un riferimento logico a uno stato del ciclo di vita dell'API (ad esempio, `dev`, `prod`, `beta`, `v2`). Le fasi API sono identificate dall'ID API e dal nome della fase. Sono incluse nell'URL utilizzato per richiamare l'API. Ogni fase è un riferimento con nome a una distribuzione dell'API e viene resa disponibile per le applicazioni client da chiamare. 

**Importante**  
Ogni volta che si aggiorna un'API, è necessario distribuire nuovamente l'API in una fase esistente o in una nuova fase. L'aggiornamento di un'API include la modifica di instradamenti, metodi, integrazioni, sistemi di autorizzazione, policy delle risorse e qualsiasi altra cosa diversa dalle impostazioni di fase. 

Con l'evoluzione dell'API, puoi continuare a distribuirla in fasi diverse come versioni differenti. Puoi inoltre distribuire gli aggiornamenti API come una [distribuzione di una release Canary](canary-release.md). Ciò consente ai client API di accedere, sulla stessa fase, alla versione di produzione tramite la release e alla versione aggiornata tramite la release Canary. 

Per chiamare un'API distribuita, il client invia una richiesta all'URL di un'API. L'URL è determinato dal protocollo (HTTP(S) o (WSS)), nome host, nome fase e (per le API REST) dal percorso delle risorse di un'API. Il nome host e il nome della fase determinano l'URL di base dell'API. 

Se, ad esempio, si utilizza il nome di dominio predefinito dell'API, il formato dell'URL di base di un'API REST (ad esempio) in una fase specifica (`{stageName}`) è il seguente:

```
https://{restapi-id}.execute-api.{region}.amazonaws.com/{stageName}
```

 Per rendere più intuitivo l'URL di base predefinito dell'API, puoi creare un nome di dominio personalizzato (ad esempio, `api.example.com`) per sostituire il nome host predefinito dell'API. Per supportare più API con il nome di dominio personalizzato, è necessario mappare una fase API a un percorso di base. 

Con il nome di dominio personalizzato `{api.example.com}` e la fase API mappata al percorso di base (`{basePath}`) nel nome di dominio personalizzato, l'URL di base di un'API REST diventa: 

```
https://{api.example.com}/{basePath}
```

 Per ogni fase puoi ottimizzare le prestazioni dell'API impostando i limiti di throttling predefiniti delle richieste a livello di account e abilitando il caching dell'API. Puoi inoltre abilitare la registrazione delle chiamate API in CloudTrail o CloudWatch e selezionare un certificato client per permettere al back-end di autenticare le richieste API. Inoltre, puoi ignorare le impostazioni a livello di fase per i singoli metodi e definire le variabili di fase per il passaggio di contesti di ambiente specifici della fase all'integrazione API al runtime. 

Le fasi permettono un efficace controllo delle versioni dell'API. Ad esempio, puoi distribuire un'API in una fase `test` e una fase `prod` e utilizzare la fase `test` come build di test e la fase `prod` come build stabile. Dopo che gli aggiornamenti hanno superato il test, puoi promuovere la fase `test` alla fase `prod`. La promozione può essere eseguita implementando nuovamente l'API nella fase `prod` o aggiornando il valore di una variabile di fase dal nome `test` al nome `prod`.

 In questa sezione viene illustrato come distribuire un'API utilizzando la [console API Gateway](https://console.aws.amazon.com/apigateway) o chiamando l'[API REST di API Gateway](https://docs.aws.amazon.com/apigateway/latest/api/). Per utilizzare altri strumenti, consulta la documentazione della [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/apigateway/) o di un [SDK AWS](https://aws.amazon.com/developer/tools/#sdk). 

**Topics**
+ [Creazione di un'implementazione per una REST API in Gateway API](set-up-deployments.md)
+ [Configurazione di una fase per una REST API in Gateway API](set-up-stages.md)
+ [Configurare la distribuzione di una release Canary di API Gateway](canary-release.md)
+ [Aggiornamenti a REST APIs che richiedono una ridistribuzione](updating-api.md)

# Creazione di un'implementazione per una REST API in Gateway API
<a name="set-up-deployments"></a>

 In API Gateway una distribuzione di API REST è rappresentata da una risorsa [Distribuzione](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html). È simile a un eseguibile di un'API rappresentato da una risorsa [RestApi](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html). 

Per consentire al client di chiamare l'API, è necessario creare una distribuzione e associarvi una fase. Una fase è rappresentata da una risorsa [Fase](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html). Rappresenta una snapshot dell'API, inclusi metodi, integrazioni, modelli, modelli di mappatura e autorizzazioni Lambda (in precedenza note come autorizzazioni ad hoc). Quando si aggiorna l'API, è possibile ridistribuirla associando una nuova fase alla distribuzione esistente. La procedura di creazione di una fase è illustrata in [Configurazione di una fase per una REST API in Gateway API](set-up-stages.md).

**Topics**
+ [Crea distribuzione](#create-deployment)
+ [Fasi successive per l'implementazione di un'API](#apigateway-deployment-next-steps)

## Crea distribuzione
<a name="create-deployment"></a>

Le procedure seguenti mostrano come creare l'implementazione di una REST API.

------
#### [ Console di gestione AWS ]

 Per poter distribuire un'API REST per la prima volta, è necessario crearla. Per ulteriori informazioni, consulta [Sviluppa REST APIs in API Gateway](rest-api-develop.md). 

 La console API Gateway consente di distribuire un'API creando una distribuzione e associandola a una fase nuova o esistente. 

1. Accedere alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1.  Nel riquadro di navigazione **APIs (API)** scegliere l'API che si desidera distribuire. 

1. Nel riquadro **Resources (Risorse)** scegliere **Deploy API (Distribuisci API)**.

1. In **Fase**, procedi come segue:

   1. Per creare una nuova fase, seleziona **Nuova fase**, quindi immetti un nome in **Nome fase**. Facoltativamente, puoi immettere una descrizione dell'implementazione in **Descrizione distribuzione**.

   1. Per scegliere una fase esistente, seleziona il nome della fase nel menu a discesa. Se lo desideri, puoi specificare una descrizione della nuova implementazione in **Descrizione distribuzione**.

   1. Per creare un'implementazione non associata a una fase, seleziona **Nessuna fase**. Successivamente, puoi associare questa implementazione a una fase.

1. Seleziona **Deploy (Implementa)**.

------
#### [ AWS CLI ]

Quando si crea una distribuzione, viene creata un'istanza della risorsa [Distribuzione](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html).

Il comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) seguente crea una nuova implementazione:

```
 aws apigateway create-deployment --rest-api-id rest-api-id
```

Non è possibile chiamare l’API fino a quando non si associa questa implementazione a una fase. Con una fase esistente, è possibile eseguire questa operazione aggiornando la proprietà [deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) della fase con l’ID di implementazione appena creato. Il comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) seguente aggiorna la fase con una nuova implementazione. Nella console, questa azione è chiamata **Implementazione attiva**.

```
 aws apigateway update-stage \
    --rest-api-id rest-api-id \ 
    --stage-name 'stage-name' \ 
    --patch-operations op='replace',path='/deploymentId',value='deployment-id'
```

Quando si crea l’implementazione, è possibile contemporaneamente associarla a una nuova fase. Il comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) seguente crea una nuova implementazione e la associa a una nuova fase chiamata `beta`:

```
 aws apigateway create-deployment \
    --rest-api-id rest-api-id \
    --stage-name beta
```

------

Per implementare nuovamente un'API, esegui la stessa procedura. È possibile riutilizzare la stessa fase.

## Fasi successive per l'implementazione di un'API
<a name="apigateway-deployment-next-steps"></a>

Di seguito sono riportati i passaggi successivi per l'implementazione dell'API.

Modifica delle impostazioni di fase  
Dopo che un'API è stata distribuita, puoi modificare le impostazioni delle fasi per abilitare o disabilitare la cache, la registrazione o il throttling delle richieste dell'API. Puoi inoltre scegliere un certificato client per consentire al back-end di autenticare API Gateway e impostare le variabili delle fasi per passare il contesto della distribuzione all'integrazione dell'API al runtime. Per ulteriori informazioni, consulta [Modifica delle impostazioni di fase](set-up-stages.md#how-to-stage-settings)  
Dopo avere modificato le impostazioni della fase, per renderle effettive sarà necessario eseguire di nuovo la ridistribuzione dell'API.  
 Se le impostazioni aggiornate, come l'abilitazione della registrazione, richiedono un nuovo ruolo IAM, puoi aggiungere il ruolo IAM richiesto senza ridistribuire l'API. Tuttavia potrebbero essere necessari alcuni minuti prima che il nuovo ruolo IAM diventi effettivo. Fino ad allora, le tracce delle chiamate API non vengono registrate, anche se hai abilitato l'opzione di registrazione. 

Scelta di diverse combinazioni di fase-implementazione  
 Dal momento che una distribuzione rappresenta una snapshot dell'API e una fase definisce un percorso in una snapshot, puoi scegliere combinazioni diverse di distribuzione-fase per controllare il modo in cui gli utenti effettuano chiamate nelle diverse versioni dell'API. Ciò risulta utile se ad esempio desideri eseguire il rollback a uno stato precedente della distribuzione dell'API o unire una branca privata dell'API in quella pubblica.   
 La procedura seguente illustra come eseguire questa operazione tramite **Stage Editor (Editor fasi)** nella console API Gateway. Si presume che un'API sia stata distribuita più di una volta.   

1. Se non sei già nel riquadro **Fasi**, nel pannello di navigazione principale, scegli **Fasi**.

1. Seleziona la fase da aggiornare.

1. Nella scheda **Cronologia delle distribuzioni** seleziona l'implementazione da utilizzare per la fase. 

1. Scegli **Cambia implementazione attiva**.

1. Conferma di voler cambiare l'implementazione attiva e scegli **Cambia implementazione attiva** nella finestra di dialogo **Rendi attiva l'implementazione**.

Passare i dati specifici dell'implementazione all'API.  
 Per una distribuzione, puoi impostare o modificare le variabili delle fasi per passare i dati specifici della distribuzione all'integrazione dell'API in fase di runtime. Puoi eseguire questa operazione nella scheda **Stage Variables (Variabili di fase)** in **Stage Editor (Editor fasi)**. Per ulteriori informazioni, consulta le istruzioni in [Utilizzo delle variabili di fase per una REST API in Gateway API](stage-variables.md).

# Configurazione di una fase per una REST API in Gateway API
<a name="set-up-stages"></a>

Una fase è un riferimento con nome a un'implementazione, corrispondente a uno snapshot dell'API. Utilizzare una [Stage (Fase)](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) per gestire e ottimizzare una specifica distribuzione. Ad esempio, puoi configurare le impostazioni di fase per abilitare la memorizzazione nella cache, personalizzare il throttling della richiesta, configurare la registrazione, definire le variabili di fase o collegare una release Canary a scopi di test. La sezione seguente illustra come creare e configurare la fase.

## Creazione di una nuova fase
<a name="how-to-create-stage-console"></a>

 Dopo la distribuzione iniziale, puoi aggiungere altre fasi e associarle alle distribuzioni esistenti. Puoi usare la console API Gateway per creare una nuova fase oppure puoi scegliere una fase esistente durante la distribuzione di un'API. In generale, puoi aggiungere una nuova fase a una distribuzione API prima di ridistribuirla. Per creare una nuova fase mediante la console Gateway API procedi come riportato di seguito: 

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Scegliere una REST API.

1. Nel riquadro di navigazione principale scegli **Fasi** sotto un'API.

1. Dal riquadro di navigazione **Fasi** scegli **Crea fase**.

1.  Per **Nome fase** immetti un nome, ad esempio **prod**. 
**Nota**  
I nomi di fasi possono contenere solo caratteri alfanumerici, trattini e caratteri di sottolineatura. La lunghezza massima è 128 caratteri.

1.  (Facoltativo). In **Descrizione** inserisci una breve descrizione.

1. In **Implementazione** seleziona la data e l'ora dell'implementazione API esistente che intendi associare a questa fase.

1. In **Impostazioni aggiuntive** puoi specificare le impostazioni aggiuntive per la fase.

1. Scegli **Crea fase**.

## Modifica delle impostazioni di fase
<a name="how-to-stage-settings"></a>

Dopo una distribuzione riuscita di un'API, la fase viene popolata di impostazioni predefinite. Per modificare le impostazioni di una fase, incluso caching e registrazione delle API, puoi utilizzare la console o l'API REST di API Gateway. Se è stato modificato l’endpoint predefinito della REST API, quando si aggiorna una fase, la modifica viene propagata a tutte le fasi dell’API. La procedura seguente illustra come effettuare questa operazione tramite l'**editor della fase** della console Gateway API.

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Scegliere una REST API.

1. Nel riquadro di navigazione principale scegli **Fasi** sotto un'API.

1. Nel riquadro **Stages (Fasi)**, selezionare il nome della fase.

1. Nella sezione **Dettagli fase** scegli **Modifica**.

1. (Facoltativo) In **Descrizione fase** modifica la descrizione.

1. In **Impostazioni aggiuntive** modifica le seguenti impostazioni:

     
**Impostazioni cache**  
Per abilitare il caching delle API per la fase, attiva **Cache API con provisioning**. Quindi configura la memorizzazione nella cache a **livello di metodo predefinita, la capacità della cache****, la** **crittografia dei dati della cache, la cache time-to-live** **(TTL)** e tutti i requisiti per l'invalidazione della cache per chiave.  
Il caching non è attivo finché non viene attivato il caching predefinito a livello di metodo o il caching a livello di metodo per un metodo specifico.  
Per ulteriori informazioni sulle impostazioni della cache, consulta [Impostazioni della cache per REST APIs in API Gateway](api-gateway-caching.md).  
Se abiliti la memorizzazione nella cache delle API per una fase dell'API, al tuo account potrebbe essere addebitato un costo per la memorizzazione nella cache delle API. AWS Il caching non è idoneo per il AWS piano gratuito.  
**Impostazioni di limitazione (della larghezza di banda della rete)**  
Per impostare le destinazioni di limitazione (della larghezza di banda della rete) a livello di fase per tutti i metodi associati a questa API, attiva **Throttling**.  
Per **Rate**(Tasso), inserire un tasso di destinazione. Questa è la velocità, espressa in richieste al secondo, con cui i token vengono aggiunti al bucket di token. La velocità a livello di fase non deve essere superiore alla velocità a [livello di account](api-gateway-request-throttling.md#apig-request-throttling-account-level-limits) come specificato in [Quote per la configurazione e l’esecuzione di una REST API in Gateway API](api-gateway-execution-service-limits-table.md).   
Per **Burst** (ottimizzazione), inserisci un tasso di destinazione. La frequenza di burst è la capacità del token bucket. Ciò consente di passare più richieste per un periodo di tempo rispetto al tasso di destinazione. Questo tasso di ottimizzazione a livello di fase non deve essere superiore al tasso di ottimizzazione a [livello di account](api-gateway-request-throttling.md#apig-request-throttling-account-level-limits) come specificato in [Quote per la configurazione e l’esecuzione di una REST API in Gateway API](api-gateway-execution-service-limits-table.md).   
I tassi di limitazione (della larghezza di banda della rete) non sono limiti rigidi e vengono applicati sulla base del miglior tentativo. In alcuni casi, i client possono superare gli obiettivi impostati. Non fare affidamento sulla limitazione (della larghezza di banda della rete) per controllare i costi o bloccare l'accesso a un'API. Considera l'utilizzo di [Budget AWS](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) per monitorare i costi e di [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) per gestire le richieste API.  
**Impostazioni di firewall e certificati**  
Per associare un ACL AWS WAF Web allo stage, selezionate un ACL Web dall'elenco a discesa **Web ACL**. Se si desidera, scegliere **Block API Request if WebACL cannot be evaluated (Blocca richiesta API se non è possibile valutare WebACL)**.  
Per selezionare un certificato client per la fase, scegli un certificato dal menu a discesa **Certificati client**.

1. Scegli **Continua**.

1. Esamina le modifiche e scegli **Salva modifiche**.

1. **Per abilitare Amazon CloudWatch Logs per tutti i metodi associati a questa fase di questa API API Gateway, nella sezione **Logs and tracing**, scegli Modifica.**
**Nota**  
Per abilitare CloudWatch i log, devi anche specificare l'ARN di un ruolo IAM che consente ad API Gateway di scrivere informazioni nei log CloudWatch per conto del tuo utente. Per farlo, scegli **Impostazioni dal pannello** di navigazione **APIs**principale. Quindi, per il **ruolo di CloudWatch registro**, inserisci l'ARN di un ruolo IAM.   
Per scenari applicativi comuni, il ruolo IAM potrebbe allegare la policy gestita di [Amazon APIGateway PushToCloudWatchLogs](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAPIGatewayPushToCloudWatchLogs.html).  
Il ruolo IAM deve anche contenere la seguente dichiarazione di relazione di attendibilità:  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "apigateway.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```
  
Per ulteriori informazioni CloudWatch, consulta la *[Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)*.

1. Seleziona un livello di registrazione dal menu a discesa **CloudWatch Logs.** I livelli di registrazione dei log sono:
   + **Inattivo**: la registrazione dei log non è attivata per questa fase. 
   + **Solo errori**: la registrazione dei log è abilitata solo per gli errori. 
   + **Errori e log informativi**: la registrazione dei log è abilitata per tutti gli eventi.

1. Seleziona **Data tracing** per fare in modo che API Gateway riferisca alla registrazione CloudWatch della traccia dei dati per la tua fase. Questo può essere utile per la risoluzione dei problemi APIs, ma può comportare la registrazione di dati sensibili.
**Nota**  
Ti consigliamo di non utilizzare il **tracciamento dei dati** per la produzione. APIs

1. Seleziona **Metriche dettagliate** per fare in modo che API Gateway CloudWatch riferisca alle metriche API di`API calls`,`Latency`, `Integration latency``400 errors`, e. `500 errors` Per ulteriori informazioni CloudWatch, consulta il [monitoraggio di base e il monitoraggio dettagliato](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-metrics-basic-detailed.html) nella Amazon CloudWatch User Guide.
**Importante**  
Al tuo account viene addebitato l'accesso ai parametri a livello di metodo, ma non ai CloudWatch parametri a livello di API o a livello di fase.

1. Per abilitare la registrazione degli accessi a una destinazione, attiva **Registrazione accesso personalizzato**.

1. In **ARN di destinazione del log degli accessi** inserisci l'ARN di un gruppo di log o un flusso Firehose. 

   Il formato dell'ARN per Firehose è `arn:aws:firehose:{region}:{account-id}:deliverystream/amazon-apigateway-{your-stream-name}`. Il nome del flusso di Firehose deve essere `amazon-apigateway-{your-stream-name}`.

1. In **Formato log** immetti un formato di log. Per ulteriori informazioni sui formati di log di esempio, consulta [CloudWatch formati di registro per API Gateway](set-up-logging.md#apigateway-cloudwatch-log-formats).

1. Per abilitare il tracciamento [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-apigateway.html) per la fase API, seleziona **Tracciamento X-Ray**. Per ulteriori informazioni, consulta [Traccia delle richieste degli utenti alle REST API utilizzando X-Ray in Gateway API](apigateway-xray.md).

1. Scegli **Salva modifiche**. Implementa nuovamente l'API per rendere effettive le nuove impostazioni.

## Sostituzione delle impostazioni a livello di fase
<a name="how-to-method-override"></a>

Dopo aver personalizzato le impostazioni a livello di fase, è possibile sostituirle per ogni metodo API. Alcune di queste opzioni potrebbero comportare costi aggiuntivi per il tuo Account AWS.

1. Per configurare le sostituzioni dei metodi, espandi la fase nel pannello di navigazione secondario, quindi scegli un metodo.  
![\[Espandi la fase nel pannello di navigazione secondario e scegli un metodo.\]](http://docs.aws.amazon.com/it_it/apigateway/latest/developerguide/images/method-override-view-new-console.png)

1. Per **Sostituzioni del metodo** scegli **Modifica**.

1. Per attivare CloudWatch le impostazioni a livello di metodo, per **CloudWatch Registri**, seleziona un livello di registrazione.

1. Per attivare la registrazione dei log della traccia dei dati per il metodo, seleziona **Tracciamento dei dati.**
**Nota**  
Si consiglia di non utilizzare il tracciamento **dei dati** per la produzione. APIs

1. Per attivare i parametri dettagliati a livello di metodo, seleziona **Parametri dettagliati**. Al tuo account viene addebitato l'accesso alle metriche a livello di metodo, ma non alle CloudWatch metriche a livello di API o a livello di fase.

1. Per attivare la limitazione (della larghezza di banda della rete) a livello di metodo, seleziona **Throttling**. Immetti le opzioni appropriate a livello di metodo. Per ulteriori informazioni sulla limitazione, consulta [Limita le richieste al tuo REST APIs per una migliore velocità di trasmissione in API Gateway](api-gateway-request-throttling.md).

1. Per configurare la cache a livello di metodo, seleziona **Abilita cache metodo**. La modifica dell'impostazione del caching predefinito a livello di metodo nei **dettagli della fase** non influisce su questa impostazione.

1. Scegli **Save** (Salva).

# Aggiungi un'API API Gateway REST come destinazione per Amazon Bedrock AgentCore Gateway
<a name="mcp-server"></a>

Un Amazon Bedrock AgentCore Gateway offre agli sviluppatori di agenti AI un modo sicuro per esporre il tuo API Gateway REST APIs come strumenti compatibili con il Model Context Protocol (MCP). AgentCore Gateway utilizza obiettivi per definire gli strumenti. Quando aggiungi la tua fase come destinazione, il tuo Gateway diventa un singolo URL MCP che consente l'accesso agli strumenti per un agente. Per ulteriori informazioni, consulta le [fasi dell'API REST di API Gateway come obiettivi](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-target-api-gateway.html) nella *Amazon Bedrock AgentCore Gateway Developer Guide*.

Gli obiettivi API Gateway collegano il AgentCore gateway alle fasi del REST APIs. Puoi includere l'intera fase come obiettivo o selezionare risorse. Dopo aver creato l'oggetto API Gateway, AgentCore Gateway traduce le richieste MCP in entrata in richieste HTTP e gestisce la formattazione della risposta. I client MCP possono recuperare la documentazione dell'API utilizzando il metodo e richiamarla utilizzando il `tools/list` metodo. APIs `tools/call`

## Considerazioni
<a name="w2aac15c11c11c34c11b7"></a>

Le seguenti considerazioni potrebbero influire sull'utilizzo dell'aggiunta di una fase come destinazione a un Gateway: AgentCore 
+ È necessario disporre già di un AgentCore Gateway.
+ Sono supportati solo APIs i REST pubblici.
+ L'endpoint predefinito dell'API non può essere disabilitato.
+ Per ogni metodo dell'API deve essere definito un [nome di operazione](https://docs.aws.amazon.com/apigateway/latest/api/API_PutMethod.html#apigw-PutMethod-request-operationName) oppure è necessario creare un nome sostitutivo quando si aggiunge lo stage come destinazione. Questo nome viene utilizzato come nome dello strumento utilizzato dagli agenti per interagire con il metodo.
+ È possibile utilizzare `API_KEY` tipi di provider di `GATEWAY_IAM_ROLE` credenziali per Outbound Auth per consentire al gateway di accedere all'API. `NO_AUTH` Il provider di `API_KEY` credenziali è definito da Gateway. AgentCore Puoi utilizzare la tua chiave API Gateway esistente. Per ulteriori informazioni, consulta [Configurazione dell'autenticazione in uscita](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-outbound-auth.html).
+ Se utilizzi un pool di utenti Amazon Cognito o un autorizzatore Lambda per controllare l'accesso alla tua API, i client MCP non possono accedervi.
+ L'API deve trovarsi nello stesso account e nella stessa regione del gateway. AgentCore 

## Aggiungi una fase di un'API come destinazione per un AgentCore gateway
<a name="mcp-server-api-gateway"></a>

La procedura seguente mostra come aggiungere una fase di un'API come destinazione per un AgentCore Gateway.

**Per aggiungere una fase di un'API come destinazione per un AgentCore Gateway**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Scegli un'API REST distribuita in una fase.

1. Nel riquadro di navigazione principale scegli **Fasi**.

1. Scegli **Stage actions**, quindi scegli **Create MCP target.**

1. Per **AgentCore Gateway**, selezionate un AgentCore Gateway.

1. Per **Nome destinazione**, inserisci un nome di destinazione.

1. Per **Descrizione dell'oggetto**, inserisci una descrizione.

1. Conserva l'API e lo stage forniti.

1. Per **le risorse Select API**, seleziona le risorse della tua API a cui possono accedere gli agenti che utilizzano il tuo AgentCore Gateway.

   Se non selezioni una risorsa, un agente non può visualizzare la documentazione o richiamare l'endpoint. 

1. La combinazione della risorsa e del metodo sono le operazioni dello strumento. Se l'operazione non ha un nome, crea un nome override.

   È inoltre possibile definire un nome di operazione per un metodo al momento della creazione.

1. Per la **configurazione di autenticazione in uscita**, scegli **IAM Role**, **Nessuna autorizzazione** o **API** key.

1. Seleziona **Crea destinazione**.

Per visualizzare tutti i AgentCore gateway che hanno accesso al tuo APIs, scegli la sezione **MCP targets** nel pannello di navigazione principale. In questa sezione, puoi creare un target MCP per qualsiasi API nella tua regione distribuita in una fase. Scegli **Crea obiettivo MCP** e segui i passaggi precedenti.

Puoi anche visualizzare gli strumenti disponibili per il tuo target e modificarlo nella console AgentCore Gateway. Per ulteriori informazioni, consulta [Aggiungere obiettivi a un AgentCore gateway esistente](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-building-adding-targets.html).

# Eliminazione di una fase
<a name="how-to-delete-stage"></a>

Quando una fase non è più necessaria, puoi eliminarla per evitare di pagare per risorse inutilizzate. Le fasi seguenti mostrano come utilizzare la console API Gateway per eliminare una fase.

**avvertimento**  
 L'eliminazione di una fase potrebbe rendere inutilizzabile parte o tutta l'API corrispondente per i chiamanti dell'API. L'eliminazione di una fase non può essere annullata, tuttavia è possibile creare nuovamente una fase e associarla alla stessa distribuzione. 

1. Accedere alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Scegliere una REST API.

1. Nel riquadro di navigazione principale scegli **Fasi**.

1. Nel riquadro **Fasi** scegli la fase che vuoi eliminare, quindi seleziona **Operazioni fase**, **Elimina fase**.

1. Quando richiesto, immetti **confirm**, quindi scegli **Elimina**.

# Configurazione dei tag per una fase API in Gateway API
<a name="set-up-tags"></a>

In API Gateway è possibile aggiungere un tag a una fase API, rimuoverlo o visualizzarlo. A tale scopo è possibile utilizzare la console API Gateway, la AWS CLI/l'SDK o l'API REST di API Gateway.

Una fase può anche ereditare i tag dalla sua API REST padre. Per ulteriori informazioni, consulta [Eredità dei tag nell'API di Amazon API Gateway V1](apigateway-tagging-supported-resources.md#apigateway-tagging-inheritance).

Per ulteriori informazioni sull'assegnazione di tag alle risorse dell'API Gateway, consulta [Tagging delle risorse API Gateway](apigateway-tagging.md).

**Topics**
+ [Configurare i tag per una fase API utilizzando la console si API Gateway](#set-up-tags-using-console)
+ [Configurazione dei tag per una fase API usando AWS CLI](#set-up-tags-using-cli)
+ [Impostare i tag per una fase API utilizzando l'API REST di API Gateway](#set-up-tags-using-api)

## Configurare i tag per una fase API utilizzando la console si API Gateway
<a name="set-up-tags-using-console"></a>

La procedura seguente descrive come configurare i tag per una fase API.

**Per configurare i tag per una fase API mediante la console API Gateway**

1. Accedere alla console API Gateway.

1. Seleziona un'API esistente o crea una nuova API che includa risorse, metodi e le integrazioni corrispondenti.

1. Seleziona una fase o distribuisci l'API in una nuova fase.

1. Nel riquadro di navigazione principale scegli **Fasi**.

1. Seleziona la scheda **Tags** (Tag). Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda.

1. Scegliere **Gestisci tag**.

1. In **Editor di tag** scegli **Aggiungi nuovo tag**. Immetti una chiave di tag (ad esempio, `Department`) nella colonna **Key (Chiave)**, quindi immetti un valore di tag (ad esempio, `Sales`) nella colonna **Value (Valore)**. Per salvare il tag scegli **Salva**.

1.  Se necessario, ripeti la fase 5 per aggiungere altri tag alla fase API. Il numero massimo di tag per ogni fase è 50.

1.  Per rimuovere un tag esistente dalla fase scegli **Rimuovi**.

1. Se l'API è stata implementata in precedenza nella console API Gateway, sarà necessario ridistribuirla per rendere effettive le modifiche.

## Configurazione dei tag per una fase API usando AWS CLI
<a name="set-up-tags-using-cli"></a>

È possibile impostare i tag per una fase API usando AWS CLI con il comando [create-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-stage.html) o il comando [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/apigateway/tag-resource.html). È possibile eliminare uno o più tag da una fase API eseguendo il comando [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/apigateway/untag-resource.html). 

Il comando [create-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-stage.html) seguente aggiunge un tag durante la creazione di una fase `test`:

```
aws apigateway create-stage --rest-api-id abc1234 --stage-name test --description 'Testing stage' --deployment-id efg456 --tag Department=Sales
```

Il comando [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/apigateway/tag-resource.html) seguente aggiunge un tag a una fase `prod`:

```
aws apigateway tag-resource --resource-arn arn:aws:apigateway:us-east-2::/restapis/abc123/stages/prod --tags Department=Sales
```

Il comando [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/apigateway/untag-resource.html) seguente rimuove il tag `Department=Sales` dalla fase `test`:

```
aws apigateway untag-resource --resource-arn arn:aws:apigateway:us-east-2::/restapis/abc123/stages/test --tag-keys Department 
```

## Impostare i tag per una fase API utilizzando l'API REST di API Gateway
<a name="set-up-tags-using-api"></a>

È possibile configurare i tag per una fase API utilizzando l'API REST di API Gateway con una delle operazioni seguenti:
+ Richiamare [https://docs.aws.amazon.com/apigateway/latest/api/API_TagResource.html](https://docs.aws.amazon.com/apigateway/latest/api/API_TagResource.html) per aggiungere tag a una fase API.
+  Richiamare [https://docs.aws.amazon.com/apigateway/latest/api/API_UntagResource.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UntagResource.html) per eliminare uno o più tag da una fase API.
+ Richiamare [https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html) per aggiungere uno o più tag a una fase API in fase di creazione.

È anche possibile richiamare [https://docs.aws.amazon.com/apigateway/latest/api/API_GetTags.html](https://docs.aws.amazon.com/apigateway/latest/api/API_GetTags.html) per descrivere i tag in una fase API.

### Aggiunta di tag a una fase API
<a name="tag-a-stage-using-api"></a>

Dopo avere distribuito un'API (`m5zr3vnks7`) in una fase (`test`), è possibile aggiungere tag alla fase richiamando [https://docs.aws.amazon.com/apigateway/latest/api/API_TagResource.html](https://docs.aws.amazon.com/apigateway/latest/api/API_TagResource.html). L'Amazon Resource Name (ARN) richiesto della fase (`arn:aws:apigateway:us-east-1::/restapis/m5zr3vnks7/stages/test`) deve avere codifica URL (`arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftest`). 

```
PUT /tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftest

{
  "tags" : {
    "Department" : "Sales"
  }
}
```

 Puoi anche usare la richiesta precedente per aggiornare un tag esistente in un nuovo valore. 

È possibile aggiungere tag a una fase richiamando [https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html) per la relativa creazione:

```
POST /restapis/<restapi_id>/stages

{
  "stageName" : "test",
  "deploymentId" : "adr134",
  "description" : "test deployment",
  "cacheClusterEnabled" : "true",
  "cacheClusterSize" : "500",
  "variables" : {
    "sv1" : "val1"
  },
  "documentationVersion" : "test",

  "tags" : {
    "Department" : "Sales",
    "Division" : "Retail"
  }
}
```

### Rimozione di tag da una fase API
<a name="untag-a-stage-using-api"></a>

 Per rimuovere il tag `Department` dalla fase, richiamare [https://docs.aws.amazon.com/apigateway/latest/api/API_UntagResource.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UntagResource.html): 

```
DELETE /tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftest?tagKeys=Department
Host: apigateway.us-east-1.amazonaws.com
Authorization: ...
```

 Per rimuovere più di un tag, usare un elenco di chiavi di tag separate da virgole nell'espressione di query, ad esempio `?tagKeys=Department,Division,…`. 

### Descrizione dei tag per una fase API
<a name="get-tags-using-api"></a>

Per descrivere i tag esistenti per una fase specifica, richiamare [https://docs.aws.amazon.com/apigateway/latest/api/API_GetTags.html](https://docs.aws.amazon.com/apigateway/latest/api/API_GetTags.html):

```
GET /tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftags
Host: apigateway.us-east-1.amazonaws.com
Authorization: ...
```

La risposta con esito positivo è simile a quella riportata di seguito.

```
200 OK

{
    "_links": {
        "curies": {
            "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-tags-{rel}.html",
            "name": "tags",
            "templated": true
        },
        "tags:tag": {
            "href": "/tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftags"
        },
        "tags:untag": {
            "href": "/tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftags{?tagKeys}",
            "templated": true
        }
    },
    "tags": {
        "Department": "Sales"
    }
}
```

# Utilizzo delle variabili di fase per una REST API in Gateway API
<a name="stage-variables"></a>

Le variabili di fase sono coppie chiave-valore che è possibile definire come attributi di configurazione associati a una fase di implementazione di una REST API. Fungono da variabili di ambiente e possono essere utilizzate nei modelli di mappatura e configurazione dell'API. Con le fasi di implementazione in Gateway API, puoi gestire più fasi di rilascio per ogni API e utilizzare le variabili di fase per configurare una fase di implementazione dell'API per l'interazione con endpoint di backend diversi.

Le variabili di fase non sono destinate ad essere utilizzate per i dati sensibili, come le credenziali. Per trasferire dati sensibili alle integrazioni, usa un AWS Lambda autorizzatore. È possibile passare dati sensibili alle integrazioni nell'output del provider di autorizzazioni Lambda. Per ulteriori informazioni, consulta [Output da un sistema di autorizzazione Lambda di Gateway API](api-gateway-lambda-authorizer-output.md).

## Casi d'uso per le variabili di fase
<a name="use-cases"></a>

Di seguito sono riportati alcuni casi d'uso per le variabili di fase.

**Specificare un endpoint di backend diverso**  
L'API può passare una richiesta `GET` come proxy HTTP all'host web di backend. Puoi utilizzare una variabile di fase per far sì che, quando i chiamanti dell'API invocano l'endpoint di produzione, Gateway API chiami `example.com`. Quindi, quando i chiamanti dell'API invocano la fase beta, Gateway API chiama un host web diverso, ad esempio `beta.example.com`. Analogamente, le variabili di fase si possono utilizzare per specificare un nome di funzione AWS Lambda per ogni fase dell'API. Non puoi utilizzare una variabile di fase per impostare un endpoint di integrazione diverso, ad esempio per far sì che la richiesta `GET` punti a un'integrazione di proxy HTTP in una fase e a un'integrazione di proxy Lambda in un'altra fase.  
Quando si specifica un nome di funzione Lambda come valore della variabile di fase, è necessario configurare manualmente le autorizzazioni per la funzione Lambda. Quando specifichi una funzione Lambda nella console API Gateway, verrà visualizzato un AWS CLI comando per configurare le autorizzazioni appropriate. A tale scopo è inoltre possibile utilizzare il seguente AWS CLI comando.  

```
aws lambda add-permission --function-name "arn:aws:lambda:us-east-2:123456789012:function:my-function" --source-arn "arn:aws:execute-api:us-east-2:123456789012:api_id/*/HTTP_METHOD/resource" --principal apigateway.amazonaws.com --statement-id apigateway-access --action lambda:InvokeFunction
```

**Passare le informazioni utilizzando modelli di mappatura**  
Puoi accedere alle variabili di fase nei modelli di mappatura o passare i parametri di configurazione a AWS Lambda o al backend HTTP. Ad esempio, potrebbe essere necessario riutilizzare la stessa funzione Lambda per più fasi nell'API, ma la funzione deve leggere i dati da una tabella di Amazon DynamoDB diversa a seconda della fase. Nei modelli di mappatura che generano la richiesta per la funzione Lambda è possibile usare le variabili di fase per passare il nome della tabella a Lambda.

Per utilizzare una variabile di fase, è necessario prima configurare una variabile di fase e quindi assegnarle un valore. Ad esempio, per personalizzare l'endpoint di integrazione HTTP, crea prima la variabile di fase `url` e poi, nella richiesta di integrazione dell'API, inserisci il valore della variabile di fase **http://\$1\$1stageVariables.url\$1**. Questo valore indica ad API Gateway di sostituire la variabile di fase `${}` al runtime, a seconda della fase di esecuzione dell'API. Per ulteriori informazioni, consulta [Imposta le variabili di fase per REST APIs in API Gateway](how-to-set-stage-variables-aws-console.md). 

# Imposta le variabili di fase per REST APIs in API Gateway
<a name="how-to-set-stage-variables-aws-console"></a>

Questa sezione mostra come configurare le variabili di fase per due fasi di implementazione di un'API di esempio utilizzando la console Gateway Amazon API. Per capire come utilizzare le variabili di fase in Gateway API, ti consigliamo di seguire tutte le procedure illustrate in questa sezione.

## Prerequisiti
<a name="how-to-set-stage-variables-aws-console-prerequisites"></a>

Prima di iniziare, verifica che siano soddisfatti i seguenti requisiti preliminari: 
+ Devi disporre di un'API in API Gateway. Segui le istruzioni in [Sviluppa REST APIs in API Gateway](rest-api-develop.md).
+ Devi avere distribuito l'API almeno una volta. Segui le istruzioni in [Implementazione di REST API in Gateway API](how-to-deploy-api.md).
+ Devi aver creato la prima fase per un'API distribuita. Segui le istruzioni in [Creazione di una nuova fase](set-up-stages.md#how-to-create-stage-console).

  

## Invocazione di un endpoint HTTP mediante un'API con una variabile di fase
<a name="how-to-set-stage-variables-aws-console-http-endpoint"></a>

Questa procedura descrive come creare una variabile di fase per un endpoint HTTP e due fasi per l'API. Inoltre, vengono create le variabili di fase `url`, `stageName` e `function`, che vengono utilizzate nelle procedure seguenti di questa sezione.

**Per invocare un endpoint HTTP mediante un'API con una variabile di fase**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Crea un'API, quindi crea un metodo `GET` nella risorsa radice dell'API. Imposta il tipo di integrazione su **HTTP** e imposta l'**URL dell'endpoint** su **http://\$1\$1stageVariables.url\$1**.

1. Implementa l'API in una nuova fase denominata **beta**. 

1. Nel riquadro di navigazione scegli **Fasi**, quindi seleziona la fase **beta**. 

1. Nella scheda **Variabili di fase** scegli **Modifica**.

1. Scegli **Aggiungi variabile di fase**.

1. In **Nome**, inserisci **url**. In **Valore**, inserisci **httpbin.org/get**.

1. Scegli **Aggiungi variabile di fase**, quindi effettua le seguenti operazioni:

   In **Nome**, inserisci **stageName**. In **Valore**, inserisci **beta**.

1. Scegli **Aggiungi variabile di fase**, quindi effettua le seguenti operazioni:

   In **Nome**, inserisci **function**. In **Valore**, inserisci **HelloWorld**.

1. Scegli **Save** (Salva).

1.  Ora crea una seconda fase. Dal riquadro di navigazione **Fasi** scegli **Crea fase**. In **Stage name (Nome fase)** immettere **prod**. Seleziona un'implementazione recente da **Implementazione** e scegli **Crea**.

1.  Come per la fase **beta**, imposta le stesse tre variabili di fase (**url**, **version** e **function**) su valori diversi (rispettivamente **petstore-demo-endpoint.execute-api.com/petstore/pets**, **prod** e **HelloEveryone**). 

1. Nel riquadro di navigazione **Stages (Fasi)** scegli **beta**. In **Dettagli fase** scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API in un browser Web. Viene avviata la richiesta `GET` della fase **beta** nella risorsa radice dell'API. 
**Nota**  
Il collegamento **Invoke URL** (URL chiamata) punta alla risorsa radice dell'API nella rispettiva fase **beta**. L'immissione dell'URL in un browser Web chiama il metodo `GET` della fase **beta** nella risorsa radice. Se i metodi vengono definiti nelle risorse figlio e non nella risorsa radice stessa, scegliendo l'URL in un browser Web viene restituita la risposta di errore `{"message":"Missing Authentication Token"}`. In questo caso, devi aggiungere al collegamento **Invoke URL (URL chiamata)** il nome di una risorsa figlio specifica. 

1. La risposta che si ottiene dalla richiesta `GET` della fase **beta** è mostrata più avanti. Puoi verificare il risultato anche utilizzando un browser per accedere a **http://httpbin.org/get**. Questo valore è stato assegnato alla variabile `url` nella fase **beta**. Le due risposte sono identiche. 

1. Nel riquadro di navigazione **Stages (Fasi)** scegli la fase **prod**. In **Dettagli fase** scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API in un browser Web. Viene avviata la richiesta `GET` della fase **prod** nella risorsa radice dell'API. 

1. La risposta che si ottiene dalla richiesta `GET` della fase **prod** è mostrata più avanti. È possibile verificare il risultato utilizzando un browser per accedere a **http://.execute-api. petstore-demo-endpoint com/petstore/pets**. Questo valore è stato assegnato alla variabile `url` nella fase **prod**. Le due risposte sono identiche. 

## Passare i metadati specifici della fase in un backend HTTP
<a name="how-to-set-stage-variables-aws-console-stage-metadata"></a>

Questa procedura descrive come utilizzare un valore di variabile di fase in un'espressione di parametri di query per passare i metadati specifici delle fasi in un back-end HTTP. Utilizzeremo la variabile di fase `stageName` dichiarata nella procedura precedente.

**Per passare metadati specifici della fase in un backend HTTP**

1. Nel riquadro di navigazione **Resource (Risorsa)** scegli il metodo **GET**. 

   Per aggiungere un parametro della stringa di query all'URL del metodo, seleziona la scheda **Richiesta del metodo**, quindi nella sezione **Impostazioni della richiesta del metodo**, scegli **Modifica**. 

1. Scegli i **parametri della stringa di query URL** ed effettua le seguenti operazioni:

   1. Scegliere **Add query string (Aggiungi stringa di query)**.

   1. In **Nome**, inserisci **stageName**.

   1. Mantieni **Obbligatorio** e **Caching** disattivati.

1. Scegli **Save** (Salva).

1. Scegli la scheda **Richiesta di integrazione**, quindi seleziona **Modifica** nella sezione **Impostazioni della richiesta di integrazione**.

1. Per **URL dell'endpoint** aggiungi **?stageName=\$1\$1stageVariables.stageName\$1** al valore URL definito in precedenza, in modo che sia l'intero **URL dell'endpoint** sia **http://\$1\$1stageVariables.url\$1?stageName=\$1\$1stageVariables.stageName\$1**.

1. Scegli **Implementa API** e seleziona la fase **beta**.

1. Nel riquadro di navigazione principale scegli **Fasi**. Nel riquadro di navigazione **Stages (Fasi)** scegli **beta**. In **Dettagli fase** scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API in un browser Web. 
**Nota**  
 Qui usiamo la fase beta perché l'endpoint HTTP (come specificato dalla variabile `url`, "http://httpbin.org/get") accetta le espressioni dei parametri di query e le restituisce come oggetto `args` nella rispettiva risposta. 

1. Si ottiene la risposta seguente. `beta`, assegnato alla variabile di fase `stageName`, viene passata nel back-end come argomento `stageName`. 

      
![\[Risposta dal metodo GET dell'API con un endpoint HTTP utilizzando la variabile di fase url.\]](http://docs.aws.amazon.com/it_it/apigateway/latest/developerguide/images/stageVariables-new-console-invoke-beta-stage-with-url-and-stageName-response.png)

## Invocare una funzione Lambda attraverso un'API con una variabile di fase
<a name="how-to-set-stage-variables-aws-console-lambda-function"></a>

Questa procedura descrive come utilizzare una variabile di fase per chiamare una funzione Lambda come back-end dell'API. Utilizzerai la variabile di fase `function` dichiarata in [Invocazione di un endpoint HTTP mediante un'API con una variabile di fase](#how-to-set-stage-variables-aws-console-http-endpoint).

 Quando imposti una funzione Lambda come valore di una variabile di fase, usa il nome locale della funzione, se possibile includendo l'alias o la specifica della versione, come in **HelloWorld**, **HelloWorld:1** o **HelloWorld:alpha**. Non usare l'ARN della funzione (ad esempi, **arn:aws:lambda:us-east-1:123456789012:function:HelloWorld**). La console API Gateway assume il valore della variabile di fase per una funzione Lambda come nome di funzione non qualificato ed espande la variabile di fase specificata in un ARN. 

**Per invocare la funzione Lambda mediante un'API con una variabile di fase**

1. Crea una funzione Lambda denominata **HelloWorld** utilizzando il runtime Node.js predefinito. Il codice deve contenere quanto segue:

   ```
   export const handler = function(event, context, callback) {
       if (event.stageName)
           callback(null, 'Hello, World! I\'m calling from the ' + event.stageName + ' stage.');
       else
           callback(null, 'Hello, World! I\'m not sure where I\'m calling from...');
   };
   ```

   Per ulteriori informazioni su come creare una funzione Lambda, consulta [Nozioni di base sulla console REST API](getting-started-rest-new-console.md#getting-started-rest-new-console-create-function).

1. Nel riquadro **Risorse** seleziona **Crea risorsa**, quindi procedi come segue:

   1. Per **Percorso risorsa**, seleziona **/**.

   1. Per **Resource Name (Nome risorsa)** immetti **lambdav1**.

   1. Scegli **Crea risorsa**.

1. Scegli la risorsa **/lambdav1** e poi scegli **Crea metodo**.

   Successivamente, esegui queste operazioni:

   1. Per **Tipo di metodo** seleziona **GET**.

   1. Per **Tipo di integrazione** seleziona **Funzione Lambda**.

   1. Mantieni l'opzione **Integrazione proxy Lambda** disattivata.

   1. Per **Lambda function (Funzione Lambda)**, immetti `${stageVariables.function}`.  
![\[Creazione di un metodo GET integrato con una funzione Lambda come specificato dalla variabile di fase function\]](http://docs.aws.amazon.com/it_it/apigateway/latest/developerguide/images/stageVariables-new-console-create-lambda-get-method.png)
**Suggerimento**  
Quando richiesto da **Aggiungi comando di autorizzazione**, copia il comando [add-permission](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html). Esegui il comando per ciascuna funzione Lambda che sarà assegnata alla variabile di fase `function`. Ad esempio, se il valore di `$stageVariables.function` è `HelloWorld`, esegui il comando AWS CLI seguente:   

      ```
      aws lambda add-permission --function-name arn:aws:lambda:us-east-1:account-id:function:HelloWorld --source-arn arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/lambdav1 --principal apigateway.amazonaws.com --statement-id statement-id-guid --action lambda:InvokeFunction
      ```
 In caso contrario, riceverai una risposta `500 Internal Server Error` quando verrà invocato il metodo. Sostituisci `${stageVariables.function}` con il nome della funzione Lambda assegnato alla variabile di fase.   
   

![\[AWS CLI comando per aggiungere il permesso alla funzione Lambda da invocare dal metodo creato.\]](http://docs.aws.amazon.com/it_it/apigateway/latest/developerguide/images/stageVariables-new-console-add-permission-to-lambda-function.png)


   1. Scegli **Crea metodo**.

1. Implementa l'API in entrambe le fasi **prod** e **beta**.

1. Nel riquadro di navigazione principale scegli **Fasi**. Nel riquadro di navigazione **Stages (Fasi)** scegli **beta**. In **Dettagli fase** scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API in un browser Web. Aggiungi **/lambdav1** all'URL prima di premere invio.

   Si ottiene la risposta seguente.

   ```
   "Hello, World! I'm not sure where I'm calling from..."
   ```

## Passaggio dei metadati specifici delle fasi a una funzione Lambda mediante una variabile di fase
<a name="pass-version-info-to-lambda-backend-with-stage-variable"></a>

Questa procedura descrive come utilizzare una variabile di fase per passare i metadata di configurazione specifici delle fasi in una funzione Lambda. Crei un metodo `POST` e un modello di mappatura di input per generare il payload utilizzando la variabile di fase `stageName` dichiarata precedentemente.

**Per passare i metadati specifici delle fasi a una funzione Lambda mediante una variabile di fase**

1. Scegli la risorsa **/lambdav1** e poi scegli **Crea metodo**.

   Successivamente, esegui queste operazioni:

   1. Per **Tipo di metodo** seleziona **POST**.

   1. Per **Tipo di integrazione** seleziona **Funzione Lambda**.

   1. Mantieni l'opzione **Integrazione proxy Lambda** disattivata.

   1. Per **Lambda function (Funzione Lambda)**, immetti `${stageVariables.function}`.

   1. Quando richiesto da **Aggiungi comando di autorizzazione**, copia il comando [add-permission](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html). Esegui il comando per ciascuna funzione Lambda che sarà assegnata alla variabile di fase `function`.

   1. Scegli **Crea metodo**.

1. Scegli la scheda **Richiesta di integrazione**, quindi seleziona **Modifica** nella sezione **Impostazioni della richiesta di integrazione**.

1. Scegli **Modelli di mappatura**, quindi seleziona **Aggiungi modello di mappatura**.

1. Per **Tipo di contenuto** inserisci **application/json**.

1. Per **Corpo del modello** inserisci il seguente modello:

   ```
   #set($inputRoot = $input.path('$'))
   {
       "stageName" : "$stageVariables.stageName"
   }
   ```
**Nota**  
 In un modello di mappatura il riferimento a una variabile di fase deve essere racchiuso tra apici (come in `"$stageVariables.stageName"` o `"${stageVariables.stageName}"`), mentre altrove non si devono utilizzare gli apici (come in `${stageVariables.function}`). 

1. Scegli **Save** (Salva).

1. Implementa l'API in entrambe le fasi **beta** e **prod**.

1. Per utilizzare un client REST API per passare i metadati specifici della fase, procedi come segue:

   1. Nel riquadro di navigazione **Stages (Fasi)** scegli **beta**. In **Dettagli fase** scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API nel campo di input di un client REST API. Aggiungi **/lambdav1** prima di inviare la richiesta.

      Si ottiene la risposta seguente.

      ```
      "Hello, World! I'm calling from the beta stage."
      ```

   1. Nel riquadro di navigazione **Fasi** scegli **prod**. In **Dettagli fase** scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API nel campo di input di un client REST API. Aggiungi **/lambdav1** prima di inviare la richiesta.

      Si ottiene la risposta seguente.

      ```
      "Hello, World! I'm calling from the prod stage."
      ```

1. Per utilizzare la funzionalità **Test** per trasmettere i metadati specifici della fase, procedi come segue:

   1. Nel riquadro di navigazione **Risorse** scegli la scheda **Test**. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda.

   1. Per **function** immetti **HelloWorld**.

   1. Per **stageName** immetti **beta**.

   1. Scegli **Test (Esegui test)**. Non è necessario aggiungere un corpo alla richiesta `POST`.

      Si ottiene la risposta seguente.

      ```
      "Hello, World! I'm calling from the beta stage."
      ```

   1. Puoi ripetere i passaggi precedenti per testare la fase **Prod**. Per **stageName** immetti **Prod**.

      Si ottiene la risposta seguente.

      ```
      "Hello, World! I'm calling from the prod stage."
      ```

# Riferimento alle variabili di fase API Gateway per REST APIs in API Gateway
<a name="aws-api-gateway-stage-variables-reference"></a>

 È possibile usare le variabili di fase di API Gateway nei casi seguenti.

## Espressioni di mappatura dei parametri
<a name="stage-variables-in-parameter-mapping-expressions"></a>

Una variabile di fase può essere utilizzata in un'espressione di mappatura dei parametri per un parametro di intestazione di risposta o di richiesta del metodo API, senza alcuna sostituzione parziale. Nell'esempio che segue si fa riferimento alla variabile di fase senza il simbolo `$` e il simbolo `{...}` di chiusura. 
+ `stageVariables.<variable_name>`

## Modelli di mappatura
<a name="stage-variables-in-mapping-templates"></a>

 Una variabile di fase può essere utilizzata ovunque in un modello di mappatura, come mostrato negli esempi seguenti. 
+  `{ "name" : "$stageVariables.<variable_name>"}`
+ `{ "name" : "${stageVariables.<variable_name>}"}`

## Integrazione HTTP URIs
<a name="stage-variables-in-integration-HTTP-uris"></a>

Una variabile di fase può essere utilizzata come parte di un URL di integrazione HTTP, come mostrato negli esempi seguenti:
+ Un URI completo senza protocoll – `http://${stageVariables.<variable_name>}`
+ Un dominio completo – `http://${stageVariables.<variable_name>}/resource/operation`
+ Un sottodominio – `http://${stageVariables.<variable_name>}.example.com/resource/operation`
+ Un percorso – `http://example.com/${stageVariables.<variable_name>}/bar`
+ Una stringa di query – `http://example.com/foo?q=${stageVariables.<variable_name>}` 

## AWS integration URIs
<a name="stage-variables-in-integration-aws-uris"></a>

 Una variabile di fase può essere utilizzata come parte dell'azione AWS URI o dei componenti del percorso, come illustrato nell'esempio seguente.
+ `arn:aws:apigateway:<region>:<service>:${stageVariables.<variable_name>}`

## AWS integrazione URIs (funzioni Lambda)
<a name="stage-variables-in-integration-lambda-functions"></a>

 Una variabile di fase può essere utilizzata al posto del nome o della versione/dell'alias di una funzione Lambda, come mostrato negli esempi seguenti. 
+ `arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:${stageVariables.<function_variable_name>}/invocations`
+ `arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:<function_name>:${stageVariables.<version_variable_name>}/invocations`

**Nota**  
Per utilizzare una variabile di fase per una funzione Lambda, la funzione deve essere nello stesso account dell'API. Le variabili di fase non supportano le funzioni Lambda tra più account.

## Bacino d’utenza di Amazon Cognito
<a name="stage-variables-in-integration-lambda-functions"></a>

Una variabile di fase può essere utilizzata al posto di un pool di utenti di Amazon Cognito per un sistema di autorizzazione `COGNITO_USER_POOLS`.
+ `arn:aws:cognito-idp:<region>:<account_id>:userpool/${stageVariables.<variable_name>}`

## AWS credenziali di integrazione
<a name="stage-variables-in-integration-aws-credentials"></a>

 Una variabile stage può essere utilizzata come parte dell'ARN delle AWS credenziali utente/ruolo, come illustrato nell'esempio seguente. 
+  `arn:aws:iam::<account_id>:${stageVariables.<variable_name>}` 

# Configurare la distribuzione di una release Canary di API Gateway
<a name="canary-release"></a>

Con [release Canary](https://martinfowler.com/bliki/CanaryRelease.html) si intende una strategia di sviluppo software in cui una nuova versione di un'API o di un altro software viene distribuita a scopo di test e contemporaneamente la versione di base rimane distribuita come release di produzione per le normali operazioni nella stessa fase. In questa documentazione la versione di base viene detta release di produzione. È possibile applicare una release Canary a qualsiasi versione non di produzione a scopo di test.

Nella distribuzione di una release Canary, il traffico API totale viene separato in modo casuale tra release di produzione e release Canary, in base a un rapporto preconfigurato. In genere, la release Canary riceve una piccola percentuale di traffico API e il resto viene assegnato alla release di produzione. Le caratteristiche API aggiornate sono visibili solo al traffico API nella release Canary. Puoi modificare la percentuale di traffico nella release Canary per ottimizzare le prestazioni o la copertura dei test. 

Mantenendo limitato il traffico nella release Canary e la selezione casuale, la maggior parte degli utenti non riscontra conseguenze negative a causa di bug potenziali nella nuova versione e nessun utente riscontra conseguenze negative durature.

Se i parametri di test soddisfano i requisiti, puoi promuovere la release Canary a release di produzione e disabilitarne la distribuzione. Le nuove caratteristiche vengono così rese disponibili nella fase di produzione. 

**Topics**
+ [Distribuzione di una release Canary in API Gateway](#api-gateway-canary-release-deployment-overview)
+ [Creazione di una distribuzione di una release Canary](create-canary-deployment.md)
+ [Aggiornamento di una release Canary](update-canary-deployment.md)
+ [Promozione di una release Canary](promote-canary-deployment.md)
+ [Disabilitazione di una release Canary](delete-canary-deployment.md)

## Distribuzione di una release Canary in API Gateway
<a name="api-gateway-canary-release-deployment-overview"></a>

 In API Gateway la distribuzione di una release Canary utilizza la fase di distribuzione per il rilascio di produzione di una versione di base di un'API e collega alla fase una release Canary per le versioni dell'API nuove rispetto alla versione di base. La fase è associata alla distribuzione iniziale e la release Canary alle distribuzioni successive. All'inizio, sia la fase che la release Canary puntano alla stessa versione API. In questa sezione i termini fase e release di produzione vengono usati in modo intercambiabile, come pure i termini Canary e release Canary.

Per distribuire un'API con una release Canary devi creare una distribuzione della release Canary aggiungendo le [impostazioni Canary](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) alla [fase](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) di una [distribuzione](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html) standard. Le impostazioni Canary descrivono la release Canary sottostante e la fase rappresenta la release di produzione dell'API nella distribuzione. Per aggiungere le impostazioni Canary, imposta `canarySettings` nella fase di distribuzione e specifica quanto segue: 
+  Un ID di distribuzione, inizialmente identico all'ID della distribuzione della versione di base impostato nella fase. 
+  Una [percentuale di traffico API](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#percentTraffic), con un valore compreso tra 0,0 e 100,0 inclusi, per la release Canary. 
+  [Variabili di fase per la release Canary](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#stageVariableOverrides) che possono sovrascrivere le variabili di fase per la release di produzione. 
+  L'[uso della cache dello stage](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#useStageCache) per le richieste Canary, se [useStageCache](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#useStageCache)è impostata e la memorizzazione nella cache delle API è abilitata sullo stage.

 Dopo l'abilitazione di una release Canary, la fase di distribuzione non può essere associata a un'altra distribuzione di una release non Canary fino a quando la release Canary non viene disabilitata e le impostazioni Canary non vengono rimosse dalla fase. 

Quando si abilita il logging delle esecuzioni API, per la release Canary vengono generati log e parametri per tutte le richieste Canary. Vengono segnalate a un gruppo di log CloudWatch Logs in fase di produzione e a un gruppo di log Logs specifico per Canary CloudWatch . Lo stesso vale per il logging degli accessi. I log specifici della release Canary sono utili per convalidare le nuove modifiche dell'API e stabilire se accettare le modifiche e promuovere la release Canary alla fase di produzione o se eliminare le modifiche e annullare la release Canary nella fase di produzione.

Il gruppo di log delle esecuzioni della fase di produzione è denominato `API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}` e il gruppo di log delle esecuzioni della release Canary è denominato `API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}/Canary`. Per il logging degli accessi, è necessario creare un nuovo gruppo di log o sceglierne uno esistente. Al nome del gruppo di log degli accessi della release Canary scelto viene aggiunto il suffisso `/Canary`. 

Una versione canary può utilizzare lo stage cache, se abilitato, per memorizzare le risposte e utilizzare le voci memorizzate nella cache per restituire i risultati alle successive richieste Canary, entro un periodo preconfigurato (TTL). time-to-live 

Nella distribuzione di una release Canary, la release di produzione e la release Canary dell'API possono essere associate alla stessa versione o a versioni diverse. Quando sono associate a versioni diverse, le risposte per le richieste di produzione e Canary vengono memorizzate nella cache separatamente e la cache di fase restituisce i risultati corrispondenti per le richieste di produzione e Canary. Quando la release di produzione e la release Canary sono associate alla stessa distribuzione, la cache di fase usa una singola chiave cache per entrambi i tipi di richieste e restituisce la stessa risposta per le stesse richieste dalla release di produzione e dalla release Canary. 

# Creazione di una distribuzione di una release Canary
<a name="create-canary-deployment"></a>

Puoi creare una distribuzione di una release Canary quando distribuisci l'API con [impostazioni Canary](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateDeployment.html#canarySettings) come input aggiuntivo all'operazione di [creazione della distribuzione](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateDeployment.html). 

Puoi anche creare una distribuzione di una release Canary da una distribuzione non Canary esistente effettuando una richiesta [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) per aggiungere le impostazioni Canary nella fase.

Quando crei una distribuzione di una release non Canary, puoi specificare un nome di fase non esistente. Se la fase specificata non esiste, API Gateway la crea. Non puoi tuttavia specificare un nome di fase non esistente quando crei una distribuzione di una release Canary. In questo caso si verificherà un errore e API Gateway non creerà una distribuzione della release Canary. 

 Puoi creare una distribuzione Canary Release in API Gateway utilizzando la console API Gateway AWS CLI, o un AWS SDK.

**Topics**
+ [Creare una distribuzione Canary utilizzando la console API Gateway](#create-canary-deployment-using-console)
+ [Crea una distribuzione Canary utilizzando il AWS CLI](#create-canary-deployment-using-cli)

## Creare una distribuzione Canary utilizzando la console API Gateway
<a name="create-canary-deployment-using-console"></a>

Per usare la console API Gateway per creare una distribuzione di una release Canary, segui queste istruzioni:<a name="to-create-canary-release-on-new-deployment"></a>

**Per creare la distribuzione di una release Canary iniziale**

1.  Accedere alla console API Gateway.

1.  Crea una nuova REST API o scegline una esistente.

1.  Nel riquadro di navigazione principale scegli **Risorse**, quindi seleziona **Distribuisci l'API**. Seguire le istruzioni visualizzate sullo schermo in **Deploy API (Distribuisci API)** per distribuire l'API in una nuova fase. 

   Al momento, l'API è stata distribuita in una fase della release di produzione. Configura quindi le impostazioni Canary nella fase e, se necessario, abilita il caching, imposta le variabili di fase o configura i log degli accessi o delle esecuzioni dell'API.

1.  **Per abilitare la memorizzazione nella cache delle API o associare un ACL AWS WAF web allo stage, nella sezione **Dettagli dello stage**, scegli Modifica.** Per ulteriori informazioni, consulta [Impostazioni della cache per REST APIs in API Gateway](api-gateway-caching.md) o [Per associare un ACL AWS WAF Web a uno stadio API Gateway API utilizzando la console API Gateway](apigateway-control-access-aws-waf.md#apigateway-control-access-aws-waf-console).

1.  Per configurare la registrazione degli accessi o delle esecuzioni, scegli **Modifica** nella sezione **Log e tracciamento** e segui le istruzioni visualizzate sullo schermo. Per ulteriori informazioni, consulta [Configurare la CloudWatch registrazione per REST APIs in API Gateway](set-up-logging.md).

1. Per impostare le variabili di fase, scegli la scheda **Variabili di fase** e segui le istruzioni visualizzate sullo schermo per aggiungere o modificare le variabili di fase. Per ulteriori informazioni, consulta [Utilizzo delle variabili di fase per una REST API in Gateway API](stage-variables.md).

1.  Scegli la scheda **Canary**, quindi seleziona **Crea Canary**. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda **Canary**.

1.  In **Impostazioni di Canary**, inserisci in **Canary** la percentuale di richieste da deviare al Canary.

1. Se lo desideri, seleziona **Cache della fase** per attivare il caching per la release Canary. La cache non è disponibile per la release Canary fino a quando non viene abilitato il caching dell'API.

1. Per sovrascrivere le variabili di fase esistenti, inserisci in **Sostituzione canary** un nuovo valore per la variabile di fase.

Dopo l'inizializzazione della release Canary nella fase di distribuzione, puoi modificare l'API e testare le modifiche. Puoi ridistribuire l'API nella stessa fase in modo che sia la versione di base che quella aggiornata siano accessibili tramite la stessa fase. Di seguito viene descritto come fare. <a name="to-deploy-latest-api-to-canary-release"></a>

**Per distribuire la versione API più recente in una release Canary**

1.  Con ogni aggiornamento dell'API scegli **Distribuisci l'API.**

1.  In **Distribuisci l'API** scegli la fase contenente un canary nell'elenco a discesa **Fase della distribuzione**. 

1.  (Facoltativo) Immetti una descrizione in **Descrizione distribuzione**. 

1.  Scegliere **Deploy (Distribuisci)** per inviare la versione API più recente alla release Canary.

1.  Se lo desideri, riconfigura le impostazioni della fase, i log o le impostazioni Canary, come descritto in [Per creare la distribuzione di una release Canary iniziale](#to-create-canary-release-on-new-deployment).

 La release Canary punta ora alla versione più recente, mentre la release di produzione continua a puntare alla versione iniziale dell'API. Per [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) è ora presente un nuovo valore **deploymentId**, mentre la fase ha ancora il valore [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) iniziale. In background la console chiama [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html).

## Crea una distribuzione Canary utilizzando il AWS CLI
<a name="create-canary-deployment-using-cli"></a>

**Per creare una distribuzione canary per una nuova fase**

1. Utilizza il seguente comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) per creare un’implementazione con due variabili di fase, ma senza un canary:

   ```
   aws apigateway create-deployment \
       --variables sv0=val0,sv1=val1 \
       --rest-api-id abcd1234 \
       --stage-name 'prod'
   ```

   L'output sarà simile al seguente:

   ```
   {
       "id": "du4ot1", 
       "createdDate": 1511379050
   }
   ```

1. Utilizza il seguente comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) per creare una distribuzione canary per la fase `prod`:

   ```
   aws apigateway create-deployment \
       --rest-api-id abcd1234 \
       --canary-settings percentTraffic=10.5,stageVariableOverrides={sv1='val2',sv2='val3'},useStageCache=false \
       --stage-name 'prod'
   ```

   L'output sarà simile al seguente:

   ```
   {
       "id": "a6rox0", 
       "createdDate": 1511379433
   }
   ```

   Il valore `id` della distribuzione risultante identifica la versione di verifica dell'API per la release Canary. Di conseguenza, la fase associata è abilitata per la release Canary.

1. (Facoltativo) Utilizza il seguente comando [get-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-stage.html) per visualizzare la rappresentazione della fase:

   ```
   aws apigateway get-stage --rest-api-id acbd1234 --stage-name prod
   ```

   Di seguito è illustrata una rappresentazione dell'oggetto `Stage` come output del comando:

   ```
   {
       "stageName": "prod", 
       "variables": {
           "sv0": "val0", 
           "sv1": "val1"
       }, 
       "cacheClusterEnabled": false, 
       "cacheClusterStatus": "NOT_AVAILABLE", 
       "deploymentId": "du4ot1", 
       "lastUpdatedDate": 1511379433, 
       "createdDate": 1511379050, 
       "canarySettings": {
           "percentTraffic": 10.5, 
           "deploymentId": "a6rox0", 
           "useStageCache": false, 
           "stageVariableOverrides": {
               "sv2": "val3", 
               "sv1": "val2"
           }
       }, 
       "methodSettings": {}
   }
   ```

   In questo esempio la versione di base dell'API usa le variabili di fase `{"sv0":val0", "sv1":val1"}`, mentre la versione di test usa le variabili di fase `{"sv1":val2", "sv2":val3"}`. Sia la release di produzione che la release Canary usano la stessa variabile di fase `sv1`, ma con valori diversi, `val1` e `val2`, rispettivamente. La variabile di fase `sv0` viene usata unicamente nella release di produzione e la variabile di fase `sv2` viene usata unicamente nella release Canary. 

È anche possibile creare una distribuzione di rilascio canary da un’implementazione standard esistente aggiornando la fase per abilitare un canary.

**Per creare una distribuzione di rilascio canary da un’implementazione esistente**

1. Utilizza il comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) per creare un’implementazione senza un canary:

   ```
   aws apigateway create-deployment \
       --variables sv0=val0,sv1=val1 \  
       --rest-api-id abcd1234 \
       --stage-name 'beta'
   ```

1. Utilizza il comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) per aggiornare la fase e abilitare un canary:

   ```
   aws apigateway update-stage \
       --rest-api-id abcd1234 \
       --stage-name 'beta' \
       --patch-operations '[{
               "op": "replace",
               "value": "0.0",
               "path": "/canarySettings/percentTraffic"
           }, {
               "op": "copy",
               "from": "/canarySettings/stageVariableOverrides",
               "path": "/variables"
           }, {
               "op": "copy",
               "from": "/canarySettings/deploymentId",
               "path": "/deploymentId"
           }]'
   ```

   L'output sarà simile al seguente:

   ```
   {
       "stageName": "beta", 
       "variables": {
           "sv0": "val0", 
           "sv1": "val1"
       }, 
       "cacheClusterEnabled": false, 
       "cacheClusterStatus": "NOT_AVAILABLE", 
       "deploymentId": "cifeiw", 
       "lastUpdatedDate": 1511381930, 
       "createdDate": 1511380879, 
       "canarySettings": {
           "percentTraffic": 10.5, 
           "deploymentId": "cifeiw", 
           "useStageCache": false, 
           "stageVariableOverrides": {
               "sv2": "val3", 
               "sv1": "val2"
           }
       }, 
       "methodSettings": {}
   }
   ```

   Poiché è stato abilitato un canary in una versione esistente dell’API, sia il rilascio di produzione (`Stage`) sia il rilascio canary (`canarySettings`) puntano alla stessa implementazione. Dopo aver modificato l'API e averla distribuita di nuovo in questa fase, la nuova versione sarà nella release Canary, mentre la versione di base rimane nella release di produzione. Ciò si manifesta nell'evoluzione della fase quando il valore `deploymentId` nella release Canary viene aggiornato al valore `id` della nuova distribuzione e il valore `deploymentId` nella release di produzione rimane invariato.

# Aggiornamento di una release Canary
<a name="update-canary-deployment"></a>

 Dopo la distribuzione di una release Canary, è possibile modificare la percentuale di traffico nella release Canary oppure abilitare o disabilitare l'uso di una cache di fase per ottimizzare le prestazioni di test. È anche possibile modificare le variabili di fase usate nella release Canary quando il contesto di esecuzione viene aggiornato. Per eseguire tali aggiornamenti, chiama l'operazione [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) con i nuovi valori in [canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings). 

Puoi aggiornare una versione Canary utilizzando la console API Gateway, il comando AWS CLI [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) o un SDK. AWS 

**Topics**
+ [Aggiornare una release Canary utilizzando la console API Gateway](#update-canary-deployment-using-console)
+ [Aggiorna una versione Canary utilizzando il AWS CLI](#update-canary-deployment-using-cli)

## Aggiornare una release Canary utilizzando la console API Gateway
<a name="update-canary-deployment-using-console"></a>

Per usare la console API Gateway per aggiornare le impostazioni Canary esistenti in una fase, esegui queste operazioni:

**Per aggiornare le impostazioni di Canary esistenti**

1.  Accedi alla console Gateway API e scegli una REST API esistente.

1.  Nel riquadro di navigazione principale scegli **Fasi**, quindi seleziona una fase esistente.

1.  Seleziona la scheda **Canary**, quindi scegli **Modifica**. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda **Canary**. 

1.  Aggiorna il campo **Distribuzione richiesta** aumentando o diminuendo il valore percentuale scegliendo un numero compreso tra 0,0 e 100,0 inclusi. 

1.  Seleziona o deseleziona la casella di controllo **Cache della fase**. 

1.  Aggiungi, rimuovi o modifica le **Variabili di fase di Canary**.

1.  Scegli **Save** (Salva).

## Aggiorna una versione Canary utilizzando il AWS CLI
<a name="update-canary-deployment-using-cli"></a>

Per usare AWS CLI per aggiornare un canary, usa il [https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)comando e modifica l'operazione di patch per ogni parametro del canary.

Il comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) seguente aggiorna se il canary utilizza la cache della fase:

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/useStageCache,value=true
```

Il comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) seguente aggiorna la percentuale di traffico del canary:

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/percentTraffic,value=25.0
```

Il comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) seguente aggiorna le variabili di fase. L’esempio mostra come creare una nuova variabile di fase denominata `newVar`, sostituire la variabile di fase `var2` e rimuovere la variabile di fase `var1`:

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}'  \
    --patch-operations '[{                                      
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                      
      }, { 
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/var2",   
        "value": "val4"                                        
      }, {                                                      
        "op": "remove",                                         
        "path": "/canarySettings/stageVariableOverrides/var1"    
      }]'
```

È possibile aggiornare tutti gli elementi precedenti combinando le operazioni in un singolo valore `patch-operations`:

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations '[{                                       
        "op": "replace",                                         
        "path": "/canarySettings/percentTraffic",                        
        "value": "20.0"                                          
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/useStageCache",                        
        "value": "true"                                          
    }, {                                                         
        "op": "remove",                                          
        "path": "/canarySettings/stageVariableOverrides/var1"    
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                        
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/val2",   
        "value": "val4"                                          
      }]'
```



# Promozione di una release Canary
<a name="promote-canary-deployment"></a>

Quando si promuove una release canary, questa sostituisce le impostazioni correnti della fase. La promozione di una release Canary non comporta la disabilitazione della release Canary nella fase. Per disabilitare una release Canary, è necessario rimuovere le impostazioni Canary nella fase. Per promuovere una release canary, procedi come descritto di seguito.
+ Reimpostazione dell'[ID distribuzione](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) della fase con le impostazioni dell'[ID distribuzione](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) della release Canary. Questa operazione comporta l'aggiornamento dello snapshot API della fase con lo snapshot della release Canary e l'impostazione della versione di test come release di produzione.
+ Aggiornamento delle variabili di fase con le variabili di fase della release Canary, se presenti. Questa operazione comporta l'aggiornamento del contesto di esecuzione dell'API della fase con quello della release Canary. Senza questo aggiornamento, la nuova versione API può produrre risultati imprevisti se la versione di test usa variabili di fase diverse o valori diversi delle variabili di fase esistenti.
+ Impostazione della percentuale del traffico della release Canary su 0,0%.

**Topics**
+ [Promuovere una release Canary utilizzando la console API Gateway](#promote-canary-release-deployment-console)
+ [Promuovi una versione canaria usando il AWS CLI](#promote-canary-release-cli)

## Promuovere una release Canary utilizzando la console API Gateway
<a name="promote-canary-release-deployment-console"></a>

Per usare la console API Gateway per promuovere una distribuzione di una release Canary, esegui queste operazioni:

**Per promuovere l'implementazione di una release Canary**

1.  Accedi alla console API Gateway e seleziona un'API esistente nel riquadro di navigazione principale.

1.  Nel riquadro di navigazione principale scegli **Fasi**, quindi seleziona una fase esistente.

1.  Scegli la scheda **Canary**.

1.  Scegli **Promuovi Canary**.

1.  Verifica le modifiche da apportare e scegli **Promuovi Canary**.

Dopo la promozione, la release di produzione fa riferimento alla stessa versione API (**deploymentId**) della release Canary. È possibile verificarlo utilizzando il. AWS CLI Per un esempio, consulta [Promuovi una versione canaria usando il AWS CLI](#promote-canary-release-cli). 

## Promuovi una versione canaria usando il AWS CLI
<a name="promote-canary-release-cli"></a>

Per promuovere una versione canary alla versione di produzione utilizzando AWS CLI i comandi, chiamate il `update-stage` comando per copiare il file canary-associato `deploymentId` a quello associato allo stage`deploymentId`, per reimpostare la percentuale di traffico canarino a zero (`0.0`) e per copiare qualsiasi variabile dello stage canary-bound su quelle corrispondenti. 

Supponiamo di avere una distribuzione di rilascio di Canary, descritta da una fase simile alla seguente: 

```
{
    "_links": {
        ...
    },
    "accessLogSettings": {
        ...
    },
    "cacheClusterEnabled": false,
    "cacheClusterStatus": "NOT_AVAILABLE",
    "canarySettings": {
        "deploymentId": "eh1sby",
        "useStageCache": false,
        "stageVariableOverrides": {
            "sv2": "val3",
            "sv1": "val2"
        },
        "percentTraffic": 10.5
    },
    "createdDate": "2017-11-20T04:42:19Z",
    "deploymentId": "nfcn0x",
    "lastUpdatedDate": "2017-11-22T00:54:28Z",
    "methodSettings": {
        ...
    },
    "stageName": "prod",
    "variables": {
        "sv1": "val1"
    }
}
```

Utilizza il seguente comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) per promuovere il canary:

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id}  \
    --stage-name '{stage-name}'  \
    --patch-operations '[{                                
        "op": "replace",                                  
        "value": "0.0",                                    
        "path": "/canarySettings/percentTraffic"         
      }, {                                                
        "op": "copy",                                     
        "from": "/canarySettings/stageVariableOverrides", 
        "path": "/variables"                             
      }, {                                                
        "op": "copy",                                     
        "from": "/canarySettings/deploymentId",           
        "path": "/deploymentId"                           
      }]'
```

L'output sarà simile al seguente:

```
{
    "_links": {
        ...
    },
    "accessLogSettings": {
        ...
    },
    "cacheClusterEnabled": false,
    "cacheClusterStatus": "NOT_AVAILABLE",
    "canarySettings": {
        "deploymentId": "eh1sby",
        "useStageCache": false,
        "stageVariableOverrides": {
            "sv2": "val3",
            "sv1": "val2"
        },
        "percentTraffic": 0
    },
    "createdDate": "2017-11-20T04:42:19Z",
    "deploymentId": "eh1sby",
    "lastUpdatedDate": "2017-11-22T05:29:47Z",
    "methodSettings": {
        ...
    },
    "stageName": "prod",
    "variables": {
        "sv2": "val3",
        "sv1": "val2"
    }
}
```

La promozione di una release canary nella fase non disabilita il canary e l'implementazione rimane un'implementazione di release canary. Per renderla una normale distribuzione di produzione, è necessario disabilitare le impostazioni Canary. Per ulteriori informazioni su come disabilitare una distribuzione di release Canary, consulta [Disabilitazione di una release Canary](delete-canary-deployment.md).

# Disabilitazione di una release Canary
<a name="delete-canary-deployment"></a>

Per disabilitare l'implementazione di una release Canary, è necessario impostare [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) su null per rimuoverla dalla fase. 

Puoi disabilitare una distribuzione Canary Release utilizzando la console API Gateway AWS CLI, o un AWS SDK.

**Topics**
+ [Disabilitazione di una release Canary utilizzando la console Gateway API](#delete-canary-release-console)
+ [Disattiva una versione canary usando il AWS CLI](#delete-canary-release-cli)

## Disabilitazione di una release Canary utilizzando la console Gateway API
<a name="delete-canary-release-console"></a>

Per usare la console Gateway API per disabilitare l'implementazione di una release Canary, procedi come segue:

**Per disabilitare l'implementazione di una release Canary**

1. Accedi alla console Gateway API e seleziona un'API esistente nel riquadro di navigazione principale.

1. Nel riquadro di navigazione principale scegli **Fasi**, quindi seleziona una fase esistente.

1.  Scegli la scheda **Canary**.

1.  Scegli **Elimina**.

1.  Confermare che si desidera eliminare la release Canary scegliendo **Delete (Elimina)**.

Di conseguenza, la proprietà [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) diventa `null` e viene rimossa dalla [fase](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) di distribuzione. Puoi verificarlo utilizzando. AWS CLI Per un esempio, consulta [Disattiva una versione canary usando il AWS CLI](#delete-canary-release-cli).

## Disattiva una versione canary usando il AWS CLI
<a name="delete-canary-release-cli"></a>

Il comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) seguente disattiva la distribuzione di rilascio canary:

```
aws apigateway update-stage \
    --rest-api-id abcd1234 \
    --stage-name canary \
    --patch-operations '[{"op":"remove", "path":"/canarySettings"}]'
```

L'output sarà simile al seguente:

```
{
    "stageName": "prod", 
    "accessLogSettings": {
        ...
    }, 
    "cacheClusterEnabled": false, 
    "cacheClusterStatus": "NOT_AVAILABLE", 
    "deploymentId": "nfcn0x", 
    "lastUpdatedDate": 1511309280, 
    "createdDate": 1511152939, 
    "methodSettings": {
        ...
    }
}
```

 Come illustrato nell’output, la proprietà [canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) non è più presente nella [fase](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) della distribuzione di rilascio canary disabilitata.

# Aggiornamenti a REST APIs che richiedono una ridistribuzione
<a name="updating-api"></a>

Gestire un'API significa visualizzare, aggiornare ed eliminare le configurazioni API esistenti. Puoi gestire un'API utilizzando la console API Gateway, AWS CLI CloudFormation, un SDK o l'API REST API Gateway. L'aggiornamento di un'API implica la modifica di determinate proprietà delle risorse o delle impostazioni di configurazione dell'API. Gli aggiornamenti delle risorse richiedono una nuova implementazione dell'API, operazione non necessaria per gli aggiornamenti di configurazione. 

La tabella seguente descrive le risorse API che richiedono una nuova implementazione dell'API quando vengono aggiornate. 


| Risorsa | Note | 
| --- | --- | 
| [ApiKey](https://docs.aws.amazon.com/apigateway/latest/api/API_ApiKey.html) | Per le proprietà applicabili e le operazioni supportate, consulta [apikey:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateApiKey.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [Authorizer](https://docs.aws.amazon.com/apigateway/latest/api/API_Authorizer.html) | Per le proprietà applicabili e le operazioni supportate, consulta [authorizer:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateAuthorizer.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
|  [disableExecuteApiEndpoint](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRestApi.html#apigw-UpdateRestApi-response-disableExecuteApiEndpoint) | L’aggiornamento richiede la modifica di una fase per l’API, ad esempio una nuova implementazione dell’API in una fase. | 
| [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPart.html) | Per le proprietà applicabili e le operazioni supportate, consulta [documentationpart:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateDocumentationPart.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [DocumentationVersion](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationVersion.html) | Per le proprietà applicabili e le operazioni supportate, consulta [documentationversion:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateDocumentationVersion.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [GatewayResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_GatewayResponse.html) | Per le proprietà applicabili e le operazioni supportate, consulta [gatewayresponse:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateGatewayResponse.html#remarks). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [Integration](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html) |  Per le proprietà applicabili e le operazioni supportate, consulta [integration:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateIntegration.html). L'aggiornamento richiede la ridistribuzione dell'API.  | 
| [IntegrationResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_IntegrationResponse.html) | Per le proprietà applicabili e le operazioni supportate, consulta [integrationresponse:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateIntegrationResponse.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [Metodo](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html) | Per le proprietà applicabili e le operazioni supportate, consulta [method:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateMethod.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [MethodResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html) | Per le proprietà applicabili e le operazioni supportate, consulta [methodresponse:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateMethodResponse.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [Modello](https://docs.aws.amazon.com/apigateway/latest/api/API_Model.html) | Per le proprietà applicabili e le operazioni supportate, consulta [model:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateModel.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [RequestValidator](https://docs.aws.amazon.com/apigateway/latest/api/API_RequestValidator.html) | Per le proprietà applicabili e le operazioni supportate, consulta [requestvalidator:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRequestValidator.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [Risorsa](https://docs.aws.amazon.com/apigateway/latest/api/API_Resource.html) | Per le proprietà applicabili e le operazioni supportate, consulta [resource:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateResource.html). L'aggiornamento richiede la ridistribuzione dell'API. | 
| [RestApi](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRestApi.html) | Per le proprietà applicabili e le operazioni supportate, consulta [restapi:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRestApi.html). L'aggiornamento richiede la ridistribuzione dell'API. È inclusa la modifica delle policy di risorse. | 
| [VpcLink](https://docs.aws.amazon.com/apigateway/latest/api/API_VpcLink.html) | Per le proprietà applicabili e le operazioni supportate, consulta [vpclink:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateVpcLink.html). L'aggiornamento richiede la ridistribuzione dell'API. | 

La tabella seguente descrive le configurazioni API che non richiedono una nuova implementazione dell'API quando vengono aggiornate.


| Configurazione | Note | 
| --- | --- | 
| [Account](https://docs.aws.amazon.com/apigateway/latest/api/API_GetAccount.html) |  Per le proprietà applicabili e le operazioni supportate, consulta [account:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateAccount.html). L'aggiornamento non richiede la ridistribuzione dell'API.  | 
| [Distribuzione](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html) | Per le proprietà applicabili e le operazioni supportate, consulta [deployment:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateDeployment.html).  | 
| [DomainName](https://docs.aws.amazon.com/apigateway/latest/api/API_DomainName.html) | Per le proprietà applicabili e le operazioni supportate, consulta [domainname:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateDomainName.html). L'aggiornamento non richiede la ridistribuzione dell'API. | 
| [BasePathMapping](https://docs.aws.amazon.com/apigateway/latest/api/API_BasePathMapping.html) |  Per le proprietà applicabili e le operazioni supportate, consulta [basepathmapping:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateBasePathMapping.html). L'aggiornamento non richiede la ridistribuzione dell'API.  | 
| [Tipo di indirizzo IP](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) |  L'aggiornamento non richiede la ridistribuzione dell'API.  | 
| [Fase](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) |  Per le proprietà applicabili e le operazioni supportate, consulta [stage:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html). L'aggiornamento non richiede la ridistribuzione dell'API.  | 
| [Utilizzo](https://docs.aws.amazon.com/apigateway/latest/api/API_GetUsage.html) |  Per le proprietà applicabili e le operazioni supportate, consulta [usage:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateUsage.html). L'aggiornamento non richiede la ridistribuzione dell'API.  | 
| [UsagePlan](https://docs.aws.amazon.com/apigateway/latest/api/API_UsagePlan.html) | Per le proprietà applicabili e le operazioni supportate, consulta [usageplan:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateUsagePlan.html). L'aggiornamento non richiede la ridistribuzione dell'API. | 