

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisez awscurl pour effectuer une requête compatible avec Prometheus APIs
<a name="AMP-compatible-APIs"></a>

Les demandes d’API pour Amazon Managed Service for Prometheus doivent être signées avec [SigV4.](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) Vous pouvez utiliser [awscurl](https://github.com/okigan/awscurl) pour simplifier le processus d’interrogation.

Pour installer `awscurl`, Python 3 et le gestionnaire de package PIP doivent être installés. 

Sur une instance Linux, la commande suivante installe `awscurl`.

```
$ pip3 install awscurl
```

Sur un ordinateur macOS, la commande suivante installe `awscurl`.

```
$ brew install awscurl
```

L'exemple suivant est un exemple de `awscurl` requête. Remplacez *Region* les *QUERY* entrées *Workspace-id* et par les valeurs appropriées à votre cas d'utilisation :

```
# Define the Prometheus query endpoint URL. This can be found in the Amazon Managed Service for Prometheus console page 
# under the respective workspace. 

$ export AMP_QUERY_ENDPOINT=https://aps-workspaces.Region.amazonaws.com/workspaces/Workspace-id/api/v1/query

# credentials are infered from the default profile
$ awscurl -X POST --region Region \
                  --service aps "${AMP_QUERY_ENDPOINT}" -d 'query=QUERY'  --header 'Content-Type: application/x-www-form-urlencoded'
```

**Note**  
Votre chaîne de requête doit être codée en URL.

Pour une requête comme`query=up`, vous pouvez obtenir des résultats tels que :

```
{
  "status": "success",
  "data": {
    "resultType": "vector",
    "result": [
      {
        "metric": {
          "__name__": "up",
          "instance": "localhost:9090",
          "job": "prometheus",
          "monitor": "monitor"
        },
        "value": [
          1652452637.636,
          "1"
        ]
      },
    ]
  }
}
```

Pour qu’`awscurl` signe les requêtes fournies, vous devez transmettre les informations d’identification valides de l’une des manières suivantes :
+ Fournissez l’ID de clé d’accès et la clé secrète du rôle IAM. Vous trouverez la clé d'accès et la clé secrète du rôle dans le [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

  Par exemple : 

  ```
  $ export AMP_QUERY_ENDPOINT=https://aps-workspaces.Region.amazonaws.com/workspaces/Workspace_id/api/v1/query
  
  $ awscurl -X POST --region <Region> \
                    --access_key <ACCESS_KEY> \
                    --secret_key <SECRET_KEY> \
                    --service aps "$AMP_QUERY_ENDPOINT?query=<QUERY>"
  ```
+ Référencez les fichiers de configuration stockés dans `.aws/credentials` et le fichier `/aws/config`. Vous pouvez également choisir de spécifier le nom du profil à utiliser. S’il n’est pas spécifié, le fichier ` default ` sera utilisé. Par exemple :

  ```
  $ export AMP_QUERY_ENDPOINT=https://aps-workspaces.<Region>.amazonaws.com/workspaces/<Workspace_ID>/api/v1/query
  $ awscurl -X POST --region <Region> \
                    --profile <PROFILE_NAME> 
                    --service aps "$AMP_QUERY_ENDPOINT?query=<QUERY>"
  ```
+ Utilisez le profil d’instance associé à l’instance EC2.

## Exécution de demandes de requête à l’aide du conteneur awscurl
<a name="awscurl-container"></a>

Lorsqu’il n’est pas possible d’installer une version différente de **Python** et les dépendances associées, un conteneur peut être utilisé pour empaqueter l’application `awscurl` et ses dépendances. L’exemple suivant utilise un environnement d’exécution **Docker** pour le déploiement d’`awscurl`, mais tout environnement d’exécution et image conformes à l’OCI fonctionneront.

```
$ docker pull okigan/awscurl
$ export AMP_QUERY_ENDPOINT=https://aps-workspaces.Region.amazonaws.com/workspaces/Workspace_id/api/v1/query
$ docker run --rm -it okigan/awscurl --access_key $AWS_ACCESS_KEY_ID  --secret_key $AWS_SECRET_ACCESS_KEY \ --region Region --service aps "$AMP_QUERY_ENDPOINT?query=QUERY"
```