Creazione di una concessione di dati sul contenimento AWS Data Exchange APIs - AWS Data Exchange Guida per l'utente

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

Creazione di una concessione di dati sul contenimento AWS Data Exchange APIs

I seguenti argomenti descrivono il processo di creazione di un set di dati API REST e la sua aggiunta a una concessione di dati che contiene APIs on AWS Data Exchange. È possibile completare il processo utilizzando la AWS Data Exchange console o il AWS Command Line Interface.

Dopo aver configurato l'API REST di Amazon API Gateway, puoi creare un nuovo set di dati API in AWS Data Exchange. Puoi quindi creare una revisione e aggiungere risorse API.

La creazione di una concessione di dati con una risorsa API consente alle richieste dei destinatari a un AWS Data Exchange endpoint di essere inoltrate tramite proxy all'API API Gateway.

Il processo prevede i seguenti passaggi:

Prerequisiti

Prima di poter pubblicare un prodotto contenente APIs, è necessario soddisfare i seguenti prerequisiti:

  • Prima di poterne utilizzare uno qualsiasi Servizio AWS, incluso AWS Data Exchange, è necessario registrarsi AWS e creare un utente amministrativo. Per ulteriori informazioni, consulta Nozioni di base nella Guida per l'utente di AWS IAM Identity Center .

  • La tua API REST deve essere su Amazon API Gateway con un'integrazione che utilizzi un modello di richiesta e risposta appropriato per accedere ai tuoi dati, come Amazon DynamoDB o. AWS Lambda Per ulteriori informazioni, consulta Sviluppo di un'API REST in API Gateway e Utilizzo di REST APIs nella Amazon API Gateway Developer Guide.

    Nota

    Sono supportati solo API Gateway APIs pubblici.

  • L'API REST dell'API Gateway deve essere in grado di autenticare e autorizzare le chiamate dal principale del AWS Data Exchange servizio. Ogni richiesta inviata AWS Data Exchange alla tua API utilizza il protocollo Signature Version 4 (SigV4) firmato con credenziali. AWS Data Exchange AWS Data Exchange funziona con domini personalizzati e mappature di chiavi di dominio.

    Nota

    AWS Data Exchange non supporta Amazon Cognito, No-Auth e gli autorizzatori. AWS Lambda

  • Se l'API REST di API Gateway utilizza un sistema di identità personalizzato per l'autenticazione e l'autorizzazione, configuralo per utilizzare l'autenticazione IAM e importa uno schema OpenAPI che descriva la tua API. AWS Data Exchange richiamerà l'API REST di API Gateway con le proprie credenziali di servizio e includerà informazioni sull'abbonato come l'ID dell'account.

  • L'API REST di API Gateway è responsabile dell'integrazione con il backend. Per ottenere ciò, procedi in uno dei seguenti modi:

    • Allega un token di autenticazione a lunga durata a ogni richiesta che arriva tramite l'API REST del tuo API Gateway che il backend può verificare.

    • Usa API Gateway per richiamare una funzione Lambda in grado di generare credenziali e richiamare la tua API.

L'API viene richiamata in base alla specifica della richiesta di integrazione dell'API.

Per ulteriori informazioni, consulta i seguenti argomenti:

Sicurezza dei set di dati API

AWS Data Exchange crittografa il traffico end-to-end utilizzando Transport Layer Security (TLS) 1.2. Tutti i metadati sono crittografati quando sono inattivi. AWS Data Exchange non memorizzerà le richieste degli abbonati o le risposte dal tuo backend.

Specifiche della richiesta di integrazione API

Un'API on AWS Data Exchange passa attraverso tutte le intestazioni (ad eccezione delle intestazioni elencate inInoltro delle intestazioni), body, metodo http, path e stringhe di query così come sono contenute nella richiesta del cliente e aggiunge le seguenti intestazioni.

// These headers help prevent Confused Deputy attacks. They enable the SourceAccount // and SourceArn variables in IAM policies. 'x-amz-source-account': ACCOUNT_ID, 'x-amz-source-arn': `arn:aws:dataexchange:${REGION}:${OWNER_ACCOUNT_ID}:data-sets/${DATA_SET_ID}/revisions/${REVISION_ID}/assets/${ASSET_ID}`, // These headers identify the API Asset in Data Exchange. 'x-amzn-dataexchange-asset-id': ASSET_ID, 'x-amzn-dataexchange-data-set-id': DATA_SET_ID, 'x-amzn-dataexchange-revision-id': REVISION_ID, // This header identifies the Data Exchange Product. 'x-amzn-dataexchange-product-id': PRODUCT_ID, // This header identifies the caller of Data Exchange. It will contain subscriber // information. 'x-amzn-dataexchange-requester-account-id': REQUESTER_ACCOUNT_ID, // Providers can attach custom metadata in the form of key/value pairs // to a particular subscription. We will send these key/value pairs as stringified // JSON. 'x-amz-dataexchange-subscription-metadata': STRINGIFIED_METADATA,

Inoltro delle intestazioni

AWS Data Exchange rimuove tutte le intestazioni relative all'autenticazione o al namespace ad Amazon prima di inoltrarle a un backend del proprietario dei dati. AWS Data Exchange In particolare, rimuove:

  • Authentication Intestazione

  • Qualsiasi intestazione che inizia con x-amz

L'hostintestazione verrà sovrascritta come conseguenza del proxy.

Fase 1: Aggiornare la politica delle risorse API

Se disponi di un'API REST di Amazon API Gateway che soddisfa i prerequisiti, devi aggiornare la politica delle risorse API per concedere AWS Data Exchange la possibilità di richiamarla quando un abbonato effettua una richiesta per ottenere lo schema della tua API.

Per aggiornare la politica delle risorse API
  1. Aggiungi la seguente politica alla politica delle risorse della tua API:

    { "Effect": "Allow", "Principal": {"Service": "dataexchange.amazonaws.com"}, "Action": "execute-api:Invoke", "Resource": "*", "Condition": {"StringEquals": {"aws:SourceAccount": "<account-id>"}} }
  2. Sostituiscila account-id con l'account che creerà il set di dati dell'API.

    Non è necessario che l'account con la risorsa API Gateway si trovi nello stesso account che sta creando il set di dati.

Questa politica limita queste autorizzazioni alle chiamate effettuate dal responsabile del AWS Data Exchange servizio e richiede che solo l'account possa autorizzarsi AWS Data Exchange all'integrazione con l'API.

Nota

Se hai una politica in materia di risorse che nega esplicitamente AWS Data Exchange di effettuare questa chiamata, devi rimuovere o limitare questa negazione.

Ora sei pronto per creare un set di dati API.

Fase 2: Creare un set di dati API

I set di dati AWS Data Exchange inseriti sono dinamici e il controllo delle versioni avviene mediante revisioni, ciascuna delle quali contiene almeno una risorsa. Per ulteriori informazioni, consulta Dati in AWS Data Exchange.

Utilizzate la AWS Data Exchange console o il AWS Command Line Interface per creare un set di dati API:

Creazione di un set di dati API (console)

Per creare un set di dati API (console)
  1. Apri il browser web e accedi alla AWS Data Exchange console.

  2. Nel riquadro di navigazione a sinistra, in I miei dati, scegli Set di dati di proprietà.

  3. In Set di dati di proprietà, scegli Crea set di dati per aprire la procedura guidata di creazione dei set di dati.

  4. In Seleziona il tipo di set di dati, scegli l'API Amazon API Gateway.

  5. In Definisci set di dati, inserisci un nome e una descrizione per il set di dati. Per ulteriori informazioni, consulta Le migliori pratiche relative ai set di dati.

  6. (Facoltativo) In Aggiungi tag: facoltativo, aggiungi tag.

  7. Scegli Create (Crea) .

Ora sei pronto per creare una revisione.

Creazione di un set di dati API ()AWS CLI

Per creare un set di dati API (CLI)
  1. Usa il create-data-set comando per creare un set di dati API:

    $ AWS dataexchange create-data-set \ -\\-asset-type API_GATEWAY_API \ -\\-description 'Data Set Description' \ -\\-name 'Data Set Name' { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:data-sets/$DATA_SET_ID", "AssetType": "API_GATEWAY_API", "CreatedAt": "2021-09-11T00:16:46.349000+00:00", "Description": "Data Set Description", "Id": "$DATA_SET_ID", "Name": "Data Set Name", "Origin": "OWNED", "UpdatedAt": "2021-09-11T00:16:46.349000+00:00" }
  2. Nota il nuovo tipo di risorsa diAPI_GATEWAY_API.

Ora sei pronto per creare una revisione.

Fase 3: Creare una revisione

Nella procedura seguente, crei una revisione dopo aver creato un set di dati. Per ulteriori informazioni, consulta Revisioni.

Utilizzate la AWS Data Exchange console o il AWS Command Line Interface per creare una revisione:

Creazione di una revisione (console)

Per creare una revisione (console)
  1. Nella sezione Panoramica del set di dati della pagina dei dettagli del set di dati:

    1. (Facoltativo) Scegliete Modifica nome per modificare le informazioni sul set di dati.

    2. (Facoltativo) Scegliete Elimina per eliminare il set di dati.

  2. Nella sezione Revisioni, scegli Crea revisione.

  3. In Definisci revisione, fornisci un commento facoltativo per la revisione che descriva lo scopo della revisione.

  4. (Facoltativo) In Aggiungi tag: facoltativo, aggiungi i tag associati alla risorsa.

  5. Scegli Crea revisione.

  6. Rivedi, modifica o elimina le modifiche del passaggio precedente.

Ora sei pronto per aggiungere risorse API alla revisione.

Creazione di una revisione ()AWS CLI

Per creare una revisione ()AWS CLI
  1. Utilizzate il create-revision comando per creare una revisione:

    $ AWS dataexchange create-revision \ -\\-data-set-id $DATA_SET_ID \ -\\-comment 'First Atlas Revision' { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:data-sets/$DATA_SET_ID/revisions/$REVISION_ID", "Comment": "First Atlas Revision", "CreatedAt": "2021-09-11T00:18:49.160000+00:00", "DataSetId": "$DATA_SET_ID", "Finalized": false, "Id": "$REVISION_ID", "UpdatedAt": "2021-09-11T00:18:49.160000+00:00" }
  2. Aggiungi le risorse API alla revisione.

    Nota

    Dovrai conoscere l'ID dell'API REST API Gateway che desideri importare e lo stage.

Fase 4: Aggiungere risorse API a una revisione

Le risorse API contengono le informazioni di cui gli abbonati hanno bisogno per effettuare chiamate alla tua API. Per ulteriori informazioni, consulta Asset.

Nella procedura seguente, importate le risorse di dati e quindi finalizzate la revisione.

Utilizzate la AWS Data Exchange console o il AWS CLI per aggiungere risorse a una revisione:

Aggiungere risorse API a una revisione (console)

Per aggiungere risorse alla revisione (console)
  1. Nella sezione Risorse API della pagina dei dettagli del set di dati, scegli Aggiungi fase API.

  2. Nella fase Seleziona API, per l'API Amazon API Gateway, inserisci un'API nella casella di input o scegli una delle seguenti opzioni dall'elenco a discesa:

    • API in un'altra Account AWS: si tratta di un'API multiaccount alla quale ti è stata concessa l'autorizzazione ad accedere.

    • In questa Account AWS, questa è un'API nella tua Account AWS.

    1. Se hai scelto API in un altro campo Account AWS, inserisci l'ID API e il nome della fase API nelle caselle di input.

    2. Se hai scelto In questo campo Account AWS, scegli il nome dell'API Stage dall'elenco a discesa

    Nota

    Puoi creare una nuova fase dell'API scegliendo Crea nuova e seguendo i passaggi nella modalità Crea nuova API su Amazon API Gateway. Una volta creata la nuova fase, ripeti il passaggio 2.

  3. In Configurazione avanzata, opzionale, puoi scegliere di collegare il piano di utilizzo esistente di Amazon API Gateway per utilizzare i limiti di limitazione e quota definiti nel piano di utilizzo esistente e inserire la chiave API.

  4. In Document API per abbonati, fornisci i dettagli sull'API che i destinatari vedranno dopo aver accettato la concessione dei dati.

    1. Per il nome dell'API, inserisci un nome che i destinatari possano utilizzare per identificare la risorsa API.

      Nota

      Se Account AWSè stato selezionato un In this, il nome dell'API viene compilato automaticamente, e potete modificarlo se necessario.

      Se Account AWSè stata selezionata un'API in un'altra, il nome dell'API viene compilato con un nome predefinito, che è necessario modificare in modo che il destinatario possa capire facilmente di cosa si tratta.

    2. Per le specifiche di OpenAPI 3.0, puoi:

      1. Inserisci o copia e incolla il file delle specifiche OpenAPI 3.0.

      2. Scegliete Importa dal file.JSON, quindi selezionate il file.json dal computer locale da importare.

        La specifica importata viene visualizzata nella casella.

      3. Scegli Importa da Amazon API Gateway, quindi scegli una specifica da importare.

        La specifica importata viene visualizzata nella casella.

    3. Per la documentazione aggiuntiva, facoltativa, inserisci tutte le informazioni aggiuntive utili per consentire all'abbonato di conoscere la tua API. Markdown è supportato.

    Nota

    Non è possibile modificare la specifica OpenAPI e la documentazione aggiuntiva dopo aver aggiunto questa risorsa a una revisione.

    Se desideri aggiornare queste informazioni e la revisione non è stata completata, puoi sostituire la risorsa.

    Se desiderate aggiornare queste informazioni e la revisione è completata, potete creare una nuova revisione con la risorsa aggiornata.

  5. Scegliete la fase Aggiungi API.

    Viene avviato un processo per importare la risorsa (in questo caso, l'API) nel set di dati.

    Nota

    Se non disponi di un'API su Amazon API Gateway, ti verrà richiesto di crearne una.

  6. Al termine del lavoro, il campo Stato nella sezione Lavori viene aggiornato a Completato.

  7. Se hai altro APIs da aggiungere, ripeti il passaggio 2.

  8. Nella sezione Panoramica delle revisioni, esamina la revisione e le relative risorse.

  9. Scegli Finalizza.

Hai finalizzato con successo una revisione per un set di dati.

È possibile modificare una revisione o eliminare una revisione prima di aggiungerla a una concessione di dati.

Ora sei pronto per creare una nuova concessione di dati contenente. APIs

Aggiungere risorse API a una revisione ()AWS CLI

È possibile aggiungere risorse API eseguendo un IMPORT_ASSET_FROM_API_GATEWAY_API processo.

Per aggiungere risorse API a una revisione (AWS CLI):
  1. Utilizzate il create-job comando per aggiungere risorse API alla revisione:

    $ AWS dataexchange create-job \ -\\-type IMPORT_ASSET_FROM_API_GATEWAY_API \ -\\-details '{"ImportAssetFromApiGatewayApi":{"DataSetId":"$DATA_SET_ID","RevisionId":"$REVISION_ID","ApiId":"$API_ID","Stage":"$API_STAGE","ProtocolType":"REST"}}' { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:jobs/$JOB_ID", "CreatedAt": "2021-09-11T00:38:19.875000+00:00", "Details": { "ImportAssetFromApiGatewayApi": { "ApiId": "$API_ID", "DataSetId": "$DATA_SET_ID", "ProtocolType": "REST", "RevisionId": "$REVISION_ID", "Stage": "$API_STAGE" } }, "Id": "$JOB_ID", "State": "WAITING", "Type": "IMPORT_ASSET_FROM_API_GATEWAY_API", "UpdatedAt": "2021-09-11T00:38:19.875000+00:00" } $ AWS dataexchange start-job -\\-job-id $JOB_ID $ AWS dataexchange get-job -\\-job-id $JOB_ID { "Arn": "arn:aws:dataexchange:us-east-1:0123456789012:jobs/$JOB_ID", "CreatedAt": "2021-09-11T00:38:19.875000+00:00", "Details": { "ImportAssetFromApiGatewayApi": { "ApiId": "$API_ID", "DataSetId": "$DATA_SET_ID", "ProtocolType": "REST", "RevisionId": "$REVISION_ID", "Stage": "$API_STAGE" "ApiEndpoint": "string", "ApiKey": "string", "ApiName": "string", "ApiDescription": "string", "ApiSpecificationDownloadUrl": "string", "ApiSpecificationDownloadUrlExpiresAt": "string" } }, "Id": "$JOB_ID", "State": "COMPLETED", "Type": "IMPORT_ASSET_FROM_API_GATEWAY_API", "UpdatedAt": "2021-09-11T00:38:52.538000+00:00" }
  2. Utilizzate il list-revision-assets comando per confermare che la nuova risorsa è stata creata correttamente:

    $ AWS dataexchange list-revision-assets \ -\\-data-set-id $DATA_SET_ID \ -\\-revision-id $REVISION_ID { "Assets": [ { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:data-sets/$DATA_SET_ID/revisions/$REVISION_ID/assets/$ASSET_ID", "AssetDetails": { "ApiGatewayApiAsset": { "ApiEndpoint": "https://$API_ID.execute-api.us-east-1.amazonaws.com/$API_STAGE", "ApiId": "$API_ID", "ProtocolType": "REST", "Stage": "$API_STAGE" } }, "AssetType": "API_GATEWAY_API", "CreatedAt": "2021-09-11T00:38:52.457000+00:00", "DataSetId": "$DATA_SET_ID", "Id": "$ASSET_ID", "Name": "$ASSET_ID/$API_STAGE", "RevisionId": "$REVISION_ID", "UpdatedAt": "2021-09-11T00:38:52.457000+00:00" } ] }

Ora sei pronto per creare una nuova concessione di dati contenente APIs.

Modifica una revisione

Per modificare la revisione dopo averla finalizzata
  1. Nella panoramica delle revisioni, scegli De-finalizza.

    Viene visualizzato un messaggio che indica che la revisione non è più nello stato di completamento.

  2. Per modificare la revisione, da Panoramica delle revisioni, scegli Azioni, Modifica.

  3. Apporta le modifiche, quindi scegli Aggiorna.

  4. Controlla le modifiche, quindi scegli Finalizza.

Elimina una revisione

Per eliminare la revisione dopo averla finalizzata
  1. Nella panoramica delle revisioni, scegli Elimina.

  2. Digitate Delete nella finestra di dialogo Elimina revisione, quindi scegliete Elimina.

avvertimento

Ciò elimina la revisione e tutte le relative risorse. Questa operazione non può essere annullata.

Passaggio 5: Creare una nuova concessione di dati contenente APIs

Dopo aver creato almeno un set di dati e completato una revisione con le risorse, sei pronto per pubblicare quel set di dati come parte di una concessione di dati.

Per creare una nuova concessione di dati
  1. Nel riquadro di navigazione a sinistra della AWS Data Exchange console, in Concessioni dati scambiate, scegli Concessioni dati inviate.

  2. Da Concessioni dati inviate, scegli Crea concessione dati per aprire la procedura guidata Definisci concessione dati.

  3. Nella sezione Seleziona il set di dati di proprietà, seleziona la casella di controllo accanto al set di dati che desideri aggiungere.

    Nota

    Il set di dati scelto deve avere una revisione definitiva. I set di dati senza revisioni finalizzate non possono essere aggiunti alle concessioni di dati.

    A differenza dei set di dati inclusi nei prodotti di dati su cui vengono condivisi Marketplace AWS, i set di dati aggiunti alle concessioni di dati non hanno regole di accesso alle revisioni, il che significa che il destinatario di una concessione di dati, una volta approvata la concessione, avrà accesso a tutte le revisioni finali di un determinato set di dati (comprese le revisioni storiche finalizzate prima della creazione della concessione di dati).

  4. Nella sezione Panoramica della concessione, inserisci le informazioni che il destinatario vedrà sulla concessione dei dati, inclusi il nome della concessione dei dati e la descrizione della concessione dei dati.

  5. Scegli Avanti.

  6. Nella sezione Informazioni di accesso al destinatario, in Account AWS ID, inserisci l' Account AWS ID dell'account del destinatario che dovrebbe ricevere la concessione dei dati.

  7. Inoltre, nella sezione Informazioni di accesso al destinatario, in Data di fine accesso, scegli se la concessione dei dati deve essere eseguita in modo perpetuo, selezionando Nessuna data di fine o se deve avere una data di fine, selezionando Data di fine specifica e scegliendo la data di fine desiderata.

  8. Scegli Next (Successivo).

  9. Nella sezione Revisione e invio, esamina le informazioni sulla concessione dei dati.

  10. Se sei sicuro di voler creare la concessione di dati e inviarla al destinatario scelto, scegli Crea e invia la concessione di dati.

Ora hai completato la parte manuale della creazione di una concessione di dati. La concessione di dati viene visualizzata nella scheda Concessioni dati inviati della pagina Concessioni dati inviati, con lo stato In sospeso di accettazione fino a quando l'account del destinatario non la accetta.