このページは機械翻訳によるものです。内容の正確さは保証しておりません。 人力翻訳を依頼する

AccessKey ペアを使用してワークフローを実行し認証する

更新日時2025-01-17 21:50

Logic Composer は、ワークフローを実行するための SDK を提供しています。 SDK を使用してワークフローを実行する場合、認証のために AccessKey ペアを設定してセキュリティを確保できます。

Logic Composer のカスタムリクエストトリガーは、認証ありまたは認証なしでワークフローを実行するための以下のメソッドを提供します。認証が不要な場合、SDK は対応するトリガーのエンドポイントを取得してワークフローを実行します。 AccessKey ペアを使用して認証する場合は、このトピックの「手順」セクションに記載されている操作を実行します。

手順

  1. ワークフローパスを取得します。 Logic Composer コンソールにログオンします。 左側のナビゲーションウィンドウで、[ワークフロー] をクリックします。 [ワークフロー] ページで、目的のワークフローをクリックします。 表示されるページで、[ワークフロー] タブをクリックします。 表示されるメッセージで、[キャンセル] をクリックします。 [トリガーの選択] ダイアログボックスで、[リクエスト] を選択します。 次に、[HTTP リクエストを受信した場合] をクリックして、トリガーに関する詳細を表示します。 認証に AccessKey を選択します。 [パス] を見つけて、[コピー] をクリックして、トリガーの呼び出しに使用するワークフローパスをコピーします。

2. Resource Access Management (RAM) ユーザーに権限を付与します。

RAM ユーザーの AccessKey ペアを使用してアクセスする場合は、事前に必要な権限を RAM ユーザーに付与してください。 詳細については、「RAM ユーザーに権限を付与する」をご参照ください。

3. SDK を使用してワークフローを実行します。

重要
  • Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。 AccessKey ペアを使用して操作を実行することは、リスクの高い操作です。 RAM ユーザーを使用して API 操作を呼び出したり、日常的な O&M を実行することをお勧めします。

  • AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。 そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。

  • 以下の例では、AccessKey ペアは環境変数に設定されて認証が実装されています。 環境変数の設定方法の詳細については、「認証情報を設定する」をご参照ください。

  • 以下の例では、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が使用されています。

Java

  • 依存関係を追加する

pom.xml ファイルに Maven の依存関係を追加します。

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.0.3</version>
</dependency>
  • サンプルコード

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
public class TestJavaSDK {
    public static void main(String[] args) {
        // request.setDomain でエンドポイントを指定します。
        // AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。 そうしないと、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
        DefaultProfile profile = DefaultProfile.getProfile("default", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        IAcsClient client = new DefaultAcsClient(profile);
        CommonRequest request = new CommonRequest();
        request.setProtocol(ProtocolType.HTTPS);
        request.setMethod(MethodType.POST);
        request.setDomain("lc.<regionId>.aliyuncs.com");
        request.setVersion("2019-09-25");
        // 注: <Path> は、手順 1 で取得したワークフローパスに置き換えてください。
        request.setUriPattern("<Path>");
        // ワークフローの要件に基づいてパラメーターを設定します。
        request.putQueryParameter("RegionId", "us-east-1");
        request.putHeadParameter("Content-Type", "application/json");
        // ワークフローの要件に基づいてリクエスト本文を設定します。 リクエスト本文は JSON 文字列である必要があります。
        String requestBody = "";
        request.setHttpContent(requestBody.getBytes(), "utf-8", FormatType.JSON);
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

Go

  • サンプルコード

package main
import (
	"fmt"
  "os"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
)
func main() {
  // request.Domain でエンドポイントを指定します。
  // AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。 そうしないと、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
	client, err := sdk.NewClientWithAccessKey("default", os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
	if err != nil {
		panic(err)
	}
	request := requests.NewCommonRequest()
	request.Method = "POST"
	request.Scheme = "https" // https | http
	request.Domain = "lc.<regionId>.aliyuncs.com"
	request.Version = "2019-09-25"
  // 注: <Path> は、手順 1 で取得したワークフローパスに置き換えてください。
	request.PathPattern = "<Path>"
  request.Headers["Content-Type"] = "application/json"
  // ワークフローの要件に基づいてパラメーターを設定します。
  request.QueryParams["RegionId"] = "us-east-1"
  // ワークフローの要件に基づいてリクエスト本文を設定します。 リクエスト本文は JSON 文字列である必要があります。
	body := ``
	request.Content = []byte(body)
	response, err := client.ProcessCommonRequest(request)
	if err != nil {
		panic(err)
	}
	fmt.Print(response.GetHttpContentString())
}

Python

  • サンプルコード

#!/usr/bin/env python
#coding=utf-8
import os
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
# request.set_domain でエンドポイントを指定します。
# AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。 そうしないと、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
client = AcsClient(os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), 'default')
request = CommonRequest()
request.set_accept_format('json')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_domain('lc.<regionId>.aliyuncs.com')
request.set_version('2019-09-25')
# 注: <Path> は、手順 1 で取得したワークフローパスに置き換えてください。
request.set_uri_pattern('<Path>')
# ワークフローの要件に基づいてパラメーターを設定します。
request.add_query_param('RegionId', "us-east-1")
request.add_header('Content-Type', 'application/json')
# ワークフローの要件に基づいてリクエスト本文を設定します。 リクエスト本文は JSON 文字列である必要があります。
body = ''''''
request.set_content(body.encode('utf-8'))
response = client.do_action_with_exception(request)
# python2:  print response
print(str(response, encoding = 'utf-8'))

Ruby

# gem install aliyunsdkcore
require 'aliyunsdkcore'
# AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。 そうしないと、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
client = ROAClient.new(
  access_key_id: ENV['ALIBABA_CLOUD_ACCESS_KEY_ID'],
  access_key_secret: ENV['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
  endpoint: 'https://lc.<regionId>.aliyuncs.com',
  api_version: '2019-09-25'
)
response = client.request(
  method: 'POST',
  # 注: <Path> は、手順 1 で取得したワークフローパスに置き換えてください。
  uri: '<Path>',
  # ワークフローの要件に基づいてパラメーターを設定します。
  queries: {
    "RegionId": "cn-hangzhou",
  },
  headers: {
    "Content-Type": "application/json"
  },
  # ワークフローの要件に基づいてリクエスト本文を設定します。 リクエスト本文は JSON 文字列である必要があります。
  body: ``,
  options: {}
)
print response

Node.js

  • 依存関係を追加する

npm install @alicloud/pop-core

  • サンプルコード

var ROAClient = require('@alicloud/pop-core').ROAClient;
// AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。 そうしないと、AccessKey ペアが漏洩し、アカウント内のリソースのセキュリティが侵害される可能性があります。
var client = new ROAClient({
  accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
  accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
  endpoint: 'https://lc.<regionId>.aliyuncs.com',
  apiVersion: '2019-09-25',
});
async function test() {
  try {
    var res = await client.request(
      'POST',
      '<Path>', // 注: <Path> は、手順 1 で取得したワークフローパスに置き換えてください。
      {}, // ワークフローの要件に基づいてパラメーターを設定します。
      '<request body>', // ワークフローの要件に基づいてリクエスト本文を設定します。 リクエスト本文は JSON 文字列である必要があります。
      {
        'content-type': 'application/json',
      }
    );
    console.log('invoke workflow: ', res);
  } catch (err) {
    console.error(err);
  }
}
test().then();

SDK で使用される操作の入力パラメーターの詳細については、@alicloud/pop-core をご参照ください。

サポートされているリージョン

以下のサポートされているリージョンで、認証に AccessKey ペアを使用できます。 この機能を使用する際に必要なエンドポイントは、Logic Composer の管理 API 操作のエンドポイントとは異なることに注意してください。 次の表に示すリージョンのエンドポイントを使用してください。

リージョン

リージョン ID

エンドポイント

中国 (上海)

cn-shanghai

https://lc.cn-shanghai.aliyuncs.com

米国 (バージニア)

us-east-1

https://lc.us-east-1.aliyuncs.com

シンガポール

ap-southeast-1

https://lc.ap-southeast-1.aliyuncs.com

  • 目次 (1, M)
  • 手順
  • サポートされているリージョン
フィードバック
phone お問い合わせ

Chat now with Alibaba Cloud Customer Service to assist you in finding the right products and services to meet your needs.

alicare alicarealicarealicare