using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Ecs.Model.V20140526;
class Program
{
static void Main(string[] args)
{
// Create a client used for initiating a request
IClientProfile profile = DefaultProfile.GetProfile(
"<your-region-id>",
"<your-access-key-id>",
"<your-access-key-secret>");
DefaultAcsClient client = new DefaultAcsClient(profile);
try
{
// Create the request
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.PageSize = 10;
// Initiate the request and get the response
DescribeInstancesResponse response = client.GetAcsResponse(request);
System.Console.WriteLine(response.TotalCount);
}
catch (ServerException ex)
{
System.Console.WriteLine(ex.ToString());
}
catch (ClientException ex)
{
System.Console.WriteLine(ex.ToString());
}
}
}
The default credential provider chain looks for available credentials in the following orders.
Look for environment credentials in environment variable. If the ALIBABA_CLOUD_ACCESS_KEY_ID
and ALIBABA_CLOUD_ACCESS_KEY_SECRET
environment variables are defined and not empty, the program will use them to create default credential.
If there is ~/.alibabacloud/credentials
default file (Windows shows C:\Users\USER_NAME\.alibabacloud\credentials
), the program automatically creates credentials with the specified type and name. The default file is not necessarily exist, but a parse error will throw an exception. The name of configuration item is lowercase.This configuration file can be shared between different projects and between different tools. Because it is outside of the project and will not be accidentally committed to the version control. The path to the default file can be modified by defining the ALIBABA_CLOUD_CREDENTIALS_FILE
environment variable. If not configured, use the default configuration default
. You can also set the environment variables ALIBABA_CLOUD_PROFILE
to use the configuration.
[default] # default setting
enable = true # Enable,Enabled by default if this option is not present
type = access_key # Certification type: access_key
access_key_id = foo # Key
access_key_secret = bar # Secret
[client1] # configuration that is named as `client1`
type = ecs_ram_role # Certification type: ecs_ram_role
role_name = EcsRamRoleTest # Role Name
[client2] # configuration that is named as `client2`
enable = false # Disable
type = ram_role_arn # Certification type: ram_role_arn
region_id = cn-test
policy = test # optional Specify permissions
access_key_id = foo
access_key_secret = bar
role_arn = role_arn
role_session_name = session_name # optional
[client3] # configuration that is named as `client3`
type = rsa_key_pair # Certification type: rsa_key_pair
public_key_id = publicKeyId # Public Key ID
private_key_file = /your/pk.pem # Private Key file
If the environment variable ALIBABA_CLOUD_ECS_METADATA
is defined and not empty, the program will take the value of the environment variable as the role name and request http://100.100.100.200/latest/meta-data/ram/security-credentials/ to get the temporary security credentials.
Use BearerToken to invoke CCC Product
You should install the CCC Product Nuget Package if you want to run the below demo in your local machine.
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.CCC.Model.V20170705;
class Program
{
static void Main(string[] args)
{
// Create a client used for initiating a request
var profile = DefaultProfile.GetProfile("<your-region-id>");
var bearerTokenCredentialProvider = new BearerTokenCredentialProvider("<your-bearertoken>");
var client = new DefaultAcsClient(profile, bearerTokenCredentialProvider);
try
{
// Create the request
var request = new ListPhoneNumbersRequest();
// Initiate the request and get the response
var response = client.GetAcsResponse(request);
// Do something as you want below
}
catch (ServerException ex)
{
System.Console.WriteLine(ex.ToString());
}
catch (ClientException ex)
{
System.Console.WriteLine(ex.ToString());
}
}
}