Docs Menu
Docs Home
/ /
Atlas App Services
/ /

서비스를 npm 모듈로 교체

이 페이지의 내용

  • 개요
  • HTTP Service
  • node-fetch
  • axios
  • Twilio 서비스
  • Amazon Web Services 서비스
  • S3
  • Kinesis
  • Lambda
  • SES

npm 에서 제공하는 해당 공식 라이브러리를 사용하려면 더 이상 사용되지 않는 타사 서비스 통합을 마이그레이션 해야 합니다. . 이 페이지 뒷부분의 섹션에는 각 서비스에 대한 세부 정보와 예제가 포함되어 있습니다.

더 이상 사용되지 않는 서비스에서 마이그레이션하려면 다음 단계를 따르세요.

  1. npm 의 서비스에 대한 라이브러리를 앱에 추가 합니다.

  2. 함수 에서 라이브러리를 가져옵니다 . 내장 서비스 조치에 대한 호출을 가져온 라이브러리의 해당 메서드에 대한 호출로 대체합니다.

  3. 서비스에 웹훅이 있는 경우 이를 HTTPS endpoints로 변환합니다.

클라이언트를 통해 HTTP HTTP Service 전송된 요청을 HTTP node-fetch 와 같은 라이브러리에 대한 호출로 바꿉니다. 또는 axios.

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()
}
애프터(node-fetch)
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()
}
이후(axios)
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 서비스 클라이언트를 통한 호출을 공식 Twilio 노드 헬퍼 라이브러리에 대한 호출로 대체합니다.

npm i twilio

Twilio 요청을 인증하려면 계정 ID 및 인증 토큰을 values 로 저장합니다. 그런 다음 함수 내에서 액세스하여 SDK에 전달할 수 있습니다.

이전
exports = async function() {
const twilio = context.services.get("myTwilio");
twilio.send({
to: "+15558675309",
from: "+15551234567",
body: "Hello from App Services!",
});
}
이후
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 Services 서비스 클라이언트를 통한 호출을 공식 Amazon Web Services JavaScript SDK에 대한 호출로 대체합니다.

npm i aws-sdk

중요

App Services는 아직 Amazon Web Services SDK 버전 3을 지원하지 않습니다. 버전 2 SDK를 사용하여 함수에서 더 이상 사용되지 않는 Amazon Web Services 서비스를 대체합니다.

Amazon Web Services 요청을 인증하려면 Access Key ID와 비밀 액세스 키를 values 로 저장합니다. 그런 다음 함수 내에서 액세스하여 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",
});
}
이후
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",
});
}
이후
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" }),
});
};
이후
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"
},
},
});
};
이후
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();
}

돌아가기

Third-Party Services [Deprecated]