AWS bedrock documentation change
Summary
Removed Go and JavaScript SDK code examples demonstrating how to invoke Amazon Bedrock Runtime models
Security assessment
The change removes standard code examples for invoking Bedrock models without any indication of security vulnerabilities. No security-related content was added or modified. The removal appears to be routine documentation cleanup rather than addressing security concerns.
Diff
diff --git a/bedrock/latest/userguide/service_code_examples_bedrock-runtime.md b/bedrock/latest/userguide/service_code_examples_bedrock-runtime.md index 628938f5c..8d936ac17 100644 --- a//bedrock/latest/userguide/service_code_examples_bedrock-runtime.md +++ b//bedrock/latest/userguide/service_code_examples_bedrock-runtime.md @@ -13,213 +12,0 @@ For a complete list of AWS SDK developer guides and code examples, see [Using Am -**Get started** - -The following code examples show how to get started using Amazon Bedrock. - -Go - - -**SDK for Go V2** - - -###### Note - -There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/bedrock-runtime#code-examples). - - - package main - - import ( - "context" - "encoding/json" - "flag" - "fmt" - "log" - "os" - "strings" - - "github.com/aws/aws-sdk-go-v2/aws" - "github.com/aws/aws-sdk-go-v2/config" - "github.com/aws/aws-sdk-go-v2/service/bedrockruntime" - ) - - // Each model provider defines their own individual request and response formats. - // For the format, ranges, and default values for the different models, refer to: - // https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html - - type ClaudeRequest struct { - Prompt string `json:"prompt"` - MaxTokensToSample int `json:"max_tokens_to_sample"` - // Omitting optional request parameters - } - - type ClaudeResponse struct { - Completion string `json:"completion"` - } - - // main uses the AWS SDK for Go (v2) to create an Amazon Bedrock Runtime client - // and invokes Anthropic Claude 2 inside your account and the chosen region. - // This example uses the default settings specified in your shared credentials - // and config files. - func main() { - - region := flag.String("region", "us-east-1", "The AWS region") - flag.Parse() - - fmt.Printf("Using AWS region: %s\n", *region) - - ctx := context.Background() - sdkConfig, err := config.LoadDefaultConfig(ctx, config.WithRegion(*region)) - if err != nil { - fmt.Println("Couldn't load default configuration. Have you set up your AWS account?") - fmt.Println(err) - return - } - - client := bedrockruntime.NewFromConfig(sdkConfig) - - modelId := "anthropic.claude-v2" - - prompt := "Hello, how are you today?" - - // Anthropic Claude requires you to enclose the prompt as follows: - prefix := "Human: " - postfix := "\n\nAssistant:" - wrappedPrompt := prefix + prompt + postfix - - request := ClaudeRequest{ - Prompt: wrappedPrompt, - MaxTokensToSample: 200, - } - - body, err := json.Marshal(request) - if err != nil { - log.Panicln("Couldn't marshal the request: ", err) - } - - result, err := client.InvokeModel(ctx, &bedrockruntime.InvokeModelInput{ - ModelId: aws.String(modelId), - ContentType: aws.String("application/json"), - Body: body, - }) - - if err != nil { - errMsg := err.Error() - if strings.Contains(errMsg, "no such host") { - fmt.Printf("Error: The Bedrock service is not available in the selected region. Please double-check the service availability for your region at https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/.\n") - } else if strings.Contains(errMsg, "Could not resolve the foundation model") { - fmt.Printf("Error: Could not resolve the foundation model from model identifier: \"%v\". Please verify that the requested model exists and is accessible within the specified region.\n", modelId) - } else { - fmt.Printf("Error: Couldn't invoke Anthropic Claude. Here's why: %v\n", err) - } - os.Exit(1) - } - - var response ClaudeResponse - - err = json.Unmarshal(result.Body, &response) - - if err != nil { - log.Fatal("failed to unmarshal", err) - } - fmt.Println("Prompt:\n", prompt) - fmt.Println("Response from Anthropic Claude:\n", response.Completion) - } - - - - - * For API details, see [InvokeModel](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/bedrockruntime#Client.InvokeModel) in _AWS SDK for Go API Reference_. - - - - -JavaScript - - -**SDK for JavaScript (v3)** - - -###### Note - -There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/bedrock-runtime#code-examples). - - - /** - * @typedef {Object} Content - * @property {string} text - * - * @typedef {Object} Usage - * @property {number} input_tokens - * @property {number} output_tokens - * - * @typedef {Object} ResponseBody - * @property {Content[]} content - * @property {Usage} usage - */ - - import { fileURLToPath } from "node:url"; - import { - BedrockRuntimeClient, - InvokeModelCommand, - } from "@aws-sdk/client-bedrock-runtime"; - - const AWS_REGION = "us-east-1"; - - const MODEL_ID = "anthropic.claude-3-haiku-20240307-v1:0"; - const PROMPT = "Hi. In a short paragraph, explain what you can do."; - - const hello = async () => { - console.log("=".repeat(35)); - console.log("Welcome to the Amazon Bedrock demo!"); - console.log("=".repeat(35)); - - console.log("Model: Anthropic Claude 3 Haiku"); - console.log(`Prompt: ${PROMPT}\n`); - console.log("Invoking model...\n"); - - // Create a new Bedrock Runtime client instance. - const client = new BedrockRuntimeClient({ region: AWS_REGION }); - - // Prepare the payload for the model. - const payload = { - anthropic_version: "bedrock-2023-05-31", - max_tokens: 1000, - messages: [{ role: "user", content: [{ type: "text", text: PROMPT }] }], - }; - - // Invoke Claude with the payload and wait for the response. - const apiResponse = await client.send( - new InvokeModelCommand({ - contentType: "application/json", - body: JSON.stringify(payload), - modelId: MODEL_ID, - }), - ); - - // Decode and return the response(s) - const decodedResponseBody = new TextDecoder().decode(apiResponse.body); - /** @type {ResponseBody} */ - const responseBody = JSON.parse(decodedResponseBody); - const responses = responseBody.content; - - if (responses.length === 1) { - console.log(`Response: ${responses[0].text}`); - } else { - console.log("Haiku returned multiple responses:");