/install alibabacloud-sdk-client-initialization-for-java
Client Initialization Best Practices (Java)
Core Rules
- Client is thread-safe — safe to share across threads without synchronization.
- Use singleton pattern — do NOT create new client instances per request. Frequent
new Client()calls waste resources and hurt performance. - Prefer explicit endpoint over region-based endpoint resolution.
- preview version
Recommended Client Creation
public class ClientFactory {
private static volatile com.aliyun.ecs20140526.Client instance;
public static com.aliyun.ecs20140526.Client getInstance() throws Exception {
if (instance == null) {
synchronized (ClientFactory.class) {
if (instance == null) {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
config.setEndpoint("ecs.cn-hangzhou.aliyuncs.com");
instance = new com.aliyun.ecs20140526.Client(config);
}
}
}
return instance;
}
}
Endpoint Configuration
Priority: explicit endpoint > region-based resolution via regionId.
// Preferred: explicit endpoint
config.setEndpoint("ecs.cn-hangzhou.aliyuncs.com");
// Alternative: SDK resolves endpoint from region
config.setRegionId("cn-hangzhou");
VPC Endpoints
Use VPC endpoints when running inside Alibaba Cloud VPC (hybrid cloud, leased lines, multi-region):
config.setEndpoint("ecs-vpc.cn-hangzhou.aliyuncs.com");
File Upload APIs (Advance)
For file upload APIs (e.g., Visual Intelligence), set both regionId and endpoint to the same region. Otherwise you may see timeouts due to cross-region OSS access:
config.setRegionId("cn-shanghai");
config.setEndpoint("objectdet.cn-shanghai.aliyuncs.com");
// For VPC file upload authorization:
client._openPlatformEndpoint = "openplatform-vpc.cn-shanghai.aliyuncs.com";
Synchronous vs Asynchronous
| Mode | SDK Artifact | When to Use |
|---|---|---|
| Synchronous | com.aliyun:{productCode}{version} |
Simple flows, low concurrency, easier debugging |
| Asynchronous | com.aliyun:alibabacloud-{productCode}{version} |
High concurrency/throughput, non-blocking I/O |
Async example:
AsyncClient client = AsyncClient.builder()
.region("cn-hangzhou")
.credentialsProvider(provider)
.overrideConfiguration(ClientOverrideConfiguration.create()
.setEndpointOverride("ecs.cn-chengdu.aliyuncs.com"))
.build();
CompletableFuture\x3CDescribeRegionsResponse> response = client.describeRegions(request);
response.thenAccept(resp -> System.out.println(new Gson().toJson(resp)))
.exceptionally(throwable -> { System.out.println(throwable.getMessage()); return null; });
// Always close async client when done
client.close();
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install alibabacloud-sdk-client-initialization-for-java - After installation, invoke the skill by name or use
/alibabacloud-sdk-client-initialization-for-java - Provide required inputs per the skill's parameter spec and get structured output
What is Alibabacloud Sdk Client Initialization For Java?
Initialize and manage Alibaba Cloud SDK clients in Java. Covers singleton pattern, thread safety, endpoint vs region configuration, VPC endpoints, sync vs as... It is an AI Agent Skill for Claude Code / OpenClaw, with 103 downloads so far.
How do I install Alibabacloud Sdk Client Initialization For Java?
Run "/install alibabacloud-sdk-client-initialization-for-java" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Alibabacloud Sdk Client Initialization For Java free?
Yes, Alibabacloud Sdk Client Initialization For Java is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Alibabacloud Sdk Client Initialization For Java support?
Alibabacloud Sdk Client Initialization For Java is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Alibabacloud Sdk Client Initialization For Java?
It is built and maintained by yndu13 (@yndu13); the current version is v0.0.2-beta.