阿里云日志服务控制台内嵌分享功能使用

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 针对用户在使用官方文档控制台分享内嵌易出现问题的情况,这里使用RAM用户介绍相关参数的获取及配置,方便初次使用者快速使用该功能。

概述

针对用户在使用官方文档控制台分享内嵌易出现问题的情况,这里使用RAM用户介绍相关参数的获取及配置,方便初次使用者快速使用该功能。

原理图

_

实验步骤

1、为RAM用户授权:AliyunSTSAssumeRoleAccess

_

2、创建RAM角色

_
_

3、为角色授权

_

4、roleArn参数获取

_

5、pom.xml

 <dependencies>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-sts</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>3.5.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.5</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
    </dependencies>

6、Code Sample


import com.alibaba.fastjson.JSON;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.aliyuncs.sts.model.v20150401.AssumeRoleRequest;
import com.aliyuncs.sts.model.v20150401.AssumeRoleResponse;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import static java.lang.System.exit;

/**
 * Hello world!
 *
 */
public class slsconsole
{
    public static void main( String[] args ) {
        // RAM子账户的ak,sk
        String akId = "******";
        String ak = "**********";
        String roleArn = "acs:ram::******:role/slsdemotest";  //角色
        String roleSession = "console-role-session"; // 可以取任何值
        String signInHost = "http://signin.aliyun.com";

        try {

            // 访问令牌获取临时AK & Token
            IClientProfile profile = DefaultProfile.getProfile("cn-beijing", akId, ak);
            DefaultAcsClient client = new DefaultAcsClient(profile);

            AssumeRoleRequest assumeRoleReq = new AssumeRoleRequest();
            assumeRoleReq.setRoleArn(roleArn);
            assumeRoleReq.setRoleSessionName(roleSession);
            assumeRoleReq.setMethod(MethodType.POST);
            assumeRoleReq.setDurationSeconds(3600L);
//            // 默认可以不需要setPolicy,即申请获得角色的所有权限
//            assumeRoleReq.setPolicy(本次生成token实际需要的权限字符串,申请权限必须是角色对应权限的子集); // 权限示例参考链接:https://help.aliyun.com/document_detail/89676.html

            AssumeRoleResponse assumeRoleRes = client.getAcsResponse(assumeRoleReq);
            System.out.println(assumeRoleRes.getCredentials().getAccessKeyId());
            System.out.println(assumeRoleRes.getCredentials().getAccessKeySecret());
            System.out.println(assumeRoleRes.getCredentials().getExpiration());
            System.out.println(assumeRoleRes.getCredentials().getSecurityToken());

            // construct singin url
            String signInTokenUrl = signInHost + String.format(
                    "/federation?Action=GetSigninToken"
                            + "&AccessKeyId=%s"
                            + "&AccessKeySecret=%s"
                            + "&SecurityToken=%s&TicketType=mini",
                    URLEncoder.encode(assumeRoleRes.getCredentials().getAccessKeyId(), "utf-8"),
                    URLEncoder.encode(assumeRoleRes.getCredentials().getAccessKeySecret(), "utf-8"),
                    URLEncoder.encode(assumeRoleRes.getCredentials().getSecurityToken(), "utf-8")
            );

            System.out.println("signInTokenUrl: " + signInTokenUrl);

            // 通过临时AK & Token 获取登录 Token
            HttpGet signInGet = new HttpGet(signInTokenUrl);
            CloseableHttpClient httpClient = HttpClients.createDefault();
            HttpResponse httpResponse = httpClient.execute(signInGet);
            String signInToken = "";
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                String signInRes = EntityUtils.toString(httpResponse.getEntity());
                System.out.println(signInRes);
                signInToken = JSON.parseObject(signInRes).getString("SigninToken");

                if (signInToken == null) {
                    System.out.println("Invalid response message, contains no SigninToken: " + signInRes);
                    exit(-1);
                }
            } else {
                System.out.println("Failed to retrieve signInToken");
                exit(-1);
            }

            // construct final url   通过登录Token生成日志服务Web访问链接进行跳转登录
            // 注意:生成的访问链接只能被使用一次
            String signInUrl = signInHost + String.format(
                    "/federation?Action=Login"
                            + "&LoginUrl=%s"
                            + "&Destination=%s"
                            + "&SigninToken=%s",
                    URLEncoder.encode("https://www.aliyun.com", "utf-8"),
                    URLEncoder.encode("https://sls4service.console.aliyun.com/next/project/yutarotest/logsearch/log5?isShare=true&hideTopbar=true&hideSidebar=true", "utf-8"),
                    URLEncoder.encode(signInToken, "utf-8"));    //注意参数替换:project/<日志服务项目project>/logsearch/<日志库名称>
            System.out.println(signInUrl);  // 直接使用该URL即可
        } catch (ClientException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意: 参考备注修改为自己的参数值后再进行测试。

更多参考

控制台分享内嵌
Java SDK

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
5月前
|
运维 监控 算法
阿里云 OS 控制台:让基础设施运维不再难
涵盖智能异常检测、智能根因分析、智能修复建议的全链路运维解决方案
|
5月前
|
Java 应用服务中间件 Linux
Tomcat运行日志字符错乱/项目启动时控制台日志乱码问题
总结: 通过以上几种方法,概括如下:指定编码格式、设置JVM的文件编码、修改控制台输出编码、修正JSP页面编码和设置过滤器。遵循这些步骤,你可以依次排查和解决Tomcat运行日志字符错乱及项目启动时控制台日志乱码问题。希望这些建议能对你的问题提供有效的解决方案。
936 16
|
5月前
|
自然语言处理 监控 安全
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
529 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
|
7月前
|
运维 API 开发工具
【阿里云】操作系统控制台操作体验与性能评测全解析
操作系统控制台是现代云计算环境中进行系统管理和运维的重要工具,提供系统概览、诊断、观测、管理等功能,支持API、SDK、CLI等管理方式。通过创建角色、系统配置和组件安装等操作,用户可以高效管理云端资源,提升操作系统的使用效率和稳定性。尤其适合需要高效管理操作系统的用户及学习云计算、网络管理的学生。建议增强自定义功能、优化性能报告和完善文档支持,以进一步提升用户体验。
215 21
【阿里云】操作系统控制台操作体验与性能评测全解析
|
5月前
|
运维 监控 算法
这几类运维难题,看阿里云操作系统控制台如何一站式破解
阿里云操作系统控制台给云计算和容器化运维带来新的可能,能够提高系统性能与运维效率,同时为企业减少了系统相关问题带来的困扰。
|
7月前
|
人工智能 运维 数据可视化
玩转云服务器——阿里云操作系统控制台体验测评
在云服务器日益普及的背景下,运维人员对操作系统管理工具的要求不断提高。我们需要一款既能直观展示系统状态,又能智能诊断问题,提供专业指导的控制台。阿里云操作系统管理平台正是基于API、SDK、CLI等多种管理方式,致力于提升操作效率,为用户带来全新的系统运维体验。阿里云操作系统控制台凭借便捷易用的设计和高效的管理功能,成为云服务器运维的强力助手。本次测评基于真实体验截图,对其整体表现进行了深入探索。
271 33
|
7月前
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
273 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
|
6月前
|
弹性计算 运维 监控
【阿里云】操作系统控制台——体验与测评
阿里云操作系统控制台是一款强大的综合管理平台,集健康评估、智能诊断与性能优化于一体。通过可视化界面,用户可便捷高效地管理操作系统,降低运维复杂度。它支持弹性云服务器(ECS)的监控与调优,提供进程热点追踪、系统诊断等功能,帮助用户快速定位问题并给出优化建议。此外,控制台还具备地域限制和组件安装要求,需确保配置一致性。对于中小企业和技术新手,这款工具极大简化了运维流程,提升了资源利用率和系统稳定性。建议增加报告导出功能及内嵌智能助手,进一步优化用户体验。总结来说,该控制台如同“云服务器管家”,让运维更简单、业务更稳定。
|
7月前
|
存储 人工智能 运维
阿里云操作系统控制台评测:国产AI+运维 一站式运维管理平台
本文详细评测了阿里云操作系统控制台,作为一款集运维管理、智能助手和系统诊断于一体的工具,它为企业提供了高效管理云资源的解决方案。文章涵盖登录与服务开通、系统管理与实例纳管、组件管理与扩展功能、系统诊断与问题排查以及实时热点分析与性能优化等内容。通过实际操作展示,该平台显著提升了运维效率,并借助AI智能助手简化了复杂操作。建议进一步完善组件库并增强第三方兼容性,以满足更多高级运维需求。
423 2
|
7月前
|
域名解析 应用服务中间件 网络安全
阿里云个人博客外网访问中断应急指南:从安全组到日志的七步排查法
1. 检查安全组配置:确认阿里云安全组已开放HTTP/HTTPS端口,添加规则允许目标端口(如80/443),授权对象设为`0.0.0.0/0`。 2. 本地防火墙设置:确保服务器防火墙未阻止外部流量,Windows启用入站规则,Linux检查iptables或临时关闭防火墙测试。 3. 验证Web服务状态:检查Apache/Nginx/IIS是否运行并监听所有IP,使用命令行工具确认监听状态。 4. 测试网络连通性:使用外部工具和内网工具测试服务器端口是否开放,排除本地可访问但外网不可的问题。 5. 排查DNS解析:确认域名A记录指向正确公网IP,使用`ping/nslookup`验证解析正
231 2

热门文章

最新文章