使用SDK与日志服务的服务器端进行交互时需要指定一些基本配置,本文介绍SDK的基本配置信息。

目前,所有语言的SDK都定义了一个Client类作为入口类,这些基本配置信息需在该入口类构造时指定。

具体包括如下几项:

  • 服务入口(Endpoint):确认Client需要访问的服务入口。

  • 阿里云访问密钥(AccessKey ID和AccessKey Secret):指定Client访问日志服务时使用的访问密钥。

下面详细说明这两个配置的使用方式。

服务入口(Endpoint)

当使用SDK时,首先需要明确访问的日志服务Project所在地域,例如华东1(杭州)、华北1(青岛)等,然后选择与其匹配的日志服务入口初始化Client。该服务入口与API中的服务入口定义一致,具体请参见服务入口

  • 当选择Client的Endpoint时,必须要保证您需要访问的Project的地域和Endpoint对应的地域一致,否则SDK将无法访问您指定的Project。

  • 由于Client实例只能在构造时指定该服务入口,如果需要访问不同地域里的Project,则需要用不同的Endpoint构建不同的Client实例。

  • 目前,所有API的服务入口均支持HTTPS协议和HTTP协议。

  • 如果在阿里云ECS虚拟机内使用SDK,您还可以使用内网Endpoint来避免公网带宽开销。内网Endpoint请参见服务入口

访问密钥(AccessKey)

所有和日志服务端交互的请求都必须经过安全验证,而访问密钥就是用来对请求进行安全验证的关键因子,且以AccessKey ID和AccessKey Secret方式成对出现。在构造Client时需要指定两个参数:访问密钥对(AccessKey ID和AccessKey Secret)。所以在使用SDK前,请在阿里云控制台密钥管理页面获取(或者创建)合适的密钥对并配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。具体操作,请参见在Linux、macOS和Windows系统配置环境变量

重要
  • 您的账号下可以拥有多组访问密钥对,但在构造Client时指定的AccessKey ID和AccessKey Secret必须成对,否则无法通过服务端的安全验证。

  • 指定的访问密钥对必须处于启用状态,否则会被服务端拒绝请求。同样,您也可以到阿里云控制台查看访问密钥的状态。

  • 阿里云账号的AccessKey拥有所有API的访问权限,建议您使用RAM用户的AccessKey进行API访问或日常运维。

  • 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。

示例

则可以使用如下实例化对应的Client:

  • Java

    //在实际使用中,请按照您实际的服务入口进行替换。
    String endpoint = "地域id.example.com";
    // 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
    String accessKeyId =  System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");        
    String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
    Client client = new Client(endpoint, accessKeyId, accessKeySecret);
    //use client to operate log service project......

    更多信息,请参见Java SDK快速入门

  • .NET(C#)

    // 在实际使用中,请按照您实际的服务入口进行替换。
    String endpoint = "地域id.example.com";  
    // 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
    String accessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");   
    String accessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
    SLSClient client = new SLSClient(endpoint, accessKeyId, accessKeySecret);
    //use client to operate sls project......

    更多信息,请参见.NET SDK快速入门

  • PHP

    //在实际使用中,请按照您实际的服务入口进行替换。
    $endpoint = '地域id.example.com'; 
    // 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
    $accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');        
    $accessKey = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'); 
    $client = new Aliyun_Sls_Client($endpoint, $accessKeyId, $accessKey);
    //use client to operate sls project......

    更多信息,请参见PHP SDK快速入门

  • Python

    # 在实际使用中,请按照您实际的服务入口进行替换。
    endpoint = '地域id.example.com'
    # 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
    accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
    accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
    client = LogClient(endpoint, accessKeyId, accessKey)
    #use client to operate log project......

    更多信息,请参见Python SDK快速入门