首页> 搜索结果页
"oss secret" 检索
共 505 条结果
容器开启数据服务之旅系列(二):Kubernetes如何助力Spark大数据分析
容器开启数据服务之旅系列(二):Kubernetes如何助力Spark大数据分析 (二):Kubernetes如何助力Spark大数据分析 概述 本文为大家介绍一种容器化的数据服务Spark + OSS on ACK,允许Spark分布式计算节点对阿里云OSS对象存储的直接访问。借助阿里云Kubernetes容器服务与阿里云OSS存储资源的深度整合,允许Spark分布式内存计算,机器学习集群对云上的大数据直接进行分析和保存结果。 先决条件 你已经通过阿里云容器服务创建了一个Kubernetes集群,详细步骤参见创建Kubernetes集群 从容器服务控制台创建一个Spark OSS实例 使用三次点击来创建一个1 master + 3 worker 的Spark OSS的实例 1 登录 https://cs.console.aliyun.com/2 点击 “应用目录”3 选择 "spark-oss", 点击 “参数” 给你的应用一个名字, e.g. spark-oss-online2 (必选)填写你的oss_access_key_id和oss_access_key_secret Worker: # set OSS access keyID and secret oss_access_key_id: <Your sub-account> oss_access_key_secret: <your key_secret of sub-account> (可选)修改工作节点数目 Worker.Replicas: 3  4 点击 “部署”5 点击 “Kubernetes 控制台”,查看部署实例  6 点击 服务, 查看外部端点, 点击URL访问Spark集群   7 测试Spark集群 打开一个spark-shell kubectl get pod | grep worker spark-oss-online2-worker-57894f65d8-fmzjs 1/1 Running 0 44m spark-oss-online2-worker-57894f65d8-mbsc4 1/1 Running 0 44mspark-oss-online2-worker-57894f65d8-zhwr4 1/1 Running 0 44m kubectl exec -it spark-oss-online2-worker-57894f65d8-fmzjs -- /opt/spark/bin/spark-shell --master spark://spark-oss-online2-master:7077 粘贴下列代码,使用Spark测试OSS的读写性 // Save RDD to OSS bucket val stringRdd = sc.parallelize(Seq("Test Strings\n Test String2")) stringRdd.saveAsTextFile("oss://eric-new/testwrite12") // Read data from OSS bucket val lines = sc.textFile("oss://eric-new/testwrite12") lines.take(10).foreach(println) Test StringsTest String2 CLI 命令行操作 Setup keys and deploy spark cluster in one command export OSS_ID=<your oss id> export OSS_SECRET=<your oss secrets> helm install -n myspark-oss --set "Worker.oss_access_key_id="$OSS_ID",Worker.oss_access_key_secret="$OSS_SECRET incubator/spark-oss kubectl get svc| grep oss myspark-oss-master ClusterIP 172.19.9.111 <none> 7077/TCP 2m myspark-oss-webui LoadBalancer 172.19.13.1 120.55.104.27 8080:30477/TCP 2m
文章
分布式计算 · 大数据 · 对象存储 · Spark · 容器
2018-04-04
阿里云Kubernetes CSI实践 - 静态OSS卷
环境准备 集群创建、依赖配置、CSI插件部署等请参考:CSI部署详解 创建OSS Bucket 到OSS控制台创建OSS Bucekt:参考文档 注意:相同region的OSS Bucket 可以使用内网地址进行挂载; 创建Secret、静态PV、PVC 本示例通过Secret来配置用户的AK信息: apiVersion: v1 kind: Secret metadata: name: oss-secret namespace: default stringData: akId: *** akSecret: *** 通过上面模板创建secret,注意namespace需要和应用所在namespaces一致; 配置:akId、akSecret参数; 通过下面模板创建静态卷PV、PVC: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: oss-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: oss-csi-pv spec: capacity: storage: 5Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: data-id nodePublishSecretRef: name: oss-secret namespace: default volumeAttributes: bucket: "oss" url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o max_stat_cache_size=0 -o allow_other" nodePublishSecretRef:定义挂载pv时通过secret对象来获取ak信息; volumeHandle:PV Handler,可以配置为一个随机值; bucket、url、otherOpts:分别表示OSS Bucket、挂载点、挂载可选参数; # kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE oss-pvc Bound oss-csi-pv 5Gi RWX 20s # kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE oss-csi-pv 5Gi RWX Retain Bound default/oss-pvc 21s 直接配置PV、PVC的AK 上面步骤是通过secret为plugin提供ak信息,也可以直接在pv中配置AK信息。如下面模板所示: apiVersion: v1 kind: PersistentVolume metadata: name: oss-csi-pv spec: capacity: storage: 5Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: data-id volumeAttributes: bucket: "oss" url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o max_stat_cache_size=0 -o allow_other" akId: "***" akSecret: "***" 创建应用 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 volumeMounts: - name: oss-pvc mountPath: "/data" volumes: - name: oss-pvc persistentVolumeClaim: claimName: oss-pvc 验证挂载、高可用 查看pod,验证OSS挂载成功,创建测试文件; # kubectl get pod NAME READY STATUS RESTARTS AGE nginx-deployment-f57ddc9b9-xthj8 1/1 Running 0 31s # kubectl exec nginx-deployment-f57ddc9b9-xthj8 ls /data hello test # kubectl exec nginx-deployment-f57ddc9b9-xthj8 mount | grep oss ossfs on /data type fuse.ossfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other) # kubectl exec nginx-deployment-f57ddc9b9-xthj8 touch /data/testnew # kubectl exec nginx-deployment-f57ddc9b9-xthj8 ls /data hello test testnew 删除Pod,查看重建Pod是否数据稳定; # kubectl delete pod nginx-deployment-f57ddc9b9-xthj8 pod "nginx-deployment-f57ddc9b9-xthj8" deleted # kubectl get pod NAME READY STATUS RESTARTS AGE nginx-deployment-f57ddc9b9-pfqql 1/1 Running 0 6s # kubectl exec nginx-deployment-f57ddc9b9-pfqql ls /data hello test testnew
文章
应用服务中间件 · 对象存储 · nginx · Perl · 容器 · Kubernetes
2019-07-13
OSS登陆问题AccessKeyID
用户登陆阿里云时会输入用户名和密码,利用这个用户名和密码可以获取OSS的Access  Key  ID 和 Access Key  Secret吗?(如果没有,希望可以提供相应API,根据登陆阿里云的用户名密码,可以获取OSS的KeyID, Key Secret) 如果不可以的话,根据OSS API做第三方应用时,每次输入KeyID 和Key Secret都是没规则的长字符串,很麻烦。
问答
API · 对象存储 · 数据安全/隐私保护
2014-11-19
江门开诊断证明-gow
江门开诊断证明-gow(微)电〗【186-6605-3854〗首先安装gdebi,然后使用gdebi安装下载好的安装包。 sudo apt-get update sudo apt-get install gdebi-core sudo gdebi your_ossfs_package CentOS sudo yum localinstall your_ossfs_package 要运行ossfs,您需要提供要挂载的bucket,对应的access_key_id/access_key_secret,该bucket对应的url以及挂载的位置。 首先设置bucket name, access key/id信息,将其存放在~/.passwd-ossfs文件中,注意这个文件的权限必须被正确设置,建议设为600。 echo your_bucket_name:your_key_id:your_key_secret > ~/.passwd-ossfs chmod 600 ~/.passwd-ossfs然后将oss bucket挂载到指定目录 ossfs your_oss_bucket your_mount_dir -ourl=your_oss_service_url 示例 假设将ossfs-fuse这个bucket 挂载到/tmp/ossfs目录下,access key id是faint,access key secret是123,oss service url是http://oss-cn-hangzhou.aliyuncs.com echo ossfs-fuse:faint:123 > ~/.passwd-ossfs chmod 600 ~/.passwd-ossfs mkdir /tmp/ossfs ossfs ossfs-fuse /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com 注1:您可在oss控制台的“OSS域名”这一栏查询bucket的url。 如果您是在阿里云ECS上使用ossfs,请使用内网url,这样流量免费。 上图例子中,为ossfs传入的bucket name是render_120428i79,url是http://oss-cn-hangzhou.aliyuncs.com。 注2:ossfs允许用户指定多组bucket/access_key_id/access_key_secret信息。当有多组信息,写入.passwd-ossfs的信息格式为: your_bucket_name1:your_access_key_id1:your_access_key_secret1 your_bucket_name2:your_access_key_id2:your_access_key_secret2 ……
问答
弹性计算 · Linux · 对象存储
2019-12-01
ClientUnable to execute HTTP requestSocketException
private static final String OSS_ALIYUN_OSS_ENDPOINT = "http://oss-cn-hangzhou.aliyuncs.com" ; private static final String OSS_ALIYUN_SDK_OSS_APPKEY = "" ; private static final String OSS_ALIYUN_SDK_OSS_APPKEY_ACCESS_KEY_SECRET = "" ; private static String BUCKET_NAME = "" ;    // [font='宋体']初始化 ossclient    OSSClient client = new OSSClient ( OSS_ALIYUN_OSS_ENDPOINT , OSS_ALIYUN_SDK_OSS_APPKEY , OSS_ALIYUN_SDK_OSS_APPKEY_ACCESS_KEY_SECRET ) ;    try {       client .putObject ( BUCKET_NAME , key , in , new ObjectMetadata ()) ;    } catch ( Exception e ) {       e .printStackTrace () ;    } finally {       client .shutdown () ;    } }[size=; font-size: 13.5pt,13.5pt] 为什么汇报 [Client]Unable to execute HTTP request: SocketException, Connect to bljr.oss-cn-hangzhou.aliyuncs.com:80 [bljr.oss-cn-hangzhou.aliyuncs.com/127.0.1.6] failed: 有人遇到过吗? 为什么同事的那里可以,我这里不可以
问答
2017-12-26
MSSQL · 最佳实践 · RDS SDK实现数据库迁移上阿里云RDS SQL Server
title: MSSQL · 最佳实践 · RDS SDK实现数据库迁移上阿里云RDS SQL Server author: 风移 摘要 至今,我们完成了SQL Server备份还原专题系列七篇月报分享:三种常见的数据库备份、备份策略的制定、查找备份链、数据库的三种恢复模式与备份之间的关系、利用文件组实现冷热数据隔离备份方案、如何监控备份还原进度、以及阿里云RDS SQL自动化迁移上云的一种解决方案,本期我们分享如何使用阿里云RDS SDK来实现用户线下数据备份文件迁移上阿里云RDS SQL Server。 适用场景 对于那些不想通过RDS控制台来实现数据库上云RDS SQL Server,具有编程能力的,可以考虑使用RDS SDK来实现线下数据库迁移上云RDS SQL实例上。 实现分析 由于用户线下数据库备份文件位于OSS中,所以迁移上云需要设计到OSS相关的SDK和RDS相关的SDK。 OSS详情 由于用户的线下数据库备份文件存放在OSS上的Bucket中,因此从OSS中获取数据库备份文件需要使用到OSS的SDK;从OSS上获取备份文件的同时,我们还需要知道OSS Bucket所在的Region,因为迁移上云要求RDS实例和OSS Bucket处在同一个Region中。从这些分析来看,我们必须要知道OSS Bucket名字,所在的Endpoint和备份文件名bak_file_key。 RDS详情 RDS实例是指用户需要迁移上云的目标RDS SQL实例,我们需要知道RDS SQL实例的版本信息(RDS SQL 2008R2和2012及以上版本输入参数稍有不同),实例所在的Region(RDS实例需要和OSS Bucket处在同一个Region)以及目标实例上数据库的名字。从分析来看RDS实例,我们需要知道RDS SQL ID和数据库名字。 输入参数 访问阿里云资源,用户需要带上阿里云账户或者子账户的AK,即access_key_id和access_key_secret,因此这两个参数也必不可少。所以,最后我们的输入参数定义为以下七个参数。 access_key_id : 阿里云用户 access key id access_key_secret : 阿里云用户access key secret rds_instance_id : RDS SQL实例ID database_name : 目标实例数据库名字 oss_endpoint : OSS Endpoint地址 oss_bucket : OSS Bucket名 bak_file_key : 用户备份在OSS Bucket中的文件名 具体实现 实现分析完毕后,以下章节详细介绍具体的实现方法,包括: 准备工作 代码实现 使用方法 准备工作 安装python 首先请根据python官网的引导安装合适的Python版本,推荐安装2.7.10。安装完毕后,查看Python版本 Windows C:\>c:\Python27\python.exe -V Python 2.7.10 上面的输出表明您已经成功安装了Python 2.7.10版本。如果提示“不是内部或外部命令”,请检查配置“环境变量”-“Path”,增加Python的安装路径和pip命令的目录。如图: Mac /Linux/Unix $ python -V Python 2.7.10 安装SDK依赖包 使用pip安装或者git clone源码安装,任选其一,推荐pip安装,简单方便快捷。 Pip安装 pip install aliyun-python-sdk-rds pip install oss2 源码安装 # git 克隆openapi git clone https://github.com/aliyun/aliyun-openapi-python-sdk.git # 安装阿里云 SDK 核心库 cd aliyun-python-sdk-core python setup.py install # 安装阿里云 RDS SDK cd aliyun-python-sdk-rds python setup.py install # git 克隆OSS SDK git clone https://github.com/aliyun/aliyun-oss-python-sdk.git cd aliyun-oss-python-sdk # 安装OSS2 python setup.py install 代码实现 在本文,使用python版RDS SDK实现数据库迁移上云RDS SQL Server,当然你也可以使用C#版、Java版等其他版本,详细的代码实现如下: #!/usr/bin/python # -*- coding: utf-8 -*- """*************************************************************************************** # Script name : RdsSQLCreateMigrateTask.py # Author : jianming.wjm@alibaba-inc.com # Create Date : 2018-06-10 19:27 # Language : Python 2.7.10 # Dev platform : Mac OS X 10.12.6 # Purpose : This script is for Migration user SQL Server databases localy to alibaba cloud RDS SQL Server. Users' FULL backup files are located on theirselves' OSS Bucket folder already. This script helps users to do migration a offline databases to alibaba cloud RDS SQL Server instance. We achieve those accomplishments by call alibaba cloud RDS OPENAPI. # Limitation : RDS Edition : Support RDS edition listed below '2008R2', '2012','2012_web','2012_std', '2012_ent', '2012_std_ha', '2012_ent_ha', '2014_web','2014_std', '2014_ent', '2014_std_ha', '2014_ent_ha', '2016_web','2016_std', '2016_ent', '2016_std_ha', '2016_ent_ha' # Usage : Help : python RdsSQLCreateMigrateTask.py -h Example : RdsSQLCreateMigrateTask.py -k <access_key_id> -s <access_key_secret> -i <rds_instance_id> -d <database_name> -e <oss_endpoint> -b <oss_bucket> -f <bak_file_key> variables description access_key_id : alibaba cloud user access key id, fg: LTAIKeRvKPRwkaU3 access_key_secret : alibaba cloud user access key secret, fg: BbZ7xhrertQ0dfgMqfAZPByhnp4G2k rds_instance_id : RDS SQL instance ID, fg: rm-2zesz4564ud8s7123 database_name : The database name will be on RDS. oss_endpoint : OSS Endpoint address, fg: oss-cn-beijing.aliyuncs.com oss_bucket : OSS Bucket name, fg: test-oss-bucket bak_file_key : The backup file key on OSS,fg: Migration/TestMigration_FULL_20180523225534.bak : calling example: $ python RdsSQLCreateMigrateTask.py -k LTAIKeRvKPRwkaU3 -s BbZ7xhrertQ0dfgMqfAZPByhnp4G2k -i rm-2zesz4564ud8s7123 -d testmigrate -e oss-cn-beijing.aliyuncs.com -b test-oss-bucket -f Migration/TestMigration_FULL_20180523225534.bak # Output : There two sesction output, one is the input variables and the other is the migration requests and response. *********************Input variables************************************* ************************************************************************ *********************Migration requests********************************** ************************************************************************ # Modify Author : jianming.wjm@alibaba-inc.com # Modify Date : 2018-06-11 21:43 # Function: #************************************************************************************** """ import json import os import sys, getopt import re import oss2 import time from aliyunsdkcore.client import AcsClient from aliyunsdkrds.request.v20140815 import DescribeMigrateTasksForSQLServerRequest from aliyunsdkrds.request.v20140815 import CreateMigrateTaskRequest from aliyunsdkrds.request.v20140815 import DescribeDBInstanceAttributeRequest def main(argv): access_key_id = access_key_secret = rds_instance_id = oss_endpoint = oss_bucket = bak_file_key = database_name = '' # usage help try: opts, args = getopt.getopt(argv,"hk:s:i:d:e:b:f:",["access_key_id=", "access_key_secret=", "rds_instance_id=", "database_name=", "oss_endpoint=", "oss_bucket=", "bak_file_key="]) except getopt.GetoptError: print ('%s -k <access_key_id> -s <access_key_secret> -i <rds_instance_id> -d <database_name> -e <oss_endpoint> -b <oss_bucket> -f <bak_file_key>' % (sys.argv[0])) sys.exit(2) for opt, arg in opts: if opt == '-h': print ('%s -k <access_key_id> -s <access_key_secret> -i <rds_instance_id> -d <database_name> -e <oss_endpoint> -b <oss_bucket> -f <bak_file_key>' % (sys.argv[0])) sys.exit() elif opt in ("-k", "-K", "--access_key_id"): access_key_id = arg elif opt in ("-s", "-S", "--access_key_secret"): access_key_secret = arg elif opt in ("-i", "-I", "--rds_instance_id"): rds_instance_id = arg elif opt in ("-d", "-D", "--database_name"): database_name = arg elif opt in ("-e", "-E", "--oss_endpoint"): oss_endpoint = arg elif opt in ("-b", "-B", "--oss_bucket"): oss_bucket = arg elif opt in ("-f", "-F", "--bak_file_key"): bak_file_key = arg # show the input parameters print ("\n*********************Input variables****************************************\n" \ "access_key_id = %s\naccess_key_secret = %s\nrds_instance_id = %s\ndatabase_name = %s\n" \ "oss_endpoint = %s\noss_bucket = %s\nbak_file_key = %s\n" \ "***************************************************************************\n" % (access_key_id, access_key_secret, rds_instance_id, database_name, oss_endpoint, oss_bucket, bak_file_key)) ### check RDS & OSS region to make sure they are located in the same region. # get RDS details success, rds_details = rds_instnace_details(access_key_id, access_key_secret, rds_instance_id) if not success: print ("%s" % rds_details) sys.exit() rds_db_version, rds_engine, rds_region = rds_details["EngineVersion"], rds_details["Engine"], rds_details["RegionId"] # get OSS Bucket success, oss_details, sign_url = oss_bucket_details(access_key_id, access_key_secret, oss_endpoint, oss_bucket, bak_file_key) if not success: print ("%s" % oss_details) sys.exit() oss_region = oss_details.location # support db version checking. if rds_engine != 'SQLServer' \ or rds_db_version not in [ '2008r2', '2012','2012_web','2012_std', '2012_ent', '2012_std_ha', '2012_ent_ha', '2014_web','2014_std', '2014_ent', '2014_std_ha', '2014_ent_ha', '2016_web','2016_std', '2016_ent', '2016_std_ha', '2016_ent_ha']: print("RDS engine doesn't support, this is only for RDS SQL Server engine.") sys.exit() # RDS & OSS Bucket are not under the same region. if not oss_region.endswith(rds_region): print("RDS & OSS Bucket are not located in the same region.") sys.exit() # everything is OK, we'd go to the real business. print ("--[%s] will be migrated to your RDS [%s] and the database name will be [%s]." % (bak_file_key, rds_instance_id, database_name)) # RDS & OSS Bucket are in the same region. print ("\n*********************Migration response**********************************") do_migrate_database(access_key_id, access_key_secret, rds_instance_id, database_name, oss_endpoint, oss_bucket, bak_file_key, rds_db_version, sign_url) print ("************************************************************************") """ action to migrate database into RDS """ def do_migrate_database(access_key_id, access_key_secret, rds_instance_id, database_name, oss_endpoint, oss_bucket, bak_file_key, rds_db_version, sign_url): request = CreateMigrateTaskRequest.CreateMigrateTaskRequest() request.set_DBInstanceId(rds_instance_id) request.set_DBName(database_name) request.set_BackupMode("FULL") request.set_IsOnlineDB(True) if rds_db_version == '2008r2': request.set_DBName(database_name.lower()) request.set_OSSUrls(sign_url) else: request.set_OSSUrls("") request.set_OssObjectPositions("%s:%s:%s" % (oss_endpoint, oss_bucket, bak_file_key)) # OSSEndpoint:OSSBucket:OSSFileKey request.set_CheckDBMode("SyncExecuteDBCheck") success, response = _send_request(access_key_id, access_key_secret, request) if success: print response else: print ("OPENAPI Response Error !!!!! : %s" % response) """ get RDS SQL Instance details via RDS OPENAPI. """ def rds_instnace_details(access_key_id, access_key_secret, rds_instance_id): request = DescribeDBInstanceAttributeRequest.DescribeDBInstanceAttributeRequest() request.set_DBInstanceId(rds_instance_id) success, response = _send_request(access_key_id, access_key_secret, request) if success: if response["Items"]["DBInstanceAttribute"]: # print response["Items"]["DBInstanceAttribute"][0]["EngineVersion"] # print response["Items"]["DBInstanceAttribute"][0]["RegionId"] return True, response["Items"]["DBInstanceAttribute"][0] else: return False, "Couldn't find specify RDS [%s]." % rds_instance_id return False, response """ send request to OPENAPI and get the response details """ def _send_request(access_key_id, access_key_secret, request, region='cn-hangzhou'): request.set_accept_format('json') try: # clt = AcsClient(access_key_id, access_key_secret, 'cn-hangzhou') clt = AcsClient(access_key_id, access_key_secret, region) response_str = clt.do_action_with_exception(request) response_detail = json.loads(response_str) return True, response_detail except Exception as e: return False, e """ get OSS Bucket details via OSS OPENAPI """ def oss_bucket_details(access_key_id, access_key_secret, oss_endpoint, oss_bucket, bak_file_key): try: bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), oss_endpoint, oss_bucket) bucket_info = bucket.get_bucket_info() return True, bucket_info, bucket.sign_url('GET', bak_file_key, 24 * 3600) except Exception as e: return False, e, None """ process entrance main. """ if __name__ == '__main__': main(sys.argv[1:]) 当然,以上代码,你也可以去这里下载以上python脚本。 使用方法 查看Help 你只需要使用-h来查看脚本的使用方法: $ python ~/Downloads/RdsSQLCreateMigrateTask.py -h ~/Downloads/RdsSQLCreateMigrateTask.py -k <access_key_id> -s <access_key_secret> -i <rds_instance_id> -d <database_name> -e <oss_endpoint> -b <oss_bucket> -f <bak_file_key> 一个例子 以下是一个具体的例子: $ python ~/Downloads/RdsSQLCreateMigrateTask.py -k LTAIKeRvKPRwkaU3 -s BbZ7xhrertQ0dfgMqfAZPByhnp4G2k -i rm-2zesz4564ud8s7123 -d testmigrate -e oss-cn-beijing.aliyuncs.com -b test-oss-bucket -f Migration/OPENAPIDemo/TestMigration_FULL_20180523225534.bak 输出结果 执行以上命令以后的结果输出,分为三个部分: 第一部分输入参数:展示所有你的输入参数,以便查询输入错误 第二部分提示信息:告诉你,哪一个备份文件会被迁移到哪个实例的哪一个数据库 第三部分调用返回:RDS OPENAPI SDK的返回信息 *********************Input variables**************************************** access_key_id = LTAIKeRvKPRwkaU3 access_key_secret = BbZ7xhrertQ0dfgMqfAZPByhnp4G2k rds_instance_id = rm-2zesz4564ud8s7123 database_name = testmigrate oss_endpoint = oss-cn-beijing.aliyuncs.com oss_bucket = test-oss-bucket bak_file_key = Migration/OPENAPIDemo/TestMigration_FULL_20180523225534.bak *************************************************************************** --[Migration/OPENAPIDemo/TestMigration_FULL_20180523225534.bak] will be migrated to your RDS [rm-2zesz4564ud8s7123] and the database name will be [testmigrate]. *********************Migration response********************************** {u'DBInstanceId': u'rm-2zesz4564ud8s7123', u'BackupMode': u'FULL', u'MigrateTaskId': u'107081', u'RequestId': u'F5419B88-7575-47BA-BDEB-64D280E36C54', u'TaskId': u'70630059', u'DBName': u'testmigrate'} ************************************************************************ 最后总结 利用本篇文档,你可以很清楚的了解到使用RDS SDK OPENAPI的最佳实践的同时,又可以实现用户线下数据库迁移上阿里云RDS SQL Server的全自动实现方法。 参考链接 阿里云帮助文档中的CreateMigrateTask 阿里云RDS OPENAPI SDK,在github中的源代码,aliyun-openapi-python-sdk
文章
SQL · 关系型数据库 · 数据库 · Python · RDS
2018-07-18
请问如何将ace自带oss里的内容迁移到自购oss
目前ace自带oss里已经存有文件,但无法管理,现在想使用自购的oss,请问要如何才能将已有内容迁移到自购oss? 是否只要在app.yaml里设置: oss_id: xxx oss_secret: xxxoss_bucket: xxx 就可以自动将存量内容迁移到新oss中呢? 非常感谢
问答
对象存储
2016-01-20
ThinkPHP 3使用OSS
准备工作 登录阿里云官网,将鼠标移至产品找到并单击对象存储OSS打开OSS产品详情页面。 在OSS产品详情页中的单击立即开通。 开通服务后,在OSS产品详情页面单击管理控制台直接进入OSS管理控制台界面。您也可以单击位于官网首页右上方菜单栏的控制台,进入阿里云管理控制台首页,然后单击左侧的对象存储OSS菜单进入OSS管理控制台界面。 点击右上角access key按钮,进入子页面点击创建access key按钮,创建成功后获取Access Key ID 和 Access Key Secret 。 安装OSS PHP SDK 关于安装OSS PHP SDK的方法,请参看官网。对于Thinkphp 5,推荐通过 composer 方式管理项目依赖。 打开命令行,切换到项目根目录,输入以下命令 composer require aliyuncs/oss-sdk-php 如果一直下载不成功,请在composer reauire之前加入composer中国镜像 composer config -g repo.packagist composer https://packagist.phpcomposer.com 同时,您的项目下的 vendor 文件夹内,也将新建 aliyuncs 文件夹,里面的文件就是OSS库文件及示例文件。 填写配置项 修改文件 /Application/Common/Conf/config.php 'ALIOSS_CONFIG' => array( 'KEY_ID' => '', // 阿里云oss key_id 'KEY_SECRET' => '',  // 阿里云oss key_secret 'END_POINT' => '',  // 阿里云oss endpoint ), 创建实例化函数 文件 /Application/Common/Common/function.php,如果不存在则新建。 require_once('/vendor/autoload.php');

 function new_oss() {
 $config = C('aliyun_oss');
 return new \OSS\OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']); } 控制器中调用OSS 文件 Application/Home/Controller/IndexController.php,可以是任意控制器或模型文件。 public function index()
 {


 $bucket = '<填写您的bucket名称>';
 $object = '<填写您的object名称>';
 $config = C('aliyun_oss'); 
 //创建ossClient
 $ossClient = new_oss();

 //创建bucket
 $ossClient->createBucket($bucket);

 //创建object
 $ossClient->putObject($config['Bucket'], $object, 'object content');

 //获取object内容
 $object = $ossClient->getObject($config['Bucket'], $object);

 //删除object
 $ossClient->deleteObject($bucket, $object);

 //删除bucket
 $ossClient->deleteBucket($bucket); 
}
文章
PHP · 对象存储
2018-07-19
Ruby-SDK之如何实现使用STS访问?
OSS可以通过阿里云STS服务,临时进行授权访问。更多有关STS的内容请参考: 阿里云STS。 使用STS时请按以下步骤进行: 在官网控制台创建子账号,参考OSS STS。在官网控制台创建STS角色并赋予子账号扮演角色的权限,参考OSS STS。使用子账号的AccessKeyId/AccessKeySecret向STS申请临时token。使用临时token中的认证信息创建OSS的Client。使用OSS的Client访问OSS服务。 在使用STS访问OSS时,需要设置:sts_token参数,如下面的例子所示: require 'aliyun/sts'require 'aliyun/oss'sts = Aliyun::STS::Client.new(  access_key_id: '<子账号的AccessKeyId>',  access_key_secret: '<子账号的AccessKeySecret>')token = sts.assume_role('<role-arn>', '<session-name>')client = Aliyun::OSS::Client.new(  endpoint: '<endpoint>',  access_key_id: token.access_key_id,  access_key_secret: token.access_key_secret,  sts_token: token.security_token)bucket = client.get_bucket('my-bucket') 在向STS申请临时token时,还可以指定自定义的STS Policy。这样申请的临时权限是[backcolor=transparent]所扮演角色的权限与Policy指定的权限的交集。下面的例子将通过指定STS Policy申请对my-bucket的只读权限,并指定临时token的过期时间为15分钟: require 'aliyun/sts'require 'aliyun/oss'sts = Aliyun::STS::Client.new(  access_key_id: '<子账号的AccessKeyId>',  access_key_secret: '<子账号的AccessKeySecret>')policy = Aliyun::STS::Policy.newpolicy.allow(['oss:Get*'], ['acs:oss:*:*:my-bucket/*'])token = sts.assume_role('<role arc>', '<session name>', policy, 15 * 60)client = Aliyun::OSS::Client.new(  endpoint: 'ENDPOINT',  access_key_id: token.access_key_id,  access_key_secret: token.access_key_secret,  sts_token: token.security_token)bucket = client.get_bucket('my-bucket') 更详细的用法和参数说明请参考 API文档。
问答
API · 对象存储
2017-10-19
使用Fluentd读写OSS
前言 Fluentd是一个实时开源的数据收集器,基于CRuby实现,td-agent是其商业化版本,由Treasure Data公司维护。本文将介绍如何使Fluentd能够读写OSS。 安装 首先下载并安装td-agent,笔者使用的是td-agent-3.3.0-1.el7.x86_64.rpm,使用rpm命令安装: [root@apache ~]# rpm -ivh td-agent-3.3.0-1.el7.x86_64.rpm 然后,需要安装Fluentd的OSS plugin: [root@apache ~]# /usr/sbin/td-agent-gem install fluent-plugin-aliyun-oss 这里请注意,因为我们使用的是td-agent,安装Fluentd plugin时需要使用td-agent的td-agent-gem(/usr/sbin/td-agent-gem)。原因是td-agent有自己的Ruby,你需要将plugin安装到它的Ruby里面,而不是其他的Ruby,否则将会找不到已经安装好的plugin。 具体可以参见Fluentd的官方文档 安装完成后,我们可以查看安装的OSS plugin: [root@apache ~]# /usr/sbin/td-agent-gem list fluent-plugin-aliyun-oss *** LOCAL GEMS *** fluent-plugin-aliyun-oss (0.0.1) fluent-plugin-aliyun-oss这个plugin包含两部分: Fluent OSS output plugin将数据缓存在本地,达到设定的条件后,将缓存的数据(压缩后,如果设置的话)上传到OSS。 Fluent OSS input plugin首先,OSS的bucket需要配置事件通知,这篇文章介绍了如何设置,得到MNS的Queue与Endpoint。设置好之后,这个plugin会定时地从MNS拉取消息,从消息中获取上传的Objects,最后从OSS读取这些Objects,再发往下游。 下面将分别介绍如何配置,具体的配置参数说明参见github: https://github.com/aliyun/fluent-plugin-oss 配置(向OSS写数据) 下面是一个例子,将读到的数据,每分钟一个文件写到OSS中。其中endpoint/bucket/access_key_id/access_key_secret是必填项,其他的都是可选项。 &lt;system&gt; workers 6 &lt;/system&gt; &lt;match input.*&gt; @type oss endpoint &lt;OSS endpoint to connect to&gt; bucket &lt;Your Bucket&gt; access_key_id &lt;Your Access Key&gt; access_key_secret &lt;Your Secret Key&gt; upload_crc_enable false path "fluent-oss/logs" auto_create_bucket true key_format "%{path}/%{time_slice}/events_%{index}_%{thread_id}.%{file_extension}" #key_format %{path}/events/ts=%{time_slice}/events_%{index}_%{thread_id}.%{file_extension} time_slice_format %Y%m%d-%H store_as gzip &lt;buffer tag,time&gt; @type file path /var/log/fluent/oss/${ENV['SERVERENGINE_WORKER_ID']} timekey 60 # 1 min partition timekey_wait 1s # timekey_use_utc true flush_thread_count 1 &lt;/buffer&gt; &lt;format&gt; @type json &lt;/format&gt; &lt;/match&gt; 我们可以从OSS控制台看到效果: 配置(从OSS读数据) 下面是一个配置示例,其中endpoint/bucket/access_key_id/access_key_secret和MNS的endpoint/queue是必填项,其他的都是可选项。 &lt;source&gt; @type oss endpoint &lt;OSS endpoint to connect to&gt; bucket &lt;Your Bucket&gt; access_key_id &lt;Your Access Key&gt; access_key_secret &lt;Your Secret Key&gt; store_local false store_as gzip flush_batch_lines 800 flush_pause_milliseconds 1 download_crc_enable false &lt;mns&gt; endpoint &lt;MNS endpoint to connect to, E.g.,{account-id}.mns.cn-zhangjiakou-internal.aliyuncs.com&gt; queue &lt;MNS queue&gt; poll_interval_seconds 1 &lt;/mns&gt; &lt;parse&gt; @type json &lt;/parse&gt; &lt;/source&gt; 我们可以从log中看一下运行状态 2019-04-23 15:38:14 +0800 [info]: #5 start to poll message from MNS queue fluentd-oss 2019-04-23 15:38:14 +0800 [info]: #5 http://1305310278558820.mns.cn-zhangjiakou-internal.aliyuncs.com/queues/fluentd-oss/messages 2019-04-23 15:38:14 +0800 [info]: #5 read object fluent-oss/logs/20190423-12/events_10_70226640160100.gz, size 4389548 from OSS 2019-04-23 15:38:15 +0800 [info]: #1 http://1305310278558820.mns.cn-zhangjiakou-internal.aliyuncs.com/queues/fluentd-oss/messages?ReceiptHandle=0BC1EA4E51483D4EAC69736941044AAE-MjY5ODkgMTU1NjAwNTAwODMwNSAzNjAwMDA 2019-04-23 15:38:16 +0800 [info]: #1 start to poll message from MNS queue fluentd-oss 2019-04-23 15:38:16 +0800 [info]: #1 http://1305310278558820.mns.cn-zhangjiakou-internal.aliyuncs.com/queues/fluentd-oss/messages 2019-04-23 15:38:16 +0800 [info]: #1 read object fluent-oss/logs/20190423-09/events_50_69939581261780.gz, size 6750045 from OSS 参考资料 https://github.com/aliyun/fluent-plugin-osshttps://rubygems.org/gems/fluent-plugin-aliyun-osshttps://www.fluentd.org/https://docs.fluentd.org/v1.0/articles/quickstart
文章
消息中间件 · 大数据 · Apache · 对象存储 · 数据格式
2019-04-23
...
跳转至:
阿里云容器服务 ACK
142140 人关注 | 130 讨论 | 840 内容
+ 订阅
  • 【容器训练营】1.12~1.29火热开展中,快加入学习,赢新年“牛转乾坤“盲盒吧
  • 95后宠爱的百变音乐神器,唱鸭玩转云原生AI
  • 云原生架构助力花生日记双11大促
查看更多 >
阿里云存储服务
90377 人关注 | 24 讨论 | 918 内容
+ 订阅
  • 基于DTS+Tablestore的海量订单系统架构设计
  • 基于K8s、NAS、GitLab、Jenkins的持续集成交付容器环境最佳实践
  • NAS支持企业IPv4-IPv6全栈改造方案
查看更多 >
云计算
20485 人关注 | 54641 讨论 | 17211 内容
+ 订阅
  • 高德地图驾车导航内存优化原理与实战
  • 阿里云超低延时 RTS 直播技术方案及应用
  • 直播泛在化的今天, 如何快速搭建不同场景的直播系统
查看更多 >
开发与运维
3555 人关注 | 91208 讨论 | 87568 内容
+ 订阅
  • 直播预告 | CodeDay#5 也能云参会,立即预约探索支付宝终端技术实践
  • 高德地图驾车导航内存优化原理与实战
  • 阿里云超低延时 RTS 直播技术方案及应用
查看更多 >
云原生
49633 人关注 | 4589 讨论 | 11593 内容
+ 订阅
  • 5G 和云原生时代的技术下半场,视频化是最大最新的确定性 ——QCon2020 主题演讲全文
  • 阿里云新品发布会周刊第87期 丨 阿里云MaxCompute 联合帆软重磅发布企业级BI分析解决方案 + 1分钟快速搭建属于自己的数字孪生应用
  • 阿里云文件存储NAS摘获“iTECH2020”年度明星产品奖
查看更多 >