Ci sono altri AWS SDK esempi disponibili nel repository AWS Doc SDK Examples GitHub .
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esempi di codice per l'SQSutilizzo di Amazon AWS SDKs
I seguenti esempi di codice mostrano come usare Amazon Simple Queue Service (AmazonSQS) con un kit di sviluppo AWS software (SDK).
Le operazioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le operazioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati e negli esempi tra servizi.
Scenari: esempi di codice che mostrano come eseguire un'attività specifica richiamando più funzioni all'interno dello stesso servizio.
Esempi cross-service: applicazioni di esempio che funzionano su più servizi AWS servizi.
Nozioni di base
I seguenti esempi di codice mostrano come iniziare a usare AmazonSQS.
- .NET
-
- AWS SDK for .NET
-
using Amazon.SQS;
using Amazon.SQS.Model;
namespace SQSActions;
public static class HelloSQS
{
static async Task Main(string[] args)
{
var sqsClient = new AmazonSQSClient();
Console.WriteLine($"Hello Amazon SQS! Following are some of your queues:");
Console.WriteLine();
// You can use await and any of the async methods to get a response.
// Let's get the first five queues.
var response = await sqsClient.ListQueuesAsync(
new ListQueuesRequest()
{
MaxResults = 5
});
foreach (var queue in response.QueueUrls)
{
Console.WriteLine($"\tQueue Url: {queue}");
Console.WriteLine();
}
}
}
- C++
-
- SDKper C++
-
Codice per il CMakeLists file.txtCMake.
# Set the minimum required version of CMake for this project.
cmake_minimum_required(VERSION 3.13)
# Set the AWS service components used by this project.
set(SERVICE_COMPONENTS sqs)
# Set this project's name.
project("hello_sqs")
# Set the C++ standard to use to build this target.
# At least C++ 11 is required for the AWS SDK for C++.
set(CMAKE_CXX_STANDARD 11)
# Use the MSVC variable to determine if this is a Windows build.
set(WINDOWS_BUILD ${MSVC})
if (WINDOWS_BUILD) # Set the location where CMake can find the installed libraries for the AWS SDK.
string(REPLACE ";" "/aws-cpp-sdk-all;" SYSTEM_MODULE_PATH "${CMAKE_SYSTEM_PREFIX_PATH}/aws-cpp-sdk-all")
list(APPEND CMAKE_PREFIX_PATH ${SYSTEM_MODULE_PATH})
endif ()
# Find the AWS SDK for C++ package.
find_package(AWSSDK REQUIRED COMPONENTS ${SERVICE_COMPONENTS})
if(WINDOWS_BUILD AND AWSSDK_INSTALL_AS_SHARED_LIBS)
# Copy relevant AWS SDK for C++ libraries into the current binary directory for running and debugging.
# set(BIN_SUB_DIR "/Debug") # If you are building from the command line you may need to uncomment this
# and set the proper subdirectory to the executables' location.
AWSSDK_CPY_DYN_LIBS(SERVICE_COMPONENTS "" ${CMAKE_CURRENT_BINARY_DIR}${BIN_SUB_DIR})
endif()
add_executable(${PROJECT_NAME}
hello_sqs.cpp)
target_link_libraries(${PROJECT_NAME}
${AWSSDK_LINK_LIBRARIES})
Codice per il file sorgente hello_sqs.cpp.
#include <aws/core/Aws.h>
#include <aws/sqs/SQSClient.h>
#include <aws/sqs/model/ListQueuesRequest.h>
#include <iostream>
/*
* A "Hello SQS" starter application that initializes an Amazon Simple Queue Service
* (Amazon SQS) client and lists the SQS queues in the current account.
*
* main function
*
* Usage: 'hello_sqs'
*
*/
int main(int argc, char **argv) {
Aws::SDKOptions options;
// Optionally change the log level for debugging.
// options.loggingOptions.logLevel = Utils::Logging::LogLevel::Debug;
Aws::InitAPI(options); // Should only be called once.
{
Aws::Client::ClientConfiguration clientConfig;
// Optional: Set to the AWS Region (overrides config file).
// clientConfig.region = "us-east-1";
Aws::SQS::SQSClient sqsClient(clientConfig);
Aws::Vector<Aws::String> allQueueUrls;
Aws::String nextToken; // Next token is used to handle a paginated response.
do {
Aws::SQS::Model::ListQueuesRequest request;
Aws::SQS::Model::ListQueuesOutcome outcome = sqsClient.ListQueues(request);
if (outcome.IsSuccess()) {
const Aws::Vector<Aws::String> &pageOfQueueUrls = outcome.GetResult().GetQueueUrls();
if (!pageOfQueueUrls.empty()) {
allQueueUrls.insert(allQueueUrls.cend(), pageOfQueueUrls.cbegin(),
pageOfQueueUrls.cend());
}
}
else {
std::cerr << "Error with SQS::ListQueues. "
<< outcome.GetError().GetMessage()
<< std::endl;
break;
}
nextToken = outcome.GetResult().GetNextToken();
} while (!nextToken.empty());
std::cout << "Hello Amazon SQS! You have " << allQueueUrls.size() << " queue"
<< (allQueueUrls.size() == 1 ? "" : "s") << " in your account."
<< std::endl;
if (!allQueueUrls.empty()) {
std::cout << "Here are your queue URLs." << std::endl;
for (const Aws::String &queueUrl: allQueueUrls) {
std::cout << " * " << queueUrl << std::endl;
}
}
}
Aws::ShutdownAPI(options); // Should only be called once.
return 0;
}
- Go
-
- SDKper Go V2
-
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/sqs"
)
// main uses the AWS SDK for Go V2 to create an Amazon Simple Queue Service
// (Amazon SQS) client and list the queues in your account.
// This example uses the default settings specified in your shared credentials
// and config files.
func main() {
sdkConfig, err := config.LoadDefaultConfig(context.TODO())
if err != nil {
fmt.Println("Couldn't load default configuration. Have you set up your AWS account?")
fmt.Println(err)
return
}
sqsClient := sqs.NewFromConfig(sdkConfig)
fmt.Println("Let's list the queues for your account.")
var queueUrls []string
paginator := sqs.NewListQueuesPaginator(sqsClient, &sqs.ListQueuesInput{})
for paginator.HasMorePages() {
output, err := paginator.NextPage(context.TODO())
if err != nil {
log.Printf("Couldn't get queues. Here's why: %v\n", err)
break
} else {
queueUrls = append(queueUrls, output.QueueUrls...)
}
}
if len(queueUrls) == 0 {
fmt.Println("You don't have any queues!")
} else {
for _, queueUrl := range queueUrls {
fmt.Printf("\t%v\n", queueUrl)
}
}
}
- Java
-
- SDKper Java 2.x
-
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.SqsException;
import software.amazon.awssdk.services.sqs.paginators.ListQueuesIterable;
/**
* Before running this Java V2 code example, set up your development
* environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class HelloSQS {
public static void main(String[] args) {
SqsClient sqsClient = SqsClient.builder()
.region(Region.US_WEST_2)
.build();
listQueues(sqsClient);
sqsClient.close();
}
public static void listQueues(SqsClient sqsClient) {
try {
ListQueuesIterable listQueues = sqsClient.listQueuesPaginator();
listQueues.stream()
.flatMap(r -> r.queueUrls().stream())
.forEach(content -> System.out.println(" Queue URL: " + content.toLowerCase()));
} catch (SqsException e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
}
- JavaScript
-
- SDKper JavaScript (v3)
-
Inizializza un SQS client Amazon ed elenca le code.
import { SQSClient, paginateListQueues } from "@aws-sdk/client-sqs";
export const helloSqs = async () => {
// The configuration object (`{}`) is required. If the region and credentials
// are omitted, the SDK uses your local configuration if it exists.
const client = new SQSClient({});
// You can also use `ListQueuesCommand`, but to use that command you must
// handle the pagination yourself. You can do that by sending the `ListQueuesCommand`
// with the `NextToken` parameter from the previous request.
const paginatedQueues = paginateListQueues({ client }, {});
const queues = [];
for await (const page of paginatedQueues) {
if (page.QueueUrls?.length) {
queues.push(...page.QueueUrls);
}
}
const suffix = queues.length === 1 ? "" : "s";
console.log(
`Hello, Amazon SQS! You have ${queues.length} queue${suffix} in your account.`,
);
console.log(queues.map((t) => ` * ${t}`).join("\n"));
};
- Kotlin
-
- SDKper Kotlin
-
package com.kotlin.sqs
import aws.sdk.kotlin.services.sqs.SqsClient
import aws.sdk.kotlin.services.sqs.paginators.listQueuesPaginated
import kotlinx.coroutines.flow.transform
suspend fun main() {
listTopicsPag()
}
suspend fun listTopicsPag() {
SqsClient { region = "us-east-1" }.use { sqsClient ->
sqsClient
.listQueuesPaginated { }
.transform { it.queueUrls?.forEach { queue -> emit(queue) } }
.collect { queue ->
println("The Queue URL is $queue")
}
}
}