

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
<a name="cloudformation-projects"></a>

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
<a name="cloudformation-projects-resource"></a>

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
<a name="cloudformation-projects-syntax"></a>

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

**Example 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
<a name="cloudformation-projects-properties"></a>

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
<a name="cloudformation-projects-return-values"></a>

#### Ref.
<a name="cloudformation-projects-ref"></a>

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
<a name="cloudformation-projects-getatt"></a>

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. `ACTIVE`significa que o projeto está pronto para uso. `ARCHIVED`significa 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
<a name="cloudformation-projects-examples"></a>

### Crie um projeto básico
<a name="cloudformation-projects-basic"></a>

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

**Example 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
<a name="cloudformation-projects-multi-env"></a>

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
<a name="cloudformation-projects-iam"></a>

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
<a name="cloudformation-projects-using-outputs"></a>

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
<a name="cloudformation-projects-learn-more"></a>

Para obter mais informações sobre o uso CloudFormation com os recursos do Amazon Bedrock, consulte:
+ [Crie recursos do Amazon Bedrock com a AWS CloudFormation](creating-resources-with-cloudformation.md)
+ [Guia CloudFormation do usuário da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [Referência de tipo de recurso Amazon Bedrock](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/AWS_Bedrock.html)