Class AgentcoreAgentRuntime


  • public class AgentcoreAgentRuntime
    extends com.pulumi.resources.CustomResource
    Manages an AWS Bedrock AgentCore Agent Runtime. Agent Runtime provides a containerized execution environment for AI agents. ## Example Usage ### Basic Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     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.AgentcoreAgentRuntime;
     import com.pulumi.aws.bedrock.AgentcoreAgentRuntimeArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactContainerConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeNetworkConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     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 assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("bedrock-agentcore.amazonaws.com")
                         .build())
                     .effect("Allow")
                     .actions("sts:AssumeRole")
                     .build())
                 .build());
     
             final var ecrPermissions = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(            
                     GetPolicyDocumentStatementArgs.builder()
                         .actions("ecr:GetAuthorizationToken")
                         .effect("Allow")
                         .resources("*")
                         .build(),
                     GetPolicyDocumentStatementArgs.builder()
                         .actions(                    
                             "ecr:BatchGetImage",
                             "ecr:GetDownloadUrlForLayer")
                         .effect("Allow")
                         .resources(exampleAwsEcrRepository.arn())
                         .build())
                 .build());
     
             var example = new Role("example", RoleArgs.builder()
                 .name("bedrock-agentcore-runtime-role")
                 .assumeRolePolicy(assumeRole.json())
                 .build());
     
             var exampleRolePolicy = new RolePolicy("exampleRolePolicy", RolePolicyArgs.builder()
                 .role(example.id())
                 .policy(ecrPermissions.json())
                 .build());
     
             var exampleAgentcoreAgentRuntime = new AgentcoreAgentRuntime("exampleAgentcoreAgentRuntime", AgentcoreAgentRuntimeArgs.builder()
                 .agentRuntimeArtifact(AgentcoreAgentRuntimeAgentRuntimeArtifactArgs.builder()
                     .containerConfiguration(AgentcoreAgentRuntimeAgentRuntimeArtifactContainerConfigurationArgs.builder()
                         .containerUri(String.format("%s:latest", exampleAwsEcrRepository.repositoryUrl()))
                         .build())
                     .build())
                 .networkConfiguration(AgentcoreAgentRuntimeNetworkConfigurationArgs.builder()
                     .networkMode("PUBLIC")
                     .build())
                 .agentRuntimeName("example_agent_runtime")
                 .roleArn(example.arn())
                 .build());
     
         }
     }
     
     
    ### MCP Server With Custom JWT Authorizer
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreAgentRuntime;
     import com.pulumi.aws.bedrock.AgentcoreAgentRuntimeArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactContainerConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAuthorizerConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAuthorizerConfigurationCustomJwtAuthorizerArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeNetworkConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeProtocolConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     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) {
             var example = new AgentcoreAgentRuntime("example", AgentcoreAgentRuntimeArgs.builder()
                 .agentRuntimeArtifact(AgentcoreAgentRuntimeAgentRuntimeArtifactArgs.builder()
                     .containerConfiguration(AgentcoreAgentRuntimeAgentRuntimeArtifactContainerConfigurationArgs.builder()
                         .containerUri(String.format("%s:v1.0", exampleAwsEcrRepository.repositoryUrl()))
                         .build())
                     .build())
                 .authorizerConfiguration(AgentcoreAgentRuntimeAuthorizerConfigurationArgs.builder()
                     .customJwtAuthorizer(AgentcoreAgentRuntimeAuthorizerConfigurationCustomJwtAuthorizerArgs.builder()
                         .discoveryUrl("https://accounts.google.com/.well-known/openid-configuration")
                         .allowedAudiences(                    
                             "my-app",
                             "mobile-app")
                         .allowedClients(                    
                             "client-123",
                             "client-456")
                         .allowedScopes(                    
                             "openid",
                             "email")
                         .build())
                     .build())
                 .networkConfiguration(AgentcoreAgentRuntimeNetworkConfigurationArgs.builder()
                     .networkMode("PUBLIC")
                     .build())
                 .protocolConfiguration(AgentcoreAgentRuntimeProtocolConfigurationArgs.builder()
                     .serverProtocol("MCP")
                     .build())
                 .agentRuntimeName("example_agent_runtime")
                 .description("Agent runtime with JWT authorization")
                 .roleArn(exampleAwsIamRole.arn())
                 .environmentVariables(Map.ofEntries(
                     Map.entry("LOG_LEVEL", "INFO"),
                     Map.entry("ENV", "production")
                 ))
                 .build());
     
         }
     }
     
     
    ### AG-UI Server
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreAgentRuntime;
     import com.pulumi.aws.bedrock.AgentcoreAgentRuntimeArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactContainerConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeNetworkConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeProtocolConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     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) {
             var example = new AgentcoreAgentRuntime("example", AgentcoreAgentRuntimeArgs.builder()
                 .agentRuntimeArtifact(AgentcoreAgentRuntimeAgentRuntimeArtifactArgs.builder()
                     .containerConfiguration(AgentcoreAgentRuntimeAgentRuntimeArtifactContainerConfigurationArgs.builder()
                         .containerUri(String.format("%s:latest", exampleAwsEcrRepository.repositoryUrl()))
                         .build())
                     .build())
                 .networkConfiguration(AgentcoreAgentRuntimeNetworkConfigurationArgs.builder()
                     .networkMode("PUBLIC")
                     .build())
                 .protocolConfiguration(AgentcoreAgentRuntimeProtocolConfigurationArgs.builder()
                     .serverProtocol("AGUI")
                     .build())
                 .agentRuntimeName("example_agui_runtime")
                 .description("Agent runtime with AG-UI protocol")
                 .roleArn(exampleAwsIamRole.arn())
                 .build());
     
         }
     }
     
     
    ### Agent runtime artifact from S3 with Code Configuration
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentcoreAgentRuntime;
     import com.pulumi.aws.bedrock.AgentcoreAgentRuntimeArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactCodeConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactCodeConfigurationCodeArgs;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeAgentRuntimeArtifactCodeConfigurationCodeS3Args;
     import com.pulumi.aws.bedrock.inputs.AgentcoreAgentRuntimeNetworkConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     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) {
             var example = new AgentcoreAgentRuntime("example", AgentcoreAgentRuntimeArgs.builder()
                 .agentRuntimeArtifact(AgentcoreAgentRuntimeAgentRuntimeArtifactArgs.builder()
                     .codeConfiguration(AgentcoreAgentRuntimeAgentRuntimeArtifactCodeConfigurationArgs.builder()
                         .code(AgentcoreAgentRuntimeAgentRuntimeArtifactCodeConfigurationCodeArgs.builder()
                             .s3(AgentcoreAgentRuntimeAgentRuntimeArtifactCodeConfigurationCodeS3Args.builder()
                                 .bucket("example-bucket")
                                 .prefix("example-agent-runtime-code.zip")
                                 .build())
                             .build())
                         .entryPoints("main.py")
                         .runtime("PYTHON_3_13")
                         .build())
                     .build())
                 .networkConfiguration(AgentcoreAgentRuntimeNetworkConfigurationArgs.builder()
                     .networkMode("PUBLIC")
                     .build())
                 .agentRuntimeName("example_agent_runtime")
                 .roleArn(exampleAwsIamRole.arn())
                 .build());
     
         }
     }
     
     
    ## Import Using `pulumi import`, import Bedrock AgentCore Agent Runtime using `agentRuntimeId`. For example: ```sh $ pulumi import aws:bedrock/agentcoreAgentRuntime:AgentcoreAgentRuntime example agent-runtime-12345 ```
    • Constructor Detail

      • AgentcoreAgentRuntime

        public AgentcoreAgentRuntime​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • AgentcoreAgentRuntime

        public AgentcoreAgentRuntime​(java.lang.String name,
                                     AgentcoreAgentRuntimeArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • AgentcoreAgentRuntime

        public AgentcoreAgentRuntime​(java.lang.String name,
                                     AgentcoreAgentRuntimeArgs args,
                                     @Nullable
                                     com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • agentRuntimeArn

        public com.pulumi.core.Output<java.lang.String> agentRuntimeArn()
        Returns:
        ARN of the Agent Runtime.
      • agentRuntimeArtifact

        public com.pulumi.core.Output<AgentcoreAgentRuntimeAgentRuntimeArtifact> agentRuntimeArtifact()
        Returns:
        Artifact configuration for the agent runtime, either a container image or code stored in Amazon S3. See `agentRuntimeArtifact` below.
      • agentRuntimeId

        public com.pulumi.core.Output<java.lang.String> agentRuntimeId()
        Returns:
        Unique identifier of the Agent Runtime.
      • agentRuntimeName

        public com.pulumi.core.Output<java.lang.String> agentRuntimeName()
        Returns:
        Name of the agent runtime.
      • agentRuntimeVersion

        public com.pulumi.core.Output<java.lang.String> agentRuntimeVersion()
        Returns:
        Version of the Agent Runtime.
      • authorizerConfiguration

        public com.pulumi.core.Output<java.util.Optional<AgentcoreAgentRuntimeAuthorizerConfiguration>> authorizerConfiguration()
        Returns:
        Authorization configuration for authenticating incoming requests. See `authorizerConfiguration` below.
      • description

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
        Returns:
        Description of the agent runtime.
      • environmentVariables

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> environmentVariables()
        Returns:
        Map of environment variables to pass to the container.
      • filesystemConfigurations

        public com.pulumi.core.Output<java.util.Optional<java.util.List<AgentcoreAgentRuntimeFilesystemConfiguration>>> filesystemConfigurations()
        Returns:
        List of filesystems to mount into the agent runtime. Up to 5 entries are supported. Each entry is one of session storage, Amazon S3 Files access point, or Amazon EFS access point. See `filesystemConfiguration` below.
      • lifecycleConfigurations

        public com.pulumi.core.Output<java.util.List<AgentcoreAgentRuntimeLifecycleConfiguration>> lifecycleConfigurations()
        Returns:
        Runtime session and resource lifecycle configuration for the agent runtime. See `lifecycleConfiguration` below.
      • networkConfiguration

        public com.pulumi.core.Output<AgentcoreAgentRuntimeNetworkConfiguration> networkConfiguration()
        Returns:
        Network configuration for the agent runtime. See `networkConfiguration` below.
      • platformVersion

        public com.pulumi.core.Output<java.lang.String> platformVersion()
        Returns:
        Platform version that controls how the agent runtime starts your agent. Valid values: `V1`, `V2`. When omitted, a new agent runtime uses `V1` and an existing agent runtime keeps its current platform version. `V2` restores each instance from a prepared snapshot, which keeps cold starts consistent regardless of image size. On `V2`, creates and updates take minutes rather than seconds, `environmentVariables` has a smaller total size limit, and availability is limited to a subset of Regions. See [Platform versions](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-how-it-works.html#runtime-platform-versions) for details.
      • protocolConfiguration

        public com.pulumi.core.Output<java.util.Optional<AgentcoreAgentRuntimeProtocolConfiguration>> protocolConfiguration()
        Returns:
        Protocol configuration for the agent runtime. See `protocolConfiguration` below.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • requestHeaderConfiguration

        public com.pulumi.core.Output<java.util.Optional<AgentcoreAgentRuntimeRequestHeaderConfiguration>> requestHeaderConfiguration()
        Returns:
        Configuration for HTTP request headers that will be passed through to the runtime. See `requestHeaderConfiguration` below.
      • roleArn

        public com.pulumi.core.Output<java.lang.String> roleArn()
        Returns:
        ARN of the IAM role that the agent runtime assumes to access AWS services. The following arguments are optional:
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • workloadIdentityDetails

        public com.pulumi.core.Output<java.util.List<AgentcoreAgentRuntimeWorkloadIdentityDetail>> workloadIdentityDetails()
        Returns:
        Workload identity details for the agent runtime. See `workloadIdentityDetails` below.
      • get

        public static AgentcoreAgentRuntime get​(java.lang.String name,
                                                com.pulumi.core.Output<java.lang.String> id,
                                                @Nullable
                                                AgentcoreAgentRuntimeState state,
                                                @Nullable
                                                com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.