Amazon Web Services Service [非推奨]
項目一覧
重要
サードパーティ サービスとプッシュ通知の廃止
Atlas App Services のサードパーティ サービスとプッシュ通知は非推奨となり、代わりに関数内の外部依存関係を使用する HTTP エンドポイントを作成できるようになりました。
Webhook はHTTPS endpointsに名前変更され、動作は変更されません。 既存の Webhook を移行する必要があります。
既存のサービスは、 30、2025 まで引き続き機能します。
サードパーティ サービスとプッシュ通知は非推奨になったため、App Services UI からデフォルトで削除されました。 既存のサードパーティ サービスまたはプッシュ通知を管理する必要がある場合は、次の操作を実行して構成を UI に追加できます。
左側のナビゲーションの [ App Settings Manageセクションの下にある [] をクリックします。
Temporarily Re-Enable 3rd Party Servicesの横にあるトグル スイッチを有効にし、変更を保存します。
Overview
Amazon Web Services(Amazon Web Services ) は、クラウドベースのサービスの広範なコレクションを提供します。Atlas App Servicesは汎用のAmazon Web Servicesサービスを提供しており、これらのサービスの多くに接続できるようにしています。
構成パラメータ
Amazon Web Servicesサービス インターフェースを作成するときは、次のパラメータに値を指定する必要があります。
{ "name": "<Service Name>", "type": "aws", "config": { "accessKeyId": <Access Key ID>, "region": "us-east-1" }, "secret_config": { "secretAccessKey": "<Secret Name>" } }
Parameter | 説明 |
---|---|
Service Name config.name | サービスの一意の名前。 |
Access Key ID config.accessKeyId | IAM ユーザーのアクセスキーID 。Amazon Web Servicesユーザーには、操作を予定するすべてのAmazon Web Servicesサービスに対するプログラムによるアクセスと適切な権限が必要です。 |
Secret Access Key secret_config.secretAccessKey | Access Key IDで指定された ID を持つ IAM ユーザーのシークレット アクセス キーを保存するSecretの名前。 この値は、新しい IAM ユーザーを作成するか、既存の IAM ユーザーの新しいアクセス キーを作成するときに、アクセス キー ID の横にあります。 |
サービス アクション
各Amazon Web Servicesサービスには、そのサービスで実行できるアクションが異なります。 App Services は、 用のAmazon Web Services SDKGo で 指定されたアクション名を使用します (各サービスの場合
注意
App ServicesAmazon Web Services は、Amazon Web ServicesGo SDK と同じ名前(およびケース)を のサービスとアクションに使用します。
サポートされているAmazon Web Servicesサービスごとに、App Services は次のアクションをサポートします。
入力パラメータを 1 つ受け取ります。
出力オブジェクト、またはエラーの 2 つのオブジェクトのいずれかを返します。
たとえば、S3
サービスには putObject が含まれています アクション。App Services は putObjectInport の単一の入力タイプを受け取るため、このアクションをサポートします 、または putObjectOutup を返します または エラー。
Amazon Web Services Service ルール
Amazon Web Servicesのサービスとアクションを有効にするには、ルールを指定する必要があります。 各ルールは、1 つのサービス API と、そのサービス上の 1 つまたはすべてのアクションに適用されます。 Atlas App Services の他のサービス ルールと同様に、アクションを有効にするには、ルールがtrue
と評価される必要があります。
たとえば、次のルールは Kinesis サービスに対するすべてのアクションを有効にします。
注意
Whenフィールドのデフォルト値には空の括弧のみが含まれているため、ルールは常にtrue
と評価され、アクションの呼び出しはすべて有効になります。
このルールは、次のルール式として表現することもできます。 actions
の配列では、サービス名の後のアスタリスク( *
)は、そのサービスのすべてのアクションが有効になっていることを示していることに注意してください。
{ "name": "kinesis", "actions": [ "kinesis:*" ] }
ルール条件
作成するルールには、各サービスアクションごとに、そのアクションの入力オブジェクトのプロパティを検証するための条件として含めることができます。 %%args
展開では、これらのプロパティにアクセスできます。
例
S3 PutObject
S3
サービスには putObject が含まれます アクションは、 putObjectIn put のタイプの入力オブジェクトを受け取ります 。%%args
展開を使用して、ルールのWhen式でPutObjectInput
オブジェクトのプロパティを参照できます。
PutObjectInput
オブジェクトのBucket
プロパティを使用して、S3 サービスでPutObject
アクションを有効にするが、承認されたバケットのリストにアクションを制限するルールを作成できます。 この例では、承認されたバケット名のリストにmyS3Buckets
というユーザー定義の定数を使用しています。
これは、次の JSON として表現することもできます。
{ "name": "s3", "actions": [ "s3:PutObject" ], "when": { "%%args.Bucket": { "$in": "%%values.myS3Buckets" } } }
S3 GetObject
S3
サービスには GetObject アクション( GetObjectIn put のタイプの入力オブジェクトを受け取ります) 。%%args
展開を使用して、ルールのWhen式でGetObjectInput
オブジェクトのプロパティを参照できます。
次の例では、 realmReadWritableBucket
という特定のバケットでGetObject
アクションを有効にするルールを作成します。
これは、次の JSON として表現することもできます。
{ "name": "s3", "actions": [ "s3:GetObject" ], "when": { "%%args.Bucket": { "$in": "realmReadWritableBucket" } } }
使用法
および SDK Amazon Web Servicesから サービスを呼び出すことができます。Atlas Function次のセクションでは、これらのそれぞれのプロセスを示します。
Amazon Web Servicesから サービスを呼び出すAtlas Function
次の例は、 内からさまざまなAmazon Web Services サービスを呼び出す方法を示しています。Atlas Function各例では、名前付きサービスがすでに作成されていることを前提としています。
S3 サービス
S3 PutObject
exports = async function() { const s3 = context.services.get('MyAwsService').s3("us-east-1"); const result = await s3.PutObject({ "Bucket": "my-bucket", "Key": "example", "Body": "hello there" }); console.log(EJSON.stringify(result)); return result; };
S3 GetObject
exports = async function(arg) { const s3 = context.services.get('MyAwsService').s3("us-east-1"); const result = await s3.GetObject({ "Bucket": "realmReadWritableBucket", "Key": "coffee.jpeg" }); console.log(EJSON.stringify(result)); return result; };
S3 PresignURL
exports = function(){ const s3 = context.services.get("MyAwsService").s3("us-east-1"); const presignedUrl = s3.PresignURL({ "Bucket": "my-s3-bucket-name", "Key": "/some/path", // HTTP method that is valid for this signed URL. Can use PUT for uploads, or GET for downloads. "Method": "GET", // Duration of the lifetime of the signed url, in milliseconds "ExpirationMS": 30000, }) return presignedUrl };
S3 API リファレンスを参照 実装の詳細については、「 」を参照してください。
重要
オブジェクト サイズの制限
App Services は、 Amazon Web Services S3 オブジェクトを操作する場合、最大ファイルサイズ 4 MB をサポートします。
Kinesis Service
exports = async function(event) { const kinesis = context.services.get('MyAwsService').kinesis("us-east-1"); const result = await kinesis.PutRecord({ Data: JSON.stringify(event.fullDocument), StreamName: "realmStream", PartitionKey: "1" }); console.log(EJSON.stringify(result)); return result; };
Kinesis API リファレンス を参照してください 実装の詳細については、「 」を参照してください。
Lambda Service
exports = async function() { const lambda = context.services.get('MyAwsService').lambda("us-east-1"); const result = await lambda.Invoke({ FunctionName: "myLambdaFunction", Payload: context.user.id }); console.log(result.Payload.text()); return EJSON.parse(result.Payload.text()); };
Lambda API リファレンス を参照してください 実装の詳細については、「 」を参照してください。
SES サービス
exports = async function(){ const ses = context.services.get('MyAwsService').ses("us-east-1"); const result = await ses.SendEmail({ Source: "sender@example.com", Destination: { ToAddresses: ["docs@mongodb.com"] }, Message: { Body: { Html: { Charset: "UTF-8", Data: `This is a message from user ${context.user.id}` } }, Subject: { Charset: "UTF-8", Data: "Test Email Please Ignore" } } }); console.log(EJSON.stringify(result)); return result; };
SES API リファレンス を参照してください 実装の詳細については、「 」を参照してください。
サポートされているAmazon Web Servicesサービス
アプリは次のAmazon Web Servicesサービスに接続できます。
Atlas
バッチ
Cloudwatch
理解する
EC2
Firehose
グレーシャー
IoT
Kinesis
Lambda
Lex ランタイム サービス
機械学習
モバイル分析
ポリゴン
RDS
Redshift
Rekognition
S3
SES
ステップ関数(SFN)
ソーシャル
SQS
テキスト