Alibaba Cloud Java SDK entegrasyonu ve kullanımıyla ilgili sık sorulan sorular ve çözümler.
Ortam kontrolü
Java 1.8 veya üzeri yüklüdür.
Ağınız Alibaba Cloud API uç noktalarına erişebilir durumdadır.
Yaygın sorunlar
unable to get credentials from any of the providers in the chain: ...
code 403, You are not authorized to do this operation. Action: xxxx
Maven bağımlılıklarını içe aktarırken hata: Could not find artifact com.aliyun:XX:XX
Your request is denied as lack of SSL protection. RequestId.
code: 404, Specified API is not found. Please check your URL and method.
IDEA'da Maven ile bağımlılıklar otomatik olarak indirilemedi.
Yansıma nedeniyle oluşan WARNING mesajlarından nasıl kaçınılır.
SDK.EndpointResolvingError: "No such region 'cn-XX'. Please check your region ID".
OpenAPI çağrılırken hata: code: 401, You have not activated the XXX service veya benzer bir mesaj.
ECS meta veri hizmetinden RAM oturum kimlik bilgisi alınamadı. HttpCode=XX
com.aliyuncs.exceptions.ClientException: SDK.InvalidRegionId: Can not find endpoint to access
AK parametresi iletim sorunları.
Hata iletiniz aşağıdakilerden birini içeriyorsa AccessKey doğru yapılandırılmamış demektir:
V2.0 SDK: Cannot invoke "com.aliyun.credentials.Client.getCredential()" because "this._credential" is null.
V1.0 SDK: ErrCode: MissingAccessKeyId. ErrMsg: AccessKeyId is mandatory for this action.
Çözüm:
-
ALIBABA_CLOUD_ACCESS_KEY_ID ve ALIBABA_CLOUD_ACCESS_KEY_SECRET değerlerinin ayarlandığını doğrulayın:
Linux/macOS
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRETWindows
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%Doğru değerler döndürülüyorsa yapılandırma başarılı olmuştur. Aksi takdirde, bu ortam değişkenlerini Linux, macOS ve Windows sistemlerinde ortam değişkenlerini yapılandırma bölümünde açıklandığı gibi yeniden yapılandırın.
-
Kodunuzda AK ile ilgili hataları kontrol edin.
Yaygın yanlış örnek:
Config config = new Config() .setAccessKeyId(System.getenv("yourAccessKeyID")) .setAccessKeySecret(System.getenv("yourSecret"));Doğru örnek:
Config config = new Config() .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));NotSystem.getenv(), AccessKey ID ve Secret değerlerini ortam değişkenlerinizden alır.
ÖnemliAccessKey bilgilerinizi çevrimiçi kod içinde sabit kodlamayın. Bu uygulama güvenlik riski oluşturur.
unable to get credentials from any of the providers in the chain : ...
Neden: Projeniz varsayılan kimlik bilgisi sağlayıcısını (aşağıda gösterildiği gibi) kullanır ancak desteklenen kimlik bilgisi türlerinden hiçbiri yapılandırılmamıştır.
com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
.setCredential(credential);
Çözüm:
-
AccessKey'i doğrudan kullanmak için:
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() // This example shows how to get the AccessKey ID from an environment variable. .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) // This example shows how to get the AccessKey secret from an environment variable. .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));Diğer kimlik bilgisi türleri için bkz. Erişim kimlik bilgilerini yönetme.
Varsayılan kimlik bilgisini kullanmaya devam etmek için varsayılan kimlik bilgisi sağlayıcı zinciri tarafından desteklenen kimlik bilgisi türlerinden herhangi birini yapılandırmanız gerekir.
code 403, You are not authorized to do this operation. Action: xxxx.
D:\program_files\java\bin\java.exe ...
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
code: 403, You are not authorized to do this operation. Action: dysms:SendSms;Resource: acs:dysms::1360982977xxx:* request id: 70BA0B34-E61C-58C7-988B-4E20151492C3
https://api.alibabacloud.com/troubleshoot?q=NoPermission&product=Dysmsapi&requestId=70BA0B34-E61C-58C7-988B-4E20151492C3
API'yi çağıran RAM kullanıcısı, rolü veya kullanıcı grubunda gerekli izin eksiktir. Hata iletisindeki Action:XXXX değeri reddedilen API işlemini belirtir. Örneğin, Action:dysms:SendSms ifadesi hesabın Short Message Service SendSms API'sini çağırma iznine sahip olmadığını gösterir.
Çözüm:
-
Aşağıdaki belgeye göre özel bir izin ilkesi oluşturması için bir yöneticiyle iletişime geçin. Özel izin ilkesi oluşturma.
NotBu ilke yalnızca Short Message Service (dysms) için
SendSmsçağrılarına izin verir. Action değerini hata iletinizdeki hizmet ve API ile değiştirin.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dysms:SendSms", "Resource": "*" } ] } -
RAM hesabına izinler atayın:
Maven bağımlılıklarını içe aktarırken hata: Could not find artifact com.aliyun:XX:XX
Açıklama:
Maven belirtilen bağımlılığı bulamıyor.
Çözüm:
Projenizde Maven merkezi deposunu aşağıdaki yöntemlerden birini kullanarak yapılandırın:
-
Aşağıdaki içeriği
pom.xmldosyasına ekleyin:<repositories> <repository> <id>central</id> <url>https://repo1.maven.org/maven2</url> </repository> <repository> <id>nexus-noke</id> <url>http://nexus.noke.com/nexus/content/groups/public/</url> </repository> </repositories> -
Aşağıdaki içeriği
settings.xmldosyasına ekleyin:<settings> <!-- Existing settings --> <mirrors> <mirror> <!-- This id can be any unique identifier --> <id>central</id> <mirrorOf>central</mirrorOf> <name>Maven Central Mirror</name> <url>https://repo1.maven.org/maven2</url> </mirror> </mirrors> </settings>
java: Error: release version X not supported.
IntelliJ IDEA'da Proje Yapısını açmak için Ctrl+Alt+Shift+S tuşlarına basın. Modüller'i seçin ve Dil Düzeyi'ni JDK sürümünüzle eşleşecek şekilde ayarlayın (örneğin, JDK 8 için "8 - Lambdas, type annotations etc."). Uygula'yı ve ardından Tamam'ı tıklayın.
java: Compilation failed: internal java compiler error.
IntelliJ IDEA'da Dosya > Ayarlar > Derleme, Yürütme, Dağıtım > Derleyici > Java Derleyicisi yolunu izleyin. Proje bayt kodu sürümü ve Hedef bayt kodu sürümü değerlerinin her ikisini de JDK sürümünüzle eşleşecek şekilde ayarlayın (örneğin, JDK 8 için 8). Uygula'yı ve ardından Tamam'ı tıklayın.
code: 400, <CERTAIN_FIELD > is mandatory for this action.
API çağrısında gerekli bir parametre eksik. Çözüm:
Short Message Service SendSms API'sini kullanan örnek:
OpenAPI Portalındaki API hata ayıklama sayfasına gidin ve cloud ürününü ile API'yi seçin.
Telefon numarası ve imza gibi tüm gerekli alanların doldurulduğundan emin olmak için
SendSmsRequestgibi oluşturulan istek nesnesini dikkatlice karşılaştırın.Gerekli parametreleri onaylamak için API belgelerini kontrol edin.
Gerekli parametre değerlerinin geçerli olduğundan emin olun (örneğin, telefon numarası biçiminin doğru olup olmadığını kontrol edin).
SDK, API'yi çağırmadan önce parametreleri doğrular. Gerekli bir parametre eksikse
MissingRequiredParameterhatası alırsınız. Örneğin, eksik bir telefon numarası "MissingPhoneNumbers: code: 400" hatasını döndürür.
SendSmsRequest sendSmsRequest = new SendSmsRequest()
// Replace with the phone number that will receive the text message.
.setPhoneNumbers("<YOUR_VALUE>")
// Replace with your SMS signature.
.setSignName("<YOUR_VALUE>")
// Replace with your SMS template code.
.setTemplateCode("<YOUR_VALUE>");
java.lang.NoSuchMethodError, java.lang.NoSuchFieldError
Neden:
Bu özel durum, Java çalışma zamanı var olmayan bir yöntemi çağırdığında veya bir alana eriştiğinde oluşur. Yaygın nedenler:
Maven pom.xml veya Gradle build.gradle dosyanızda güncel olmayan bağımlılık sürümü.
Bağımlılık çakışması: Aynı bağımlılığın birden çok sürümü mevcut olduğunda çalışma zamanında daha düşük bir sürüm yüklenir.
Eski önbellek: Bir bağımlılık güncellendikten sonra proje yeniden derlenmemiş veya önbellek temizlenmemiştir.
Derleme zamanı ve çalışma zamanı bağımlılık sürümleri farklıdır.
Classpath çakışması: İçe aktarma sırasında yanlış classpath seçilmiştir.
Çözüm:
classpath'te hata olup olmadığını görmek için Alibaba Cloud OpenAPI Portalı içinde verilen örneği kontrol edin.
Classpath doğruysa hataya neden olan belirli sınıfı özel durum yığın bilgilerinden elde edebilir ve karşılık gelen bağımlılığı ile sürümü bulabilirsiniz.
-
Projedeki doğrudan ve dolaylı bağımlılıkları belirli çakışmalar ve yinelenmelerle birlikte görüntülemek için aşağıdaki komutu çalıştırın.
-
Maven: Maven, bağımlılık sürümlerini çözmek için "en kısa yol ilk" ve "bildirim sırası ilk" ilkelerini kullanır. Bağımlılık sırasını ayarlayarak çakışmaları çözün.
mvn dependency:tree -Dverbose Gradle: Gradle varsayılan olarak "en yüksek sürüm ilk" ilkesini kullanır, bu nedenle yalnızca eski sürümler sorunlara neden olur. En son sürümü almak için 4. adıma geçin.
-
Bağımlılık ağacı çıktısında çakışmaları kontrol edin. Varsa, çakışan bağımlılığın en yüksek sürümünü pom.xml dosyasındaki <dependencies></dependencies> bölümünün en üstüne taşıyın. Yeniden derlemek için
mvn clean install -Ukomutunu çalıştırın. Hata devam ederse aşağıdaki adımlara devam edin.Bağımlılığın en son sürümünü V2.0 Java SDK ortak bağımlılık paketleri bölümünde bulun. pom.xml veya build.gradle dosyanızdaki sürümü güncelleyin.
-
Projeyi temizleyin ve yeniden derleyin:
-
Maven
mvn clean install -U -
Gradle:
gradle clean build --refresh-dependencies
-
Sorunun çözüldüğünü doğrulayın.
Örnek:
Özel durum iletisi java.lang.NoSuchMethodError: com.aliyun.credentials.Client.getCredential() şeklindedir.
Kontrol edildiğinde classpath doğrudur.
Özel durum iletisine göre özel durum
com.aliyun.credentials.Clientsınıfında oluşmuştur. Bu sınıfcredentials-javabağımlılığındadır. Şu anda başvurulan sürüm0.2.4sürümüdür.mvn dependency:tree -Dverbosekomutu çalıştırıldığında üst bağımlılıkcredentials-javabağımlılığıtea-openapiiçinde bir sürüm çakışması olduğu görülmektedir. Şu anda başvurulan sürüm0.3.2olup çakışan sürüm0.3.8sürümüdür.tea-openapi0.3.8sürümüne karşılık gelen üst bağımlılığı <dependencies></dependencies> bölümünün en üstüne taşımanızı öneririz.Projeyi temizlemek ve yeniden derlemek için
mvn clean install -Ukomutunu çalıştırın ve sorunun çözüldüğünü doğrulayın.Sorun devam ederse
credentials-javaöğesinin en son sürümünü Maven Central: com.aliyun:credentials-java adresinden alabilir ve bağımlılığı pom.xml dosyasına manuel olarak ekleyebilirsiniz.
"TeaUnretryableException: timeout", "java.net.SocketTimeoutException: connect timed out", "java.net.SocketTimeoutException: Read timed out", "SDK.ServerUnreachable", "Connection aborted" veya "RemoteDisconnected".
Zaman aşımı sorunlarının birkaç yaygın nedeni vardır:
Ağ bağlantısı sorunları
İstemciniz ile sunucu arasındaki ağ bağlantısı kesilmiş veya kararsızdır.
Çözüm:
Cloud product uç noktasına olan bağlantıyı ping veya curl kullanarak test edin. Örneğin, SendSms API'si zaman aşımına uğrarsa: ping dysmsapi.aliyuncs.com veya curl -v https://dysmsapi.aliyuncs.com.
Komut zaman aşımına uğrarsa güvenlik duvarınızda veya yönlendiricinizde engelleyen politikaları kontrol edin.
Komut başarılı olursa başarısızlıkları önlemek için makul bir zaman aşımı yapılandırın. Bkz. Zaman aşımı mekanizması. Örnek:
// Runtime parameter timeout setting. This is effective only for requests that use this runtime parameter instance.
RuntimeOptions runtimeOptions = new RuntimeOptions();
runtimeOptions.connectTimeout = 5000;
Uzun API işleme süresi
API işleme süresi yapılandırılan okuma zaman aşımını aşıyor.
Çözüm: Okuma zaman aşımını artırın. Bkz. Zaman aşımı mekanizması. Örnek:
// Runtime parameter timeout setting. This is effective only for requests that use this runtime parameter instance.
RuntimeOptions runtimeOptions = new RuntimeOptions();
runtimeOptions.readTimeout = 10000;
Your request is denied as lack of ssl protect. RequestId .
API HTTPS gerektirir ancak isteğiniz HTTP kullanmıştır.
Çözüm:
-
V1.0 SDK için Request nesnesinde HTTPS protokolünü ayarlayın:
request.setSysProtocol(com.aliyuncs.http.ProtocolType.HTTPS); Varsayılan olarak HTTPS kullanan V2.0 SDK'yı kullanın.
code: 404, Specified api is not found, please check your url and method.
Yanlış Endpoint veya RegionId girdiniz. Çözüm:
Bölgenizin hedef hizmeti desteklediğini doğrulayın. Ürünün uç noktasını OpenAPI Geliştirici Portalı ana sayfasında bulun.
Örneğin, Short Message Service için Alibaba Cloud OpenAPI portalına giriş yapın, ürün sayfasına gidin ve doğru bölge kimliğini ile hizmet adresini onaylamak için Service Region List öğesini kontrol edin. SMS hizmeti Endpoint modeli [product_code].[region_id].aliyuncs.com şeklindedir. Yerel bölgeler (cn-beijing, cn-hangzhou, cn-shanghai vb.) için hizmet adresi tek tip olarak dysmsapi.aliyuncs.com şeklindedir.
Unexpected response code for CONNECT: 400.
İstek bir ara düğüm tarafından engellendi ve Alibaba Cloud ağ geçidine ulaşmadı.
Çözüm:
Proxy yapılandırması yanlış olabilir. Test etmek için şunu kullanın: curl https://<Alibaba Cloud hizmet alan adı>/ -v -x <proxy IP>:<proxy port> (örneğin, curl https://ecs-cn-hangzhou.aliyuncs.com/ -v -x 127.0.0.1:3128).
Dahili bir güvenlik duvarı isteği engelliyor olabilir. Ağları değiştirmeyi deneyin (örneğin, mobil热点'a bağlanın).
Can not set java.lang.String field com.aliyun.imm20200930.models.GenerateWebofficeTokenShrinkRequest.userShrink to java.util .
Eski bir Tea paketi sürümü karmaşık bir yapıyı String'e dönüştüremediğinden bu hata oluşur.
Çözüm:
Tea paketini 1.2.7 veya üzeri bir sürüme yükseltin:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea</artifactId>
<version>1.2.7</version>
</dependency>
IDEA'da Maven ile bağımlılıklar otomatik olarak indirilemedi.
-
Maven deposunu güncelleyin
"Dosya" menüsünü açın ve "Ayarlar"ı (veya "Tercihler") seçin. Soldaki gezinme bölmesinde "Derleme, Yürütme, Dağıtım" öğesini genişletin ve ardından "Derleme Araçları" > "Maven" öğesini seçin. "Depolar" sekmesini bulun, yerel depoyu seçin, "Güncelle" düğmesini tıklayın ve güncellemeyi tamamlamasını bekleyin.
-
IDEA önbelleğini kontrol edin
"Dosya" menüsünü açın, "Önbellekleri Geçersiz Kıl..." seçeneğini belirleyin. Görüntülenen iletişim kutusunda "Geçersiz Kıl ve Yeniden Başlat" seçeneğini belirleyin ve IDEA'nın önbelleği temizlemesini ve yeniden başlamasını bekleyin.
-
Ağ bağlantısını kontrol edin
Maven merkezi depoya veya diğer uzak depolara bağlanamazsa bağımlılıkları indiremeyebilir. Ağ bağlantınızın normal olduğundan ve güvenlik duvarlarının veya proxy sunucularının Maven erişimini engellemediğinden emin olun.
-
Maven yapılandırmasını kontrol edin
Maven yapılandırma dosyasının (genellikle settings.xml) doğru yapılandırıldığından emin olun. "localRepository" öğesinin doğru yerel depo yoluna işaret ettiğinden ve "mirrors", "proxies" ile "profiles" öğelerinin doğru yapılandırıldığından emin olun.
Yansıma nedeniyle oluşan WARNING mesajlarından nasıl kaçınılır.
024-11-26 17:05:04.696 INFO 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] c.a.c.s.r.i.ResourceMonitorServiceImpl : instance=rmq-cn-jte3mmyuu0i
024-11-26 17:05:04.696 INFO 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] c.a.c.r.i.ResourceMonitorComponentImpl : getInstanceInfo
024-11-26 17:05:04.699 INFO 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] c.a.c.r.i.ResourceMonitorComponentImpl : tea client
024-11-26 17:05:04.699 INFO 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] c.a.c.r.i.ResourceMonitorComponentImpl : tea runtime
024-11-26 17:05:04.764 WARN 10662 --- [HSFBizProcessor-DEFAULT-9-thread-1] com.aliyun.tea.TeaModel : There are some cast events happening. expect: java.lang.Double
Alibaba Cloud SDK'yı daha yüksek bir JDK sürümüyle kullanırken çıkışta yansımayla ilgili uyarılar görünebilir.
Çözüm:
Uyarıları bastırmak için ALIBABA_CLOUD_SDK_LOG_LEVEL ortam değişkenini ERROR olarak ayarlayın:
-
Ortam değişkenini ayarlayın:
Windows
set ALIBABA_CLOUD_SDK_LOG_LEVEL=ERRORLinux/macOS
export ALIBABA_CLOUD_SDK_LOG_LEVEL=ERROR -
Ortam değişkeni ayarını onaylayın:
Windows
echo %ALIBABA_CLOUD_SDK_LOG_LEVEL%Linux/macOS
echo $ALIBABA_CLOUD_SDK_LOG_LEVEL Uygulamanızı başlatın. Alibaba Cloud SDK'dan gelen uyarı mesajları artık görüntülenmez; yalnızca
ERRORdüzeyindeki veya daha yüksek düzeydeki mesajlar görünür.
Hata ayıklama veya geliştirme için günlük düzeyini değiştirmek üzere ortam değişkeninin değerini
DEBUGveyaINFOolarak değiştirebilirsiniz.
Specified signature does not match our calculation.
at java.lang.Thread.run(Thread.java:748)
ERROR [pool-3-thread-1] 2024-11-12 17:20:00,059 (AliDmsAuditSyncServiceImpl.java:219) - [MS访问事件同步] 异常
com.aliyun.tea.TeaException: code: 400, Specified signature does not match our calculation. server StringToSign is [ACS3-HMAC-SHA256
3d5cxxx ], server CanonicalRequest is [POST
/
İstek imzası sunucu tarafındaki hesaplamayla eşleşmiyor. Olası nedenler:
AccessKey (AK) yanlış kopyalandı
Yanlış imzalama algoritması
İstek parametreleri veya sıraları API gereksinimlerini karşılamıyor.
Çözüm:
Kodunuzdaki AccessKey ID ve Secret değerlerinin konsoldakilerle tam olarak eşleştiğini doğrulayın (fazladan boşluk veya özel karakter olmamalıdır). Mevcut bir AccessKey kullanın veya AccessKey çifti oluşturma bölümünden yeni bir tane oluşturun. Not: AccessKey Secret yalnızca oluşturma sırasında bir kez gösterilir.
-
İmza hesaplama hatalarından kaçınmak için
commons-codecöğesini yükseltin.Bağımlılığı güncelleyin:
Maven
pom.xmldosyasını değiştirin.<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version> <!-- Updated version --> </dependency>Sürüm numarasını güncelledikten sonra aşağıdaki komutu çalıştırın:
mvn clean installGradle
build.gradledosyasında bağımlılığı ekleyin veya güncelleyin:dependencies { implementation 'commons-codec:commons-codec:1.15' // Updated version }Projeyi derlemek için aşağıdaki komutu çalıştırın:
gradle build Kendi kendine imzalama kullanıyorsanız kod mantığınızın V3 istek gövdesi ve imzalama mekanizması ile eşleştiğini doğrulayın.
SDK.EndpointResolvingError: "No such region 'cn-XX'. Please check your region ID".
SDK sürümü çok eski ve hedef bölgeyi veya API'yi desteklemiyor. Çözüm:
SDK çekirdek bağımlılığını yükseltin:
Maven
Proje yönetimi için Maven kullanıyorsanız pom.xml dosyasındaki bağımlılık sürümünü güncelleyin:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.7.2</version>
</dependency>
Gradle
Proje yönetimi için Gradle kullanıyorsanız build.gradle dosyasındaki bağımlılık sürümünü güncelleyin:
dependencies {
implementation 'com.aliyun:aliyun-java-sdk-core:4.7.2'
implementation 'com.aliyun:aliyun-java-sdk-sts:3.1.2'
}
Failed to instantiate [com.aliyuncs.IAcsClient]: Factory method 'iAcsClient' threw exception with message: org/apache/http/conn/ssl/DefaultHostnameVerifier .
Alibaba Cloud SDK ile uyumsuz bir Apache HttpClient sürümü kullanılıyor. Çözüm:
Derleme aracınızın bağımlılık yönetimini kullanarak başka hiçbir kitaplığın uyumsuz bir HttpClient sürümü eklemediğini kontrol edin.
-
Apache HttpClient'ı 4.5.14 veya üzeri bir sürüme güncelleyin:
<dependency> <groupId>org.apache.httpcomponents.client</groupId> <artifactId>httpclient</artifactId> <version>4.5.14</version> <!-- Please check for the latest version --> </dependency>
OpenAPI çağrılırken hata: code: 401, You have not activated the XXX service veya benzer bir mesaj.
Alibaba Cloud hesabınız ilgili hizmeti etkinleştirmedi. XXX hizmet adıdır (örneğin, OCR service). Çözüm:
İlgili hizmetin yönetim konsolunda oturum açın.
Gerekli özelliği bulun ve etkinleştirin.
Hizmetin etkinleştirilmesini bekleyin ve ardından API'yi tekrar çağırın.
ECS meta veri hizmetinden RAM oturum kimlik bilgisi alınamadı. HttpCode=XX
Örnek RAM rolü (ecs_ram_role) kimlik bilgisi yalnızca ekli RAM rolü bulunan bir ECS veya ECI örneğinde kullanılabilir. Bkz. ECS örneği RAM rolü ve API çağırarak ECI örneği RAM rolü kullanma.
-
Bu kimlik bilgisinin çalıştığını doğrulamak için ECS örneğinde aşağıdaki komutu çalıştırın:
-
Linux örneği
# Get the metadata access credential. You must set an expiration time. The request cannot contain the X-Forwarded-For header. 100.100.100.200 is the IPv4 address of the instance metadata service. TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:<metadata_credential_expiration_time>"` # Access instance metadata curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/meta-data/ram/security-credentials/[role-name] -
Windows örneği (PowerShell)
# Get the metadata access credential. You must set an expiration time. The request cannot contain the X-Forwarded-For header. 100.100.100.200 is the IPv4 address of the instance metadata service. $token = Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token-ttl-seconds" = "<metadata_credential_expiration_time>"} -Method PUT -Uri http://100.100.100.200/latest/api/token # Access instance metadata Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token" = $token} -Method GET -Uri http://100.100.100.200/latest/meta-data/ram/security-credentials/[role-name]
Aşağıdaki yanıt döndürülürse örnek RAM rolü kimlik bilgisi kullanılabilir durumdadır:
{ "AccessKeyId" : "AccessKeyIdValue", "AccessKeySecret" : "AccessKeySecretValue", "Expiration" : "2025-07-10T08:37:58Z", "SecurityToken" : "SecurityTokenValue", "LastUpdated" : "2025-07-10T02:33:26Z", "Code" : "Success" } -
Farklı bir kimlik bilgisi türüne geçmek için bkz. Erişim kimlik bilgilerini yönetme.
Bu AccessKey'in sızdırılma riski bulunuyor
Neden: AccessKey'iniz sızdırılma riski altında olabilir. Alibaba Cloud koruyucu kısıtlamalar uygulamıştır.
Request was denied due to api flow control
Neden: API çağrıları çok sık yapıldığından kısıtlama tetikleniyor (örneğin, "ThrottlingException").
Çözüm:
Bir yeniden deneme mekanizması uygulayın ve yükü azaltmak için istekler arasındaki aralığı artırın.
Kod mantığını optimize edin: İstek hacmini azaltmak için toplu işlemeyi veya eşzamansız çağrıları kullanın.
Specified access key denied due to access policy
Neden: Bir AccessKey ağ erişimi kısıtlama ilkesi, kalıcı bir AccessKey'in API istekleri için hangi kaynak IP adresleriyle kullanılabileceğini sınırlar.
Çözüm:
AccessKey ağ erişimi kısıtlama ilkesindeki IP adresi aralığını değiştirin.
AccessKey ağ erişimi kısıtlama ilkesini etkinleştirmeyin.
com.aliyuncs.exceptions.ClientException: SDK.InvalidRegionId : Can not find endpoint to access
Neden: Yanlış parametreler (geçersiz regionId gibi) SDK'nın hizmet uç noktasını bulmasını engeller.
Çözüm:
Alibaba Cloud belgelerine ve kod örneklerine dayanarak tüm yapılandırma parametrelerinin (Endpoint, RegionId vb.) doğru olduğunu doğrulayın.
OpenAPI Geliştirici Portalı içinde API'yi hata ayıklayın. Hata ayıklama başarılı olduktan sonra eksiksiz örnek projeyi yerel kullanım için indirin.
Temel Java özel durumu kontrol listesi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Teknik destek
Diğer sorunlarla karşılaşırsanız bizimle iletişime geçin:
Destek bileti oluşturun: Alibaba Cloud Destek Bileti Oluşturma Sayfası.
İlgili ihtiyaçlarınız veya geri bildirimleriniz varsa Alibaba Cloud teknik desteğiyle iletişime geçmek için DingTalk grubuna katılabilirsiniz. Grup numarası 60965016010'dur.