Agent Agent Alias Args
data class AgentAgentAliasArgs(val agentAliasName: Output<String>? = null, val agentId: Output<String>? = null, val description: Output<String>? = null, val routingConfigurations: Output<List<AgentAgentAliasRoutingConfigurationArgs>>? = null, val tags: Output<Map<String, String>>? = null, val timeouts: Output<AgentAgentAliasTimeoutsArgs>? = null) : ConvertibleToJava<AgentAgentAliasArgs>
Resource for managing an AWS Agents for Amazon Bedrock Agent Alias.
Example Usage
Basic Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.AwsFunctions;
import com.pulumi.aws.inputs.GetCallerIdentityArgs;
import com.pulumi.aws.inputs.GetRegionArgs;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.iam.Role;
import com.pulumi.aws.iam.RoleArgs;
import com.pulumi.aws.iam.RolePolicy;
import com.pulumi.aws.iam.RolePolicyArgs;
import com.pulumi.aws.bedrock.AgentAgent;
import com.pulumi.aws.bedrock.AgentAgentArgs;
import com.pulumi.aws.bedrock.AgentAgentAlias;
import com.pulumi.aws.bedrock.AgentAgentAliasArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var current = AwsFunctions.getCallerIdentity();
final var currentGetRegion = AwsFunctions.getRegion();
final var exampleAgentTrust = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.actions("sts:AssumeRole")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.identifiers("bedrock.amazonaws.com")
.type("Service")
.build())
.conditions(
GetPolicyDocumentStatementConditionArgs.builder()
.test("StringEquals")
.values(current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()))
.variable("aws:SourceAccount")
.build(),
GetPolicyDocumentStatementConditionArgs.builder()
.test("ArnLike")
.values(String.format("arn:aws:bedrock:%s:%s:agent/*", currentGetRegion.applyValue(getRegionResult -> getRegionResult.name()),current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId())))
.variable("AWS:SourceArn")
.build())
.build())
.build());
var example = new Role("example", RoleArgs.builder()
.assumeRolePolicy(exampleAgentTrust.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.namePrefix("AmazonBedrockExecutionRoleForAgents_")
.build());
final var exampleAgentPermissions = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.actions("bedrock:InvokeModel")
.resources(String.format("arn:aws:bedrock:%s::foundation-model/anthropic.claude-v2", currentGetRegion.applyValue(getRegionResult -> getRegionResult.name())))
.build())
.build());
var exampleRolePolicy = new RolePolicy("exampleRolePolicy", RolePolicyArgs.builder()
.policy(exampleAgentPermissions.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.role(example.id())
.build());
var test = new AgentAgent("test", AgentAgentArgs.builder()
.agentName("my-agent-name")
.agentResourceRoleArn(example.arn())
.idleTtl(500)
.foundationModel("anthropic.claude-v2")
.build());
var exampleAgentAgentAlias = new AgentAgentAlias("exampleAgentAgentAlias", AgentAgentAliasArgs.builder()
.agentAliasName("my-agent-alias")
.agentId(test.agentId())
.description("Test ALias")
.build());
}
}Content copied to clipboard
resources:
example:
type: aws:iam:Role
properties:
assumeRolePolicy: ${exampleAgentTrust.json}
namePrefix: AmazonBedrockExecutionRoleForAgents_
exampleRolePolicy:
type: aws:iam:RolePolicy
name: example
properties:
policy: ${exampleAgentPermissions.json}
role: ${example.id}
test:
type: aws:bedrock:AgentAgent
properties:
agentName: my-agent-name
agentResourceRoleArn: ${example.arn}
idleTtl: 500
foundationModel: anthropic.claude-v2
exampleAgentAgentAlias:
type: aws:bedrock:AgentAgentAlias
name: example
properties:
agentAliasName: my-agent-alias
agentId: ${test.agentId}
description: Test ALias
variables:
exampleAgentTrust:
fn::invoke:
Function: aws:iam:getPolicyDocument
Arguments:
statements:
- actions:
- sts:AssumeRole
principals:
- identifiers:
- bedrock.amazonaws.com
type: Service
conditions:
- test: StringEquals
values:
- ${current.accountId}
variable: aws:SourceAccount
- test: ArnLike
values:
- arn:aws:bedrock:${currentGetRegion.name}:${current.accountId}:agent/*
variable: AWS:SourceArn
exampleAgentPermissions:
fn::invoke:
Function: aws:iam:getPolicyDocument
Arguments:
statements:
- actions:
- bedrock:InvokeModel
resources:
- arn:aws:bedrock:${currentGetRegion.name}::foundation-model/anthropic.claude-v2
current:
fn::invoke:
Function: aws:getCallerIdentity
Arguments: {}
currentGetRegion:
fn::invoke:
Function: aws:getRegion
Arguments: {}Content copied to clipboard
Import
Using pulumi import, import Agents for Amazon Bedrock Agent Alias using the AGENT_ID,ALIAS_ID. For example:
$ pulumi import aws:bedrock/agentAgentAlias:AgentAgentAlias example AGENT_ID,ALIAS_IDContent copied to clipboard
Constructors
Link copied to clipboard
fun AgentAgentAliasArgs(agentAliasName: Output<String>? = null, agentId: Output<String>? = null, description: Output<String>? = null, routingConfigurations: Output<List<AgentAgentAliasRoutingConfigurationArgs>>? = null, tags: Output<Map<String, String>>? = null, timeouts: Output<AgentAgentAliasTimeoutsArgs>? = null)