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.
Gestion de projets avec AWS CloudFormation
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
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
Pour déclarer cette entité dans votre CloudFormation modèle, utilisez la syntaxe suivante :
Exemple 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
- 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
Réf
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
- 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.
ACTIVEsignifie que le projet est prêt à être utilisé.ARCHIVEDsignifie 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
Création d'un projet de base
L'exemple suivant crée un projet pour une application de chatbot de production :
Exemple 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
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
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
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
Pour plus d'informations sur l'utilisation CloudFormation des ressources Amazon Bedrock, consultez :