

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.

# Travailler avec AWS Boto3
<a name="braket-using-boto3"></a>

Boto3 est le AWS SDK pour Python. Avec Boto3, les développeurs Python peuvent créer, configurer et gérer Services AWS, comme Amazon Braket. Boto3 fournit un accès orienté objet API ainsi qu'un accès de bas niveau à Amazon Braket.

Suivez les instructions du [guide de démarrage rapide du Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) pour savoir comment installer et configurer Boto3.

Boto3 fournit les fonctionnalités de base qui fonctionnent avec le SDK Amazon Braket Python pour vous aider à configurer et à exécuter vos tâches quantiques. Les clients de Python doivent toujours installer Boto3, car il s'agit de l'implémentation principale. Si vous souhaitez utiliser des méthodes d'assistance supplémentaires, vous devez également installer le SDK Amazon Braket.

Par exemple, lorsque vous appelez`CreateQuantumTask`, le SDK Amazon Braket envoie la demande à Boto3, qui appelle ensuite le. AWS API

**Topics**
+ [

# Activez le client Amazon Braket Boto3
](braket-using-boto3-client.md)
+ [

# Configuration AWS CLI des profils pour Boto3 et le SDK Braket
](braket-using-boto3-profiles.md)

# Activez le client Amazon Braket Boto3
<a name="braket-using-boto3-client"></a>

Pour utiliser Boto3 avec Amazon Braket, vous devez importer Boto3, puis définir un client que vous utiliserez pour vous connecter à Amazon Braket. API Dans l'exemple suivant, le client Boto3 est nommé. `braket`

```
import boto3
import botocore

braket = boto3.client("braket")
```

**Note**  
[Supports de support IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html). Si vous utilisez un réseau IPv6 uniquement ou si vous souhaitez vous assurer que votre charge de travail utilise IPv6 du trafic, utilisez les points de terminaison à double pile, comme indiqué dans le guide des points de terminaison [à double pile et FIPS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html).

Maintenant que vous avez un `braket` client établi, vous pouvez faire des demandes et traiter les réponses depuis le service Amazon Braket. Vous pouvez obtenir plus de détails sur les données de demande et de réponse dans la [référence de l'API](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/braket.html).

**Topics**
+ [

## Rechercher des appareils
](#braket-using-boto3-example-search-devices)
+ [

## Récupérez un appareil
](#braket-using-boto3-example-retrieve-devices)
+ [

## Créez une tâche quantique
](#braket-using-boto3-example-create-task)
+ [

## Récupérez une tâche quantique
](#braket-using-boto3-example-retrieve-task)
+ [

## Recherche de tâches quantiques
](#braket-using-boto3-example-search-tasks)
+ [

## Annuler une tâche quantique
](#braket-using-boto3-example-cancel-task)

## Rechercher des appareils
<a name="braket-using-boto3-example-search-devices"></a>
+  `search_devices(**kwargs)` 

Recherchez des appareils à l'aide des filtres spécifiés.

```
# Pass search filters and optional parameters when sending the
# request and capture the response
response = braket.search_devices(filters=[{
    'name': 'deviceArn',
    'values': ['arn:aws:braket:::device/quantum-simulator/amazon/sv1']
}], maxResults=10)

print(f"Found {len(response['devices'])} devices")

for i in range(len(response['devices'])):
    device = response['devices'][i]
    print(device['deviceArn'])
```

## Récupérez un appareil
<a name="braket-using-boto3-example-retrieve-devices"></a>
+  `get_device(deviceArn)` 

Récupérez les appareils disponibles sur Amazon Braket.

```
# Pass the device ARN when sending the request and capture the repsonse
response = braket.get_device(deviceArn='arn:aws:braket:::device/quantum-simulator/amazon/sv1')

print(f"Device {response['deviceName']} is {response['deviceStatus']}")
```

## Créez une tâche quantique
<a name="braket-using-boto3-example-create-task"></a>
+  `create_quantum_task(**kwargs)` 

Créez une tâche quantique.

```
# Create parameters to pass into create_quantum_task()
kwargs = {
    # Create a Bell pair
    'action': '{"braketSchemaHeader": {"name": "braket.ir.jaqcd.program", "version": "1"}, "results": [], "basis_rotation_instructions": [], "instructions": [{"type": "h", "target": 0}, {"type": "cnot", "control": 0, "target": 1}]}',
    # Specify the SV1 Device ARN
    'deviceArn': 'arn:aws:braket:::device/quantum-simulator/amazon/sv1',
    # Specify 2 qubits for the Bell pair
    'deviceParameters': '{"braketSchemaHeader": {"name": "braket.device_schema.simulators.gate_model_simulator_device_parameters", "version": "1"}, "paradigmParameters": {"braketSchemaHeader": {"name": "braket.device_schema.gate_model_parameters", "version": "1"}, "qubitCount": 2}}',
    # Specify where results should be placed when the quantum task completes.
    # You must ensure the S3 Bucket exists before calling create_quantum_task()
    'outputS3Bucket': 'amazon-braket-examples',
    'outputS3KeyPrefix': 'boto-examples',
    # Specify number of shots for the quantum task
    'shots': 100
}

# Send the request and capture the response
response = braket.create_quantum_task(**kwargs)

print(f"Quantum task {response['quantumTaskArn']} created")
```

## Récupérez une tâche quantique
<a name="braket-using-boto3-example-retrieve-task"></a>
+  `get_quantum_task(quantumTaskArn)` 

Récupérez la tâche quantique spécifiée.

```
# Pass the quantum task ARN when sending the request and capture the response
response = braket.get_quantum_task(quantumTaskArn='arn:aws:braket:us-west-1:123456789012:quantum-task/ce78c429-cef5-45f2-88da-123456789012')

print(response['status'])
```

## Recherche de tâches quantiques
<a name="braket-using-boto3-example-search-tasks"></a>
+  `search_quantum_tasks(**kwargs)` 

Recherchez les tâches quantiques qui correspondent aux valeurs de filtre spécifiées.

```
# Pass search filters and optional parameters when sending the
# request and capture the response
response = braket.search_quantum_tasks(filters=[{
    'name': 'deviceArn',
    'operator': 'EQUAL',
    'values': ['arn:aws:braket:::device/quantum-simulator/amazon/sv1']
}], maxResults=25)

print(f"Found {len(response['quantumTasks'])} quantum tasks")

for n in range(len(response['quantumTasks'])):
    task = response['quantumTasks'][n]
    print(f"Quantum task {task['quantumTaskArn']} for {task['deviceArn']} is {task['status']}")
```

## Annuler une tâche quantique
<a name="braket-using-boto3-example-cancel-task"></a>
+  `cancel_quantum_task(quantumTaskArn)` 

Annulez la tâche quantique spécifiée.

```
# Pass the quantum task ARN when sending the request and capture the response
response = braket.cancel_quantum_task(quantumTaskArn='arn:aws:braket:us-west-1:123456789012:quantum-task/ce78c429-cef5-45f2-88da-123456789012')

print(f"Quantum task {response['quantumTaskArn']} is {response['cancellationStatus']}")
```

# Configuration AWS CLI des profils pour Boto3 et le SDK Braket
<a name="braket-using-boto3-profiles"></a>

Le SDK Amazon Braket repose sur les informations d' AWS CLI identification par défaut, sauf indication contraire explicite de votre part. Nous vous recommandons de conserver la valeur par défaut lorsque vous exécutez sur un bloc-notes Amazon Braket géré, car vous devez fournir un rôle IAM autorisé à lancer l'instance de bloc-notes.

Facultativement, si vous exécutez votre code localement (sur une instance Amazon EC2, par exemple), vous pouvez établir des profils nommés AWS CLI . Vous pouvez attribuer à chaque profil un ensemble d'autorisations différent, plutôt que de remplacer régulièrement le profil par défaut.

Cette section explique brièvement comment configurer une telle CLI `profile` et comment intégrer ce profil dans Amazon Braket afin que les API appels soient effectués avec les autorisations de ce profil.

**Topics**
+ [

## Étape 1 : Configuration d'une AWS CLI locale `profile`
](#braket-using-boto3-profiles-step-1)
+ [

## Étape 2 : établir un objet de session Boto3
](#braket-using-boto3-profiles-step-2)
+ [

## Étape 3 : Incorporez la session Boto3 dans le Braket AwsSession
](#braket-using-boto3-profiles-step-3)

## Étape 1 : Configuration d'une AWS CLI locale `profile`
<a name="braket-using-boto3-profiles-step-1"></a>

Il n'entre pas dans le cadre de ce document d'expliquer comment créer un utilisateur et comment configurer un profil autre que celui par défaut. Pour plus d'informations sur ces sujets, voir :
+  [Premiers pas](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) 
+  [Configuration du AWS CLI à utiliser AWS IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) 

Pour utiliser Amazon Braket, vous devez fournir à cet utilisateur (et à la CLI associée`profile`) les autorisations Braket nécessaires. Par exemple, vous pouvez joindre la **AmazonBraketFullAccess**politique.

## Étape 2 : établir un objet de session Boto3
<a name="braket-using-boto3-profiles-step-2"></a>

Pour établir un objet de session Boto3, utilisez l'exemple de code suivant.

```
from boto3 import Session

# Insert CLI profile name here
boto_sess = Session(profile_name=`profile`)
```

**Note**  
Si les API appels attendus comportent des restrictions basées sur la région qui ne sont pas alignées sur votre région `profile` par défaut, vous pouvez spécifier une région pour la session Boto3 comme indiqué dans l'exemple suivant.

```
# Insert CLI profile name _and_ region
boto_sess = Session(profile_name=`profile`, region_name=`region`)
```

Pour l'argument désigné comme`region`, remplacez une valeur qui correspond à l'une des valeurs Régions AWS dans lesquelles Amazon Braket est disponible `us-east-1``us-west-1`, par exemple, etc.

## Étape 3 : Incorporez la session Boto3 dans le Braket AwsSession
<a name="braket-using-boto3-profiles-step-3"></a>

L'exemple suivant montre comment initialiser une session Boto3 Braket et instancier un appareil dans cette session.

```
from braket.aws import AwsSession, AwsDevice

# Initialize Braket session with Boto3 Session credentials
aws_session = AwsSession(boto_session=boto_sess)

# Instantiate any Braket QPU device with the previously initiated AwsSession
sim_arn = 'arn:aws:braket:::device/quantum-simulator/amazon/sv1'
device = AwsDevice(sim_arn, aws_session=aws_session)
```

Une fois cette configuration terminée, vous pouvez soumettre des tâches quantiques à cet `AwsDevice` objet instancié (en appelant la `device.run(…​)` commande par exemple). Tous les API appels effectués par cet appareil peuvent utiliser les informations d'identification IAM associées au profil CLI que vous avez précédemment désigné`profile`.