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

使用SDK執(zhí)行HTTP函數(shù)

本文介紹如何使用不同語言SDK提供的接口,執(zhí)行HTTP觸發(fā)器函數(shù)。

背景信息

函數(shù)計算根據(jù)請求頭部的Authorization字段校驗每一個請求是否合法。只有使用與函數(shù)計算一致的簽名算法才能通過驗證,未包含簽名字段或者簽名錯誤的請求,函數(shù)計算將返回HTTP 403錯誤。關于簽名算法的更多信息,請參見簽名認證

函數(shù)計算的SDK已經(jīng)提供接口執(zhí)行HTTP函數(shù),且SDK已經(jīng)實現(xiàn)簽名算法,支持對該接口進行簽名,無需您手動計算簽名。更多信息,請參見SDK列表

說明

如果HTTP觸發(fā)器設置了允許匿名訪問函數(shù),即觸發(fā)器配置中參數(shù)是否需要認證選擇為,則無需校驗,也無需計算簽名。

使用場景

函數(shù)計算的Golang,Python和Java語言支持HTTP觸發(fā)器的簽名調(diào)用。您可以在以下三種場景,使用函數(shù)計算的SDK。

  • 簽名場景下調(diào)用HTTP觸發(fā)器。推薦在測試場景中使用。

  • 匿名場景下調(diào)用HTTP觸發(fā)器。推薦在測試場景中使用。

  • 集成場景下對HTTP Request進行簽名,然后使用自定義HTTP Client處理簽名后的請求,以達到最優(yōu)的性能以及最佳的擴展性。推薦在生產(chǎn)環(huán)境中使用。

使用示例

Golang

更多信息,請參見Golang

安裝

使用go mod工具安裝。

# install alibabacloud_fc_open20210406
go get -u github.com/alibabacloud-go/fc-open-20210406

使用

  • 簽名場景

    package main
    
    import (
        "fmt"
        "net/http"
        "net/http/httputil"
        "os"
    
        openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        client "github.com/alibabacloud-go/fc-open-20210406/client"
    )
    
    func main() {
        config := &openapi.Config{}
        /*
            阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
            建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
            本示例以將AccessKey和AccessSecretKey保存在環(huán)境變量中來實現(xiàn)身份驗證為例。
            運行本示例前請先在本地環(huán)境中設置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            在FC Runtime運行環(huán)境下,配置執(zhí)行權(quán)限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環(huán)境變量會被自動設置。
      */
        ak := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
        sk := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
        url := os.Getenv("url")
    
        config.SetAccessKeyId(ak)
        config.SetAccessKeySecret(sk)
        config.SetRegionId("cn-hangzhou")
        c, err := client.NewClient(config)
        if err != nil {
            panic(err)
        }
        method := "POST"
        headers := &http.Header{}
        headers.Add("k1", "v1")
        resp, err := c.InvokeHTTPTrigger(&url, &method, []byte("abc"), headers)
        if err != nil {
            panic(err)
        }
        str, _ := httputil.DumpResponse(resp, true)
        fmt.Printf("response: %+v\n", string(str))
    }
  • 匿名場景

    package main
    
    import (
    	"fmt"
    	"net/http"
    	"net/http/httputil"
    	"os"
    
    	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    	client "github.com/alibabacloud-go/fc-open-20210406/client"
    )
    
    func main() {
    	config := &openapi.Config{}
    	/*
    		阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
    		建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
    		本示例以將AccessKey和AccessSecretKey保存在環(huán)境變量中來實現(xiàn)身份驗證為例。
    		運行本示例前請先在本地環(huán)境中設置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
    		在FC Runtime運行環(huán)境下,配置執(zhí)行權(quán)限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環(huán)境變量會自動被設置。
          */
    	ak := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
    	sk := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
    	url := os.Getenv("url")
    
    	config.SetAccessKeyId(ak)
    	config.SetAccessKeySecret(sk)
    	config.SetRegionId("cn-hangzhou")
    	c, err := client.NewClient(config)
    	if err != nil {
    		panic(err)
    	}
    	method := "POST"
    	headers := &http.Header{}
    	headers.Add("k1", "v1")
    	resp, err := c.InvokeAnonymousHTTPTrigger(&url, &method, []byte("abc"), headers)
    	if err != nil {
    		panic(err)
    	}
    	str, _ := httputil.DumpResponse(resp, true)
    	fmt.Printf("response: %+v\n", string(str))
    }
  • 集成場景

    package main
    
    import (
    	"fmt"
    	"net/http"
    	"net/http/httputil"
    	"os"
    
    	openapi "github.com/alibabacloud-go/darabonba-openapi/client"
    	client "github.com/alibabacloud-go/fc-open-20210406/v2/client"
    )
    
    func main() {
    	config := &openapi.Config{}
    	/*
    	阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
    	建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
    	本示例以將AccessKey和AccessSecretKey保存在環(huán)境變量中來實現(xiàn)身份驗證為例。
    	運行本示例前請先在本地環(huán)境中設置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            在FC Runtime運行環(huán)境下,配置執(zhí)行權(quán)限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環(huán)境變量會自動被設置。
           */
    	ak := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
    	sk := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
    	url := os.Getenv("url")
    
    	config.SetAccessKeyId(ak)
    	config.SetAccessKeySecret(sk)
    	config.SetRegionId("cn-hangzhou")
    	c, err := client.NewClient(config)
    	if err != nil {
    		panic(err)
    	}
    	method := "GET"
    	request, err := http.NewRequest(method, url, nil)
    	if err != nil {
    		panic(err)
    	}
    	request, err = c.SignRequest(request)
    	if err != nil {
    		panic(err)
    	}
    	resp, err := http.DefaultClient.Do(request)
    	if err != nil {
    		panic(err)
    	}
    	str, _ := httputil.DumpResponse(resp, true)
    	fmt.Printf("response: %+v\n", string(str))
    }                  

Python

更多信息,請參見Python

安裝

使用pip工具安裝。

# install alibabacloud_fc_open20210406
pip install -U alibabacloud_fc_open20210406

使用

  • 簽名場景

    # -*- coding: utf-8 -*-
    import os
    
    from alibabacloud_fc_open20210406.client import Client
    from alibabacloud_tea_openapi import models as open_api_models
    
    # 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
    # 建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
    # 本示例以將AccessKeyID和AccessKeySecret保存在環(huán)境變量中實現(xiàn)身份驗證為例。
    # 運行本示例前請先在本地環(huán)境中設置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
    # 在FC Runtime運行環(huán)境下,配置執(zhí)行權(quán)限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環(huán)境變量會自動被設置。
    ak = os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID')
    sk = os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
    url = os.getenv('url')
    
    client = Client(config=open_api_models.Config(access_key_id=ak,
                                                  access_key_secret=sk,
                                                  region_id='cn-hangzhou'))
    
    resp = client.invoke_httptrigger(url=url,
                                     method="GET",
                                     body="anything".encode(encoding='utf-8'),
                                     headers={"k1": "v1", "k2": "v2"})
  • 匿名場景

    import os
    
    from alibabacloud_fc_open20210406.client import Client
    from alibabacloud_tea_openapi import models as open_api_models
    
    # 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
    # 建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
    # 本示例以將AccessKeyID和AccessKeySecret保存在環(huán)境變量中實現(xiàn)身份驗證為例。
    # 運行本示例前請先在本地環(huán)境中設置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
    # 在FC Runtime運行環(huán)境下,配置執(zhí)行權(quán)限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環(huán)境變量會自動被設置。
    ak = os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID')
    sk = os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
    url = os.getenv('url')
    
    client = Client(config=open_api_models.Config(access_key_id=ak,
                                                  access_key_secret=sk,
                                                  region_id='cn-hangzhou'))
    
    resp = client.invoke_anonymous_httptrigger(url=url,
                                     method="GET",
                                     body="anything".encode(encoding='utf-8'),
                                     headers={"k1": "v1", "k2": "v2"})
  • 集成場景

    import requests
    import os
    
    from alibabacloud_fc_open20210406.client import Client
    from alibabacloud_tea_openapi import models as open_api_models
    
    # 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
    # 建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
    # 本示例以將AccessKeyID和AccessKeySecret保存在環(huán)境變量中實現(xiàn)身份驗證為例。
    # 運行本示例前請先在本地環(huán)境中設置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
    # 在FC Runtime運行環(huán)境下,配置執(zhí)行權(quán)限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環(huán)境變量會自動被設置。
    ak = os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID')
    sk = os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
    url = os.getenv('url')
    
    client = Client(config=open_api_models.Config(access_key_id=ak,
                                                  access_key_secret=sk,
                                                  region_id='cn-hangzhou'))
    
    # build your own request
    req = requests.Request(
        url=url,
        method='GET'
    )
    req = client.sign_request(req)
    with requests.Session() as s:
        prep=s.prepare_request(req)
        resp = s.send(prep)

Java

更多信息,請參見Java

安裝

使用Maven工具或Gradle工具管理依賴,Maven依賴坐標如下。

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>fc_open20210406</artifactId>
  <!-- use the latest version instead -->
  <version>2.0.4</version>
</dependency>

使用

  • 簽名場景

    package com.aliyun.example;
    
    import com.aliyun.fc_open20210406.Client;
    import com.aliyun.teaopenapi.models.Config;
    import okhttp3.Headers;
    import okhttp3.Response;
    
    import java.nio.charset.StandardCharsets;
    
    
    public class Main {
        public static void main(String[] args) throws Exception {
            /*
            阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
            建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
            本示例以將AccessKey和AccessSecretKey保存在環(huán)境變量中來實現(xiàn)身份驗證為例。
            運行本示例前請先在本地環(huán)境中設置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            在FC Runtime運行環(huán)境下,配置執(zhí)行權(quán)限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環(huán)境變量會自動被設置。
         	 	*/
            String ak = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
            String sk = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
            String url = System.getenv("url");
            Config config = new Config().setAccessKeyId(ak).setAccessKeySecret(sk).setRegionId("cn-hangzhou");
    
            Client client = new Client(config);
            try (Response res = client.InvokeHTTPTrigger(url, "POST", "mybodystring".getBytes(StandardCharsets.UTF_8), new Headers.Builder().build())) {
                System.out.println(res.toString());
                System.out.println(res.body().string());
            }
        }
    }
  • 匿名場景

    package com.aliyun.example;
    
    import com.aliyun.fc_open20210406.Client;
    import com.aliyun.teaopenapi.models.Config;
    import okhttp3.Headers;
    import okhttp3.Response;
    
    import java.nio.charset.StandardCharsets;
    
    public class Main {
        public static void main(String[] args) throws Exception {
            /*
            阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
            建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
            本示例以將AccessKey和AccessSecretKey保存在環(huán)境變量中來實現(xiàn)身份驗證為例。
            在運行本示例前請先在本地環(huán)境中設置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            在FC Runtime運行環(huán)境下,配置執(zhí)行權(quán)限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環(huán)境變量會自動被設置。
         	*/
            String ak = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
            String sk = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
            String url = System.getenv("url");
            Config config = new Config().setAccessKeyId(ak).setAccessKeySecret(sk).setRegionId("cn-hangzhou");
    
            Client client = new Client(config);
            try (Response res = client.InvokeAnonymousHTTPTrigger(url, "POST", "mybodystring".getBytes(StandardCharsets.UTF_8), new Headers.Builder().build())) {
                System.out.println(res.toString());
                System.out.println(res.body().string());
            }
        }
    }
  • 集成場景

    package com.aliyun.example;
    
    import com.aliyun.fc_open20210406.Client;
    import com.aliyun.tea.okhttp.OkHttpClientBuilder;
    import com.aliyun.teaopenapi.models.Config;
    import okhttp3.*;
    
    import java.nio.charset.StandardCharsets;
    
    
    public class Main {
        public static void main(String[] args) throws Exception {
            /*
            阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
            建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
            本示例以將AccessKey和AccessSecretKey保存在環(huán)境變量中實現(xiàn)身份驗證為例。
            運行本示例前請先在本地環(huán)境中設置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            在FC Runtime運行環(huán)境下,配置執(zhí)行權(quán)限后,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環(huán)境變量會自動被設置。
         	*/
            String ak = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
            String sk = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
            String url = System.getenv("url");
            Config config = new Config().setAccessKeyId(ak).setAccessKeySecret(sk).setRegionId("cn-hangzhou");
    
            Client client = new Client(config);
            OkHttpClient okHttpClient = new OkHttpClientBuilder().buildOkHttpClient();
    
            Request request = new Request.Builder()
                    .url(url)
                    .post(RequestBody.create(MediaType.parse("application/json"),
                            "mybodystring".getBytes(StandardCharsets.UTF_8)))
                    .build();
    
            // sign your request
            request = client.SignRequest(request);
            try (Response res = okHttpClient.newCall(request).execute()) {
                System.out.println(res.toString());
                System.out.println(res.body().string());
            }
        }
    }

常見問題

在執(zhí)行HTTP函數(shù)時,出現(xiàn)方法不存在等報錯信息,要怎么處理?

  • 問題現(xiàn)象:在執(zhí)行HTTP函數(shù)時,出現(xiàn)報錯信息為AttributeError: 'Client' object has no attribute 'sign_request'

  • 問題原因:可能的原因是代碼中使用了舊版本的函數(shù)計算SDK。

  • 解決方案:建議升級函數(shù)計算SDK到最新版本。更多信息,請參見SDK列表