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à.
Registrazione degli accessi per le API REST
Nella registrazione degli accessi, registri chi ha avuto accesso alla tua API e in che modo il chiamante ha effettuato l'accesso all'API. Puoi creare il tuo gruppo di log o scegliere un gruppo di log esistente. Per specificare i dettagli di accesso, seleziona le variabili $context, un formato di log e un gruppo di log come destinazione.
Formati di log di accesso
Il formato del log di accesso deve includere almeno $context.requestId o $context.extendedRequestId. È consigliabile includerli entrambi nel formato di registro.
$context.requestId-
In questo modo il valore dell'intestazione
x-amzn-RequestIdviene registrato nel log. I client possono sostituire il valore nell'intestazionex-amzn-RequestIdcon un valore nel formato di un identificatore univoco universale (UUID). API Gateway restituisce questo ID richiesta nell'intestazione della risposta dix-amzn-RequestId. Gateway API sostituisce gli ID di richiesta sovrascritti che non sono nel formato di un UUID connei log di accesso.UUID_REPLACED_INVALID_REQUEST_ID $context.extendedRequestId-
Il valore di extendedRequestID è un ID univoco generato da Gateway API. API Gateway restituisce questo ID richiesta nell'intestazione della risposta di
x-amz-apigw-id. Un caller API non può fornire o ignorare questo ID di richiesta. Potrebbe essere necessario fornire questo valore all' AWS assistenza per risolvere i problemi relativi all'API. Per ulteriori informazioni, consulta Variabili per la registrazione dei log degli accessi per Gateway API.
Seleziona un formato di log adottato anche dal back-end analitico, ad esempio Common Log Format
Esempi di alcuni formati di log delle operazioni di accesso utilizzati con maggiore frequenza sono mostrati nella console API Gateway ed elencati qui di seguito.
-
CLF(Common Log Format): $context.identity.sourceIp $context.identity.caller $context.identity.user [$context.requestTime]"$context.httpMethod $context.resourcePath $context.protocol" $context.status $context.responseLength $context.requestId $context.extendedRequestId -
JSON:{ "requestId":"$context.requestId", "extendedRequestId":"$context.extendedRequestId","ip": "$context.identity.sourceIp", "caller":"$context.identity.caller", "user":"$context.identity.user", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod", "resourcePath":"$context.resourcePath", "status":"$context.status", "protocol":"$context.protocol", "responseLength":"$context.responseLength" } -
XML:<request id="$context.requestId"> <extendedRequestId>$context.extendedRequestId</extendedRequestId> <ip>$context.identity.sourceIp</ip> <caller>$context.identity.caller</caller> <user>$context.identity.user</user> <requestTime>$context.requestTime</requestTime> <httpMethod>$context.httpMethod</httpMethod> <resourcePath>$context.resourcePath</resourcePath> <status>$context.status</status> <protocol>$context.protocol</protocol> <responseLength>$context.responseLength</responseLength> </request> -
CSV(valori separati da virgola):$context.identity.sourceIp,$context.identity.caller,$context.identity.user,$context.requestTime,$context.httpMethod,$context.resourcePath,$context.protocol,$context.status,$context.responseLength,$context.requestId,$context.extendedRequestId
Configura la registrazione degli accessi utilizzando la console API Gateway
Prima di configurare la registrazione degli accessi, implementa l'API in una fase e configura un ARN del ruolo CloudWatch Logs appropriato per il tuo account.
Accedi alla console API Gateway all'indirizzo. https://console.aws.amazon.com/apigateway
-
Nel riquadro di navigazione principale scegli API, quindi esegui una delle seguenti operazioni:
-
Seleziona un'API esistente e quindi scegli una fase.
-
Crea un'API e implementala in una fase.
-
-
Nel riquadro di navigazione principale scegli Fasi.
-
Nella sezione Log e tracciamento scegli Modifica.
-
Attiva Registrazione accesso personalizzato.
-
Immetti l'ARN di un gruppo di log in ARN di destinazione del log degli accessi. Il formato dell'ARN è
arn:aws:logs:.{region}:{account-id}:log-group:log-group-name -
In Formato dei log immetti un formato di log. Puoi scegliere CLF, JSON, XML o CSV. Per ulteriori informazioni sui formati di log di esempio, consulta Formati di log di accesso.
-
Scegli Save changes (Salva modifiche).
API Gateway ora è pronto a registrare i log delle richieste all'API. Non è necessario ridistribuire l'API quando si aggiornano le impostazioni delle fasi, i log o le variabili delle fasi.
Configura la registrazione degli accessi utilizzando CloudFormation
Utilizza il seguente CloudFormation modello di esempio per creare un gruppo di CloudWatch log di Amazon Logs e configurare la registrazione degli accessi per una fase. Per abilitare CloudWatch i log, devi concedere ad API Gateway l'autorizzazione per leggere e scrivere CloudWatch i log del tuo account. Per ulteriori informazioni, consulta Associate account with IAM role nella Guida per l'utente di AWS CloudFormation .
TestStage: Type: AWS::ApiGateway::Stage Properties: StageName: test RestApiId: !Ref MyAPI DeploymentId: !Ref Deployment AccessLogSetting: DestinationArn: !GetAtt MyLogGroup.Arn Format: $context.extendedRequestId $context.identity.sourceIp $context.identity.caller $context.identity.user [$context.requestTime] "$context.httpMethod $context.resourcePath $context.protocol" $context.status $context.responseLength $context.requestId MyLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Join - '-' - - !Ref MyAPI - access-logs