Comment gérer un agent Amazon Bedrock à l'aide de Terraform

DEV - 01/05
Introduction Dans le billet de blog précédent Créer un assistant de taux Forex de base à l'aide d'agents...

Introduction

Dans le billet de blog précédent Création d'un assistant de taux de change de base à l'aide d'agents pour Amazon Bedrock, j'ai montré comment créer un agent Bedrock dans la console de gestion AWS et présenté quelques idées pour améliorer la solution. Avant de poursuivre les expérimentations, il est logique d'automatiser le déploiement de la solution pour permettre des mises à jour plus rapides à mesure que nous parcourons les pistes et les erreurs lors du réglage fin d'un agent.

Dans cet article de blog, nous automatiserons le déploiement de l'assistant de taux de change de base dans Terraform à l'aide des ressources récemment publiées dans la version 5.47.0 du fournisseur Terraform AWS. Commençons par examiner les ressources AWS dans AWS Management Console.

Faire l'inventaire des ressources nécessaires

En examinant l'agent que nous avons construit précédemment, nous constatons qu'il est composé des ressources AWS suivantes :

  1. L'agent lui-même

  2. Le rôle de ressource d'agent qui est un rôle de service IAM qui permet à l'agent d'accéder à d'autres services et ressources AWS.

  3. Le groupe d'actions qui définit les actions API que l'agent peut effectuer

  4. La fonction Lambda associée au groupe d'actions, qui nécessite elle-même un rôle d'exécution et une politique de ressources permettant à l'agent d'invoquer la fonction

Avec la liste des ressources que nous devons provisionner, nous pouvons commencer à créer la configuration Terraform en commençant par les ressources dont dépend l'agent.

Définir des ressources pour les dépendances IAM et Lambda

Pour le rôle de ressource d'agent, la documentation fournit déjà la stratégie de confiance et les autorisations requises. Il précise également que le préfixeAmazonBedrockExecutionRoleForAgents_doit être utilisé pour le nom du rôle.

L'autorisation nécessite l'ARN du modèle fondamental, nous avons donc besoin au moins de l'ID du modèle, qui dans notre cas estanthropique.claude-3-haiku-20240307-v1:0pour Claude 3 Haïku. Par souci de cohérence, nous utiliserons leaws_bedrock_foundational_modelsource de données pour rechercher son ARN. Ainsi, nous pouvons définir la configuration Terraform pour le rôle de ressource d'agent comme suit en utilisant leaws_iam_roleressource et laaws_iam_role_policyRessource:

# Utilisez des sources de données pour obtenir des informations courantes sur l'environnement data "aws_caller_identity" "this" {} data "aws_partition" "this" {} data "aws_region" "this" {} locals { account_id = data.aws_caller_identity.this.account_id partition = data.aws_partition.this.partition region = data.aws_region.this.name } data "aws_bedrock_foundation_model" "this" { model_id = "anthropic.claude-3-haiku-20240307-v1:0" } # Ressource de rôle de ressource d'agent " aws_iam_role" "bedrock_agent_forex_asst" { name = "AmazonBedrockExecutionRoleForAgents_ForexAssistant" assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = "sts:AssumeRole" Effect = "Autoriser" Principal = { Service = "bedrock.amazonaws .com" } Condition = { StringEquals = { "aws:SourceAccount" = local.account_id } ArnLike ...
[Courte citation de 8% de l'article original]
Loading...