기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CloudFormation을 사용하여 프로젝트 관리
Amazon Bedrock은 AWS CloudFormation과 통합되어 인프라 템플릿의 일부로 프로젝트를 정의하고 관리할 수 있습니다. JSON 또는 YAML 템플릿을 사용하여 여러 AWS 계정 및 리전에 프로젝트를 일관되고 반복적으로 프로비저닝할 수 있습니다.
AWS::BedrockMantle::Project
AWS::BedrockMantle::Project 리소스를 사용하여 CloudFormation 템플릿에서 Bedrock 프로젝트를 생성하고 관리합니다. CloudFormation을 통해 생성된 프로젝트는 IAM 정책 연결, 태그 지정 및 관찰성을 포함하여 API를 통해 생성된 것과 동일한 기능을 지원합니다.
구문
CloudFormation 템플릿에서 이 객체를 선언하려면 다음 구문을 사용합니다.
예 CloudFormation 구문
{ "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
속성
- 이름
-
필수 사항입니다. 프로젝트의 이름입니다. AWS 계정 내에서 고유해야 합니다.
유형: 문자열
최소: 1
최대: 64
패턴:
^([0-9a-zA-Z][ _-]?)+$업데이트 필요 조건: 대체
- Tags
-
비용 할당 및 액세스 제어를 위해 프로젝트와 연결할 키-값 페어의 맵입니다.
유형: String의 맵
업데이트 필요 조건: 무중단
태그 업데이트에 대한 참고 사항
의 CloudFormation 태그 업데이트는 내부적으로 별도의 추가 및 제거 작업을 AWS::BedrockMantle::Project 사용합니다. 원자성 전체 태그 교체는 없습니다. 작업 중 스택 업데이트에 실패하면 프로젝트의 태그 세트가 부분적으로 업데이트된 상태일 수 있습니다. 태그를 수정하는 스택 업데이트 후에는 항상 최종 태그 상태를 확인합니다.
반환 값
Ref
이 리소스의 논리적 ID를 내장 Ref 함수에 전달하면가 프로젝트 ID(예: proj_abc123)를 Ref 반환합니다.
Fn::GetAtt
- ProjectId
-
프로젝트의 고유 식별자(예:
proj_abc123). - ProjectArn
-
프로젝트의 Amazon 리소스 이름(ARN)입니다(예:
arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123). - Status
-
프로젝트의 상태입니다.는 프로젝트를 사용할 준비가 되었음을
ACTIVE의미합니다.는 프로젝트가 아카이브되었으며 새 추론 요청을 수락할 수 없음을ARCHIVED의미합니다. - CreatedAt
-
프로젝트가 생성된 타임스탬프입니다.
- UpdatedAt
-
프로젝트가 마지막으로 업데이트된 타임스탬프입니다.
예제
기본 프로젝트 생성
다음 예시에서는 프로덕션 챗봇 애플리케이션을 위한 프로젝트를 생성합니다.
예기본 프로젝트
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"] } } } }
다양한 환경에 대해 여러 프로젝트 생성
다음 예제에서는 단일 스택에서 개발, 스테이징 및 프로덕션 환경을 위한 별도의 프로젝트를 프로비저닝합니다.
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"
IAM 역할 액세스를 사용하여 프로젝트 생성
다음 예제에서는 프로젝트를 생성하고 특정 역할에 모델을 호출할 수 있는 액세스 권한을 부여하는 IAM 정책을 연결합니다.
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
프로젝트 API에서 CloudFormation 출력 사용
CloudFormation 스택을 배포한 후 스택 출력을 사용하여 애플리케이션 코드에서 프로젝트 ARN 및 ID를 참조할 수 있습니다.
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)
자세히 알아보기
Amazon Bedrock 리소스와 함께 CloudFormation을 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.