日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

上下文

更新時(shí)間:

本文介紹在函數(shù)計(jì)算中使用Java運(yùn)行時(shí)開(kāi)發(fā)代碼時(shí),所涉及的Context的相關(guān)概念和使用示例。

什么是上下文

當(dāng)函數(shù)計(jì)算運(yùn)行您的函數(shù)時(shí),會(huì)將上下文對(duì)象傳遞到執(zhí)行方法中。該對(duì)象包含有關(guān)調(diào)用、服務(wù)、函數(shù)和執(zhí)行環(huán)境等信息。上下文對(duì)象主要提供了以下參數(shù)。

字段

說(shuō)明

RequestId

本次調(diào)用請(qǐng)求的ID。您可以記錄下該ID,當(dāng)出現(xiàn)問(wèn)題時(shí)方便查詢(xún)。

Function

當(dāng)前調(diào)用的函數(shù)的一些基本信息,例如函數(shù)名、函數(shù)入口、函數(shù)內(nèi)存和超時(shí)時(shí)間。

Credentials

函數(shù)計(jì)算服務(wù)通過(guò)扮演服務(wù)角色而獲取的一組臨時(shí)密鑰,其有效時(shí)間是36小時(shí)。您可以在代碼中使用Credentials去訪問(wèn)相應(yīng)的服務(wù)例如OSS,這就避免了您把自己的AccessKey信息編碼在函數(shù)代碼里。詳細(xì)信息,請(qǐng)參見(jiàn)授予函數(shù)計(jì)算訪問(wèn)其他云服務(wù)的權(quán)限

Logger

函數(shù)計(jì)算封裝過(guò)的logger。

Service

當(dāng)前調(diào)用的服務(wù)的一些基本信息。

接口定義如下。

package com.aliyun.fc.runtime;

public interface Context {

    public String getRequestId();

    public Credentials getExecutionCredentials();

    public FunctionParam getFunctionParam();

    public FunctionComputeLogger getLogger();

    public Service getService();

    # public OpenTracing getTracing();

    public int getRetryCount();
}

示例程序:使用臨時(shí)密鑰訪問(wèn)OSS

該示例演示了如何使用上下文中的臨時(shí)密鑰向OSS中上傳一個(gè)文件,詳細(xì)代碼,請(qǐng)參見(jiàn)java11-oss

package example;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import com.aliyun.fc.runtime.Context;
import com.aliyun.fc.runtime.Credentials;
import com.aliyun.fc.runtime.StreamRequestHandler;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

public class App implements StreamRequestHandler {

    @Override
    public void handleRequest(
            InputStream inputStream, OutputStream outputStream, Context context) throws IOException {

        // Bucket名稱(chēng), 需要預(yù)先創(chuàng)建。
        String bucketName = "my-bucket";
        // Endpoint必須填寫(xiě)B(tài)ucket所在地域?qū)?yīng)的Endpoint,推薦使用內(nèi)網(wǎng)訪問(wèn)地址。以華東1(杭州)為例,內(nèi)網(wǎng)訪問(wèn)Endpoint為https://oss-cn-hangzhou-internal.aliyuncs.com。
        String endpoint = "https://oss-cn-hangzhou-internal.aliyuncs.com";

        // 獲取密鑰信息,執(zhí)行前,確保函數(shù)所在的服務(wù)配置了角色信息,并且角色需要擁有AliyunOSSFullAccess權(quán)限。
        // 建議直接使用AliyunFCDefaultRole角色。
        Credentials creds = context.getExecutionCredentials();

        // 創(chuàng)建OSSClient實(shí)例。
        /*
        阿里云賬號(hào)AccessKey擁有所有API的訪問(wèn)權(quán)限,建議您使用RAM用戶(hù)進(jìn)行API訪問(wèn)或日常運(yùn)維。
        建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導(dǎo)致AccessKey泄露,威脅您賬號(hào)下所有資源的安全。
        本示例以從上下文中獲取AccessKey/AccessSecretKey為例。
        */
        OSS ossClient = new OSSClientBuilder().build(endpoint, creds.getAccessKeyId(), creds.getAccessKeySecret(), creds.getSecurityToken());

        // 填寫(xiě)B(tài)yte數(shù)組。
        byte[] content = "Hello FC".getBytes();
        // 依次填寫(xiě)B(tài)ucket名稱(chēng)(例如examplebucket)和Object完整路徑(例如exampledir/exampleobject.txt)。Object完整路徑中不能包含Bucket名稱(chēng)。
        ossClient.putObject(bucketName, "exampledir/exampleobject.txt", new ByteArrayInputStream(content));

        // 關(guān)閉OSSClient。
        ossClient.shutdown();

        outputStream.write(new String("done").getBytes());
    }
}