Gerenciamento de projetos com a AWS CloudFormation - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciamento de projetos com a AWS CloudFormation

O Amazon Bedrock é integrado à AWS CloudFormation, permitindo que você defina e gerencie projetos como parte de seus modelos de infraestrutura. Você pode provisionar projetos de forma consistente e repetida em várias contas e regiões da AWS usando modelos JSON ou YAML.

AWS::BedrockMantle::Project

Use o AWS::BedrockMantle::Project recurso para criar e gerenciar um projeto Bedrock em um CloudFormation modelo. Os projetos criados por meio do IAM CloudFormation oferecem suporte aos mesmos recursos criados por meio da API, incluindo anexação, marcação e observabilidade da política do IAM.

Sintaxe

Para declarar essa entidade em seu CloudFormation modelo, use a seguinte sintaxe:

exemplo CloudFormation Sintaxe
{ "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

Propriedades

Nome

Obrigatório. O nome do projeto. Deve ser exclusivo em sua conta da AWS.

Tipo: string

Minimum (Mínimo): 1

Máximo: 64

Padrão: ^([0-9a-zA-Z][ _-]?)+$

Requisitos da atualização: substituição

Tags

Um mapa de pares de valores-chave para associar ao projeto para alocação de custos e controle de acesso.

Tipo: mapa de string

Requisitos da atualização: sem interrupção

Nota sobre atualizações de tags

CloudFormation atualizações de tags ao AWS::BedrockMantle::Project usar operações separadas de adição e remoção internamente. Não há substituição total da etiqueta atômica. Se uma atualização da pilha falhar no meio da operação, o conjunto de tags do projeto pode estar parcialmente atualizado. Sempre verifique o estado final da tag após uma atualização da pilha que modifica as tags.

Valores de retorno

Ref.

Quando você passa a ID lógica desse recurso para a Ref função intrínseca, Ref retorna a ID do projeto (por exemplo,proj_abc123).

Fã:: GetAtt

ProjectId

O identificador exclusivo do projeto (por exemplo,proj_abc123).

ProjectArn

O nome de recurso da Amazon (ARN) do projeto (por exemplo,arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123).

Status

O status do projeto. ACTIVEsignifica que o projeto está pronto para uso. ARCHIVEDsignifica que o projeto foi arquivado e não pode aceitar novas solicitações de inferência.

CreatedAt

A data e hora em que o projeto foi criado.

UpdatedAt

A data e hora em que o projeto foi atualizado pela última vez.

Exemplos

Crie um projeto básico

O exemplo a seguir cria um projeto para um aplicativo de chatbot de produção:

exemplo Projeto básico do
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"] } } } }

Crie vários projetos para ambientes diferentes

O exemplo a seguir provisiona projetos separados para ambientes de desenvolvimento, preparação e produção em uma única pilha:

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"

Crie um projeto com o IAM Role Access

O exemplo a seguir cria um projeto e anexa uma política do IAM que concede acesso a uma função específica para invocar modelos:

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

Usando CloudFormation saídas com a API de projetos

Depois de implantar sua CloudFormation pilha, você pode referenciar o ARN e o ID do projeto no código do seu aplicativo usando as saídas da pilha:

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)

Saiba mais

Para obter mais informações sobre o uso CloudFormation com os recursos do Amazon Bedrock, consulte: