Docs Menu
Docs Home
/ /
Atlas App Services
/ /

npm モジュールによるサービスの置き換え

項目一覧

  • Overview
  • HTTP Service
  • ノード取得
  • axios
  • Twilio サービス
  • Amazon Web Services Service
  • S3
  • Kinesis
  • Lambda
  • SES

非推奨のサードパーティ サービス統合は、 npm から利用可能な対応する公式のライブラリを使用するように移行する必要があります。 。このページ後半のセクションには、各サービスの詳細と例が記載されています。

非推奨のサービスから移行するには、次の手順に従います。

  1. npmのサービス用ライブラリをアプリに追加します。

  2. 関数にライブラリをインポートします。 組み込みサービス アクションへの呼び出しを、インポートされたライブラリ内の対応するメソッドへの呼び出しに置き換えます。

  3. サービスに Webhook がある場合は、 HTTPS endpointsに変換します。

HTTP Service クライアントを介して送信された HTTP リクエストを、 no-fetch などの HTTP ライブラリへの呼び出しに置き換え または 軸は以下の とおりです。

npm i node-fetch@^2

重要

Atlas App Services はnode-fetchの v3 をサポートしていません。 代わりに v2 を使用してください。

以前
exports = async function() {
const http = context.services.get("myHttp");
const response = await http.get({
url: "https://www.example.com",
headers: { "Content-Type": [ "application/json" ] }
})
return response.body.text()
}
後(ノード取得)
exports = async function() {
const fetch = require("node-fetch"); // require calls must be in exports function
const response = await fetch("https://www.example.com", {
method: "GET",
headers: { "Content-Type": "application/json" }
})
return response.text()
}
npm i axios
以前
exports = async function() {
const http = context.services.get("myHttp");
const response = await http.get({
url: "https://www.example.com",
headers: { "Content-Type": [ "application/json" ] }
})
return response.body.text()
}
後(xios)
exports = async function() {
const axios = require("axios"); // require calls must be in exports function
const response = await axios.get("https://www.example.com", {
headers: { "Content-Type": "application/json" }
})
return response.data
}

Twilio Service クライアントを介した呼び出しを、公式の Twilio ノード ヘルパー ライブラリへの呼び出しに置き換えます。

npm i twilio

Twilio のリクエストを認証するには、 アカウント SID と認証トークンをとして保存します。 その後は関数内でアクセスし、SDK に渡すことができます。

以前
exports = async function() {
const twilio = context.services.get("myTwilio");
twilio.send({
to: "+15558675309",
from: "+15551234567",
body: "Hello from App Services!",
});
}
after
exports = async function() {
// Note: require calls must be in the exported function
const twilio = require('twilio')(
// Your Account SID and Auth Token from https://www.twilio.com/console
// Specify the same Twilio credentials as the service configuration
context.values.get("TwilioAccountSID"),
context.values.get("TwilioAuthToken"),
)
await twilio.messages.create({
to: "+15558675309",
from: "+15551234567",
body: "Hello from App Services!",
})
}

Amazon Web ServicesService クライアントを介する呼び出しを、公式のAmazon Web ServicesJavaScript SDK への呼び出しに置き換えます。

npm i aws-sdk

重要

App Services はまだ、 Amazon Web Services SDK のバージョン 3 をサポートしていません。 バージョン 2 SDK を使用して、関数内の非推奨のAmazon Web Services Service を置き換えます。

Amazon Web Servicesリクエストを認証するには、アクセスキーIDと シークレット アクセスキー をとして保存します。 その後は関数内でアクセスし、SDK に渡すことができます。

以前
exports = async function() {
const s3 = context.services.get("myAWS").s3("us-east-1");
const putResult = await s3.PutObject({
Bucket: "bucketName",
Key: "keyName",
Body: EJSON.stringify({ hello: "world" }),
});
const getResult = await s3.GetObject({
Bucket: "bucketName",
Key: "keyName",
});
}
after
exports = async function() {
const S3 = require('aws-sdk/clients/s3'); // require calls must be in exports function
const s3 = new S3({
accessKeyId: context.values.get("awsAccessKeyId"),
secretAccessKey: context.values.get("awsSecretAccessKey"),
region: "us-east-1",
});
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property
const putResult = await s3.putObject({
Bucket: "bucketName",
Key: "keyName",
Body: EJSON.stringify({ hello: "world" }),
}).promise();
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property
const getResult = await s3.getObject({
Bucket: "bucketName",
Key: "keyName",
}).promise();
}
以前
exports = async function() {
const kinesis = context.services.get("myAWS").kinesis("us-east-1");
const putResult = await kinesis.PutRecord({
Data: EJSON.stringify({ hello: "world" }),
StreamName: "myStream",
PartitionKey: "myPartition",
});
}
after
exports = async function() {
const Kinesis = require('aws-sdk/clients/kinesis'); // require calls must be in exports function
const kinesis = new Kinesis({
accessKeyId: context.values.get("awsAccessKeyId"),
secretAccessKey: context.values.get("awsSecretAccessKey"),
region: "us-east-1",
});
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Kinesis.html#putRecord-property
const putResult = await kinesis.putRecord({
Data: EJSON.stringify({ hello: "world" }),
StreamName: "myStream",
PartitionKey: "myPartition",
}).promise();
}
以前
exports = async function() {
const lambda = context.services.get('MyAwsService').lambda("us-east-1");
const invokeResult = await lambda.Invoke({
FunctionName: "myLambdaFunction",
Payload: EJSON.stringify({ hello: "world" }),
});
};
after
exports = async function() {
const Lambda = require('aws-sdk/clients/lambda'); // require calls must be in exports function
const lambda = new Lambda({
accessKeyId: context.values.get("awsAccessKeyId"),
secretAccessKey: context.values.get("awsSecretAccessKey"),
region: "us-east-1",
});
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#invoke-property
const invokeResult = await lambda.invoke({
FunctionName: "myLambdaFunction",
Payload: EJSON.stringify({ hello: "world" }),
}).promise();
}
以前
exports = async function() {
const ses = context.services.get('MyAwsService').ses("us-east-1");
const sendResult = await ses.SendEmail({
Source: "sender@example.com",
Destination: { ToAddresses: ["receiver@example.com"] },
Message: {
Body: {
Html: {
Charset: "UTF-8",
Data: `This is a message from user ${context.user.id} sent through AWS SES`
}
},
Subject: {
Charset: "UTF-8",
Data: "Test Email Please Ignore"
},
},
});
};
after
exports = async function() {
const SES = require('aws-sdk/clients/ses'); // require calls must be in exports function
const ses = new SES({
accessKeyId: context.values.get("awsAccessKeyId"),
secretAccessKey: context.values.get("awsSecretAccessKey"),
region: "us-east-1",
});
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendEmail-property
const sendResult = await ses.sendEmail({
Source: "sender@example.com",
Destination: { ToAddresses: ["receiver@example.com"] },
Message: {
Body: {
Html: {
Charset: "UTF-8",
Data: `This is a message from user ${context.user.id} sent through AWS SES`
}
},
Subject: {
Charset: "UTF-8",
Data: "Test Email Please Ignore"
},
},
}).promise();
}

戻る

サードパーティ サービス [非推奨]