

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.

# Créez des ressources Amazon Bedrock avec AWS CloudFormation
<a name="creating-resources-with-cloudformation"></a>

Amazon Bedrock est intégré à AWS CloudFormation un service qui vous aide à modéliser et à configurer vos AWS ressources afin que vous puissiez passer moins de temps à créer et à gérer vos ressources et votre infrastructure. Vous créez un modèle qui décrit toutes les AWS ressources que vous souhaitez (telles que les [agents Amazon Bedrock](agents.md) ou les [bases de connaissances Amazon Bedrock](knowledge-base.md)), puis vous CloudFormation approvisionnez et configurez ces ressources pour vous. 

Lorsque vous l'utilisez CloudFormation, vous pouvez réutiliser votre modèle pour configurer vos ressources Amazon Bedrock de manière cohérente et répétée. Décrivez vos ressources une seule fois, puis fournissez les mêmes ressources encore et encore dans plusieurs Comptes AWS régions. 

## Amazon Bedrock et modèles CloudFormation
<a name="working-with-templates"></a>

Pour allouer et configurer des ressources pour Amazon Bedrock et les services connexes, vous devez maîtriser les [modèles CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html). Les modèles sont des fichiers texte formatés en JSON ou YAML. Ces modèles décrivent les ressources que vous souhaitez mettre à disposition dans vos CloudFormation piles. Si vous n'êtes pas familiarisé avec JSON ou YAML, vous pouvez utiliser CloudFormation Designer pour vous aider à démarrer avec les CloudFormation modèles. Pour plus d’informations, consultez [Qu’est-ce que CloudFormation Designer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html) dans le *Guide de l’utilisateur AWS CloudFormation *.

Amazon Bedrock prend en charge la création des ressources suivantes dans CloudFormation.
+ [AWS::Bedrock::Agent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html)
+ [AWS: :Bedrock : : AgentAlias](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html)
+ [AWS: :Bedrock : : ApplicationInferenceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-applicationinferenceprofile.html)
+ [AWS: :Bedrock : : AutomatedReasoningPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicy.html)
+ [AWS: :Bedrock : : AutomatedReasoningPolicyVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicyversion.html)
+ [AWS: :Bedrock : : DataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html)
+ [AWS::Bedrock::Flow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flow.html)
+ [AWS: :Bedrock : : FlowVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowversion.html)
+ [AWS: :Bedrock : : FlowAlias](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowalias.html)
+ [AWS::Bedrock::Guardrail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html)
+ [AWS: :Bedrock : : GuardrailVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrailversion.html)
+ [AWS: :Bedrock : : KnowledgeBase](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html)
+ [AWS::Bedrock::Prompt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-prompt.html)
+ [AWS: :Bedrock : : PromptVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-promptversion.html)

Pour plus d’informations, notamment des exemples de modèles JSON et YAML pour les [agents Amazon Bedrock](agents.md) ou les [bases de connaissances Amazon Bedrock](knowledge-base.md), consultez la [Référence du type de ressource Amazon Bedrock](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Bedrock.html) dans le *Guide de l’utilisateur AWS CloudFormation *.

# Gestion de projets avec AWS CloudFormation
<a name="cloudformation-projects"></a>

Amazon Bedrock est intégré à AWS CloudFormation, ce qui vous permet de définir et de gérer des projets dans le cadre de vos modèles d'infrastructure. Vous pouvez provisionner des projets de manière cohérente et répétée sur plusieurs comptes et régions AWS à l'aide de modèles JSON ou YAML.

## AWS::BedrockMantle::Project
<a name="cloudformation-projects-resource"></a>

Utilisez cette `AWS::BedrockMantle::Project` ressource pour créer et gérer un projet Bedrock dans un CloudFormation modèle. Les projets créés via l'API prennent en CloudFormation charge les mêmes fonctionnalités que ceux créés via l'API, notamment l'attachement aux politiques IAM, le balisage et l'observabilité.

### Syntaxe
<a name="cloudformation-projects-syntax"></a>

Pour déclarer cette entité dans votre CloudFormation modèle, utilisez la syntaxe suivante :

**Example CloudFormation Syntaxe**  

```
{
  "Type": "AWS::BedrockMantle::Project",
  "Properties": {
    "Name": String,
    "Tags": [
      { "Key": String, "Value": String },
      { "Key": String, "Value": String },
      { "Key": String, "Value": String },
      { "Key": String, "Value": String }
    ]
  }
}
```

```
Type: AWS::BedrockMantle::Project
Properties:
  Name: String
  Tags:
    Key: Value
```

### Propriétés
<a name="cloudformation-projects-properties"></a>

Nom  
Obligatoire. Nom du projet. Doit être unique au sein de votre compte AWS.  
Type : Chaîne  
Minimum : 1  
Maximum : 64  
Modèle : `^([0-9a-zA-Z][ _-]?)+$`  
Requis pour la mise à jour : un remplacement

Étiquettes  
Carte des paires clé-valeur à associer au projet pour la répartition des coûts et le contrôle d'accès.  
Type : mappage de chaînes  
Requis pour la mise à jour : aucune interruption

**Remarque sur les mises à jour des balises**  
CloudFormation mises à jour des balises lors de `AWS::BedrockMantle::Project` l'utilisation d'opérations d'ajout et de suppression distinctes en interne. Il n'y a pas de remplacement complet de l'étiquette atomique. Si une mise à jour de la pile échoue en cours d'opération, le jeu de balises du projet est peut-être partiellement mis à jour. Vérifiez toujours l'état final des balises après une mise à jour de la pile qui modifie les balises.

### Valeurs renvoyées
<a name="cloudformation-projects-return-values"></a>

#### Réf
<a name="cloudformation-projects-ref"></a>

Lorsque vous transmettez l'identifiant logique de cette ressource à la `Ref` fonction intrinsèque, `Ref` renvoie l'identifiant du projet (par exemple,`proj_abc123`).

#### Ventilateur : GetAtt
<a name="cloudformation-projects-getatt"></a>

ProjectId  
L'identifiant unique du projet (par exemple,`proj_abc123`).

ProjectArn  
Le nom de ressource Amazon (ARN) du projet (par exemple,`arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123`).

Statut  
État du projet. `ACTIVE`signifie que le projet est prêt à être utilisé. `ARCHIVED`signifie que le projet a été archivé et ne peut pas accepter de nouvelles demandes d'inférence.

CreatedAt  
Horodatage auquel le projet a été créé.

UpdatedAt  
Horodatage auquel le projet a été mis à jour pour la dernière fois.

## Exemples
<a name="cloudformation-projects-examples"></a>

### Création d'un projet de base
<a name="cloudformation-projects-basic"></a>

L'exemple suivant crée un projet pour une application de chatbot de production :

**Example Projet de base**  

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon Bedrock Project for Production Chatbot

Resources:
  CustomerChatbotProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: CustomerChatbot-Production
      Tags:
        - Key: Project
          Value: CustomerChatbot
        - Key: Environment
          Value: Production
        - Key: Owner
          Value: TeamAlpha
        - Key: CostCenter
          Value: "21524"

Outputs:
  ProjectId:
    Description: The ID of the created project
    Value: !Ref CustomerChatbotProject

  ProjectArn:
    Description: The ARN of the created project
    Value: !GetAtt CustomerChatbotProject.ProjectArn
```

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Resources": {
    "CustomerChatbotProject": {
      "Type": "AWS::BedrockMantle::Project",
      "Properties": {
        "Name": "CustomerChatbot-Production",
        "Tags": [
          { "Key": "Project", "Value": "CustomerChatbot" },
          { "Key": "Environment", "Value": "Production" },
          { "Key": "Owner", "Value": "TeamAlpha" },
          { "Key": "CostCenter", "Value": "21524" }
        ]
      }
    }
  },
  "Outputs": {
    "ProjectId": {
      "Description": "The ID of the created project",
      "Value": { "Ref": "CustomerChatbotProject" }
    },
    "ProjectArn": {
      "Description": "The ARN of the created project",
      "Value": { "Fn::GetAtt": ["CustomerChatbotProject", "ProjectArn"] }
    }
  }
}
```

### Créez plusieurs projets pour différents environnements
<a name="cloudformation-projects-multi-env"></a>

L'exemple suivant fournit des projets distincts pour les environnements de développement, de préparation et de production dans une seule pile :

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon Bedrock Projects for Multi-Environment Deployment

Parameters:
  ApplicationName:
    Type: String
    Default: InternalSearch
    Description: Name of the application

  CostCenter:
    Type: String
    Description: Cost center for billing allocation

Resources:
  DevelopmentProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: !Sub "${ApplicationName}-Development"
      Tags:
        - Key: Project
          Value: !Ref ApplicationName
        - Key: Environment
          Value: Development
        - Key: CostCenter
          Value: !Ref CostCenter

  StagingProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: !Sub "${ApplicationName}-Staging"
      Tags:
        - Key: Project
          Value: !Ref ApplicationName
        - Key: Environment
          Value: Staging
        - Key: CostCenter
          Value: !Ref CostCenter

  ProductionProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: !Sub "${ApplicationName}-Production"
      Tags:
        - Key: Project
          Value: !Ref ApplicationName
        - Key: Environment
          Value: Production
        - Key: CostCenter
          Value: !Ref CostCenter

Outputs:
  DevelopmentProjectArn:
    Value: !GetAtt DevelopmentProject.ProjectArn
    Export:
      Name: !Sub "${ApplicationName}-Dev-ProjectArn"

  StagingProjectArn:
    Value: !GetAtt StagingProject.ProjectArn
    Export:
      Name: !Sub "${ApplicationName}-Staging-ProjectArn"

  ProductionProjectArn:
    Value: !GetAtt ProductionProject.ProjectArn
    Export:
      Name: !Sub "${ApplicationName}-Prod-ProjectArn"
```

### Création d'un projet avec accès aux rôles IAM
<a name="cloudformation-projects-iam"></a>

L'exemple suivant crée un projet et y joint une politique IAM accordant un accès à un rôle spécifique pour appeler des modèles :

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon Bedrock Project with IAM Access Control

Resources:
  ProductionProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: CustomerChatbot-Production
      Tags:
        - Key: Environment
          Value: Production
        - Key: CostCenter
          Value: "21524"

  ProductionAppRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: BedrockProjectProductionRole
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: BedrockProjectInvokeAccess
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - bedrock-mantle:CreateInference
                  - bedrock-mantle:GetProject
                Resource: !GetAtt ProductionProject.ProjectArn

Outputs:
  ProjectArn:
    Value: !GetAtt ProductionProject.ProjectArn

  RoleArn:
    Value: !GetAtt ProductionAppRole.Arn
```

## Utilisation CloudFormation des sorties avec l'API Projects
<a name="cloudformation-projects-using-outputs"></a>

Après avoir déployé votre CloudFormation pile, vous pouvez référencer l'ARN et l'ID du projet dans le code de votre application à l'aide des sorties de la pile :

```
import boto3
from openai import OpenAI

# Retrieve project details from CloudFormation stack outputs
cfn = boto3.client('cloudformation', region_name='us-east-1')

response = cfn.describe_stacks(StackName='my-bedrock-projects-stack')
outputs = {o['OutputKey']: o['OutputValue'] for o in response['Stacks'][0]['Outputs']}

production_project_arn = outputs['ProductionProjectArn']

# Extract project ID from ARN
# ARN format: arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123
project_id = production_project_arn.split('/')[-1]

print(f"Using project: {project_id}")

# Use the project for inference
client = OpenAI(project=project_id)

response = client.responses.create(
    model="openai.gpt-oss-120b",
    input="Hello from a CloudFormation-managed project!"
)

print(response)
```

## En savoir plus
<a name="cloudformation-projects-learn-more"></a>

Pour plus d'informations sur l'utilisation CloudFormation des ressources Amazon Bedrock, consultez :
+ [Créez des ressources Amazon Bedrock avec AWS CloudFormation](creating-resources-with-cloudformation.md)
+ [Guide de CloudFormation l'utilisateur AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [Référence du type de ressource Amazon Bedrock](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/AWS_Bedrock.html)

## En savoir plus sur CloudFormation
<a name="learn-more-cloudformation"></a>

Pour en savoir plus CloudFormation, consultez les ressources suivantes :
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation Guide de l'utilisateur](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [CloudFormation API Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html)
+ [AWS CloudFormation Guide de l'utilisateur de l'interface de ligne de commande](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)