Ниже приведен мой код с использованием API для создания VPC в AWS, но я получаю сообщение об ошибке.Не удалось создать VPC в AWS с использованием Java SDK
Код:
CreateAccessKeyRequest key = new CreateAccessKeyRequest();
BasicAWSCredentials cred = new BasicAWSCredentials("", "");
key.setRequestCredentials(cred);
AmazonEC2 ec2 = new AmazonEC2Client();
System.out.println("Creating VPC.....\n");
CreateVpcRequest newVPC = new CreateVpcRequest("In");
newVPC.setRequestCredentials(key.getRequestCredentials());
String cidrBlock = "192.168.1.70/28";
newVPC.setCidrBlock(cidrBlock);
newVPC.setInstanceTenancy(Tenancy.Default);
AmazonIdentityManagementClient client = new AmazonIdentityManagementClient(cred);
CreateVpcResult res = ec2.createVpc(newVPC);
Vpc vp = res.getVpc();
vp.setIsDefault(true);
String vpcId = vp.getVpcId();
System.out.println("Created VPC" + vpcId);
Ошибка:
Exception in thread "main" com.amazonaws.AmazonClientException: Unable to load AWS credentials from any provider in the chain
at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:117)
at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:10540)
at com.amazonaws.services.ec2.AmazonEC2Client.createVpc(AmazonEC2Client.java:5709)
at CreateUserRequest.main(CreateUserRequest.java:29)
Сообщение об ошибке жалуется на отсутствие учетных данных, и вы делаете «новые BasicAWSCredentials (« »,« »)'? – bsvingen
Я жестко закодировал учетные данные внутри класса BasicAWSCredentials, по-прежнему та же ошибка. –
Зачем нужен объект CreateAccessKeyRequest? Почему бы просто не использовать непосредственно объект «BasicAWSCredentials»? Или даже лучше, почему бы не взять все учетные данные из вашего кода и использовать файл профиля учетных данных или переменные среды (согласно [Предоставление AWS Credentials в AWS SDK для Java] (http: //docs.aws.amazon. ком/AWSSdkDocsJava/последний/DeveloperGuide/credentials.html))? – bsvingen